查看内存占用率的方法

1. free命令
功能:显示系统内存的使用情况,包括总内存、已使用内存、空闲内存等信息。
示例:
bash
free -h
输出说明:
total used free shared buff/cache available
Mem: 7.7G 3.0G 1.4G 888M 3.2G 3.9G
Swap: 2.0G 0B 2.0G
`total`:总内存大小。
`used`:已使用的内存大小。
`free`:空闲内存大小。
`shared`:共享内存大小。
`buff/cache`:缓冲区和缓存使用的内存大小。
`available`:可用于启动新应用程序的内存大小。
2. top命令
功能:实时显示系统中各个进程的资源使用情况,包括内存占用率。
示例:
bash
top
操作说明:
按下 `M` 键可以按照内存使用率对进程进行排序。
输出说明:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13183 user1 20 0 3309580 550188 168372 S 0.3 9.0 1:33.27 Web Content
32469 user1 20 0 3492840 447372 163296 S 7.3 7.3 3:55.60 firefox
`PID`:进程ID。
`USER`:进程所有者。
`PR`:进程优先级。
`NI`:进程的nice值。
`VIRT`:进程使用的虚拟内存大小。
`RES`:进程使用的物理内存大小。
`SHR`:进程使用的共享内存大小。
`S`:进程状态。
`%CPU`:进程的CPU使用率。
`%MEM`:进程的内存使用率。
`TIME+`:进程运行的总时间。
`COMMAND`:进程的命令名。
3. vmstat命令
功能:报告虚拟内存统计信息,包括内存使用情况、进程状态、CPU活动等。
示例:
bash
vmstat -s
输出说明:
8010408 K total memory
344016 K used memory
5444384 K active memory
1380052 K inactive memory
283468 K free memory
719668 K buffer memory
6663256 K swap cache
4194304 K total swap
724 K used swap
4193580 K free swap
`total memory`:总内存大小。
`used memory`:已使用的内存大小。
`active memory`:活跃内存大小。
`inactive memory`:非活跃内存大小。
`free memory`:空闲内存大小。
`buffer memory`:缓冲区内存大小。
`swap cache`:交换缓存大小。
`total swap`:交换空间总大小。
`used swap`:已使用的交换空间大小。
`free swap`:空闲交换空间大小。
4. /proc/meminfo文件
功能:提供系统内存使用情况的详细信息。
示例:
bash
cat /proc/meminfo
输出说明:
MemTotal: 8010408 kB
MemFree: 283468 kB
MemAvailable: 3902684 kB
Buffers: 719668 kB
Cached: 6663256 kB
SwapTotal: 4194304 kB
SwapFree: 4193580 kB
`MemTotal`:总内存大小。
`MemFree`:空闲内存大小。
`MemAvailable`:可用内存大小。
`Buffers`:缓冲区内存大小。
`Cached`:缓存内存大小。
`SwapTotal`:交换空间总大小。
`SwapFree`:空闲交换空间大小。
相关操作

1. 查找占用内存过高的进程
操作:使用 `top` 命令并按下 `M` 键,按照内存使用率对进程进行排序。
示例:
bash
top
分析:根据 `%MEM` 列的值,可以快速定位占用内存最多的进程。
2. 终止占用内存过高的进程
操作:在 `top` 命令界面中,按下 `k` 键,输入要终止的进程的PID,然后按 `Enter` 键确认。
示例:
bash
top
按下k键,输入PID,按Enter键
注意事项:终止操作系统关键进程可能导致系统重启,请谨慎操作。
3. 查看共享内存占用情况
操作:使用 `cat /proc/meminfo | grep -i shmem` 命令。
示例:
bash
cat /proc/meminfo | grep -i shmem
分析:如果输出值较高,可能存在共享内存占用过高的情况。
4. 查看不可回收的slab内存占用情况
操作:使用 `cat /proc/meminfo | grep -i SUnreclaim` 命令。
示例:
bash
cat /proc/meminfo | grep -i SUnreclaim
分析:如果输出值较高,可能存在不可回收的slab内存占用过高的情况。
5. 查看内存大页配置情况
操作:使用 `cat /proc/meminfo | grep -iE "HugePages_Total|Hugepagesize"` 命令。
示例:
bash
cat /proc/meminfo | grep -iE "HugePages_Total|Hugepagesize
分析:如果 `HugePages_Total` 输出非0,则表示配置了内存大页。如果确认已不需要内存大页,可通过注释 `/etc/sysctl.conf` 文件中的 `vm.nr_hugepage` 配置项,再执行 `sysctl -p` 命令取消内存大页。