在对系统或应用程序的速度下降或行为异常进行故障排除时,要检查的第一件事是系统内存使用率。
本文介绍了如何使用几个不同的命令来检查Linux中的RAM使用情况。
free 命令free是检查Linux系统内存使用情况的最常用命令。它显示有关总内存,已用内存和可用内存的信息。通常,free使用-h选项进行调用,该选项意味着以人类可读的格式打印输出:free -h
total used free shared buff/cache available
Mem: 3936 1087 252 130 2596 2427
Swap: 0 0 0每列的含义如下:
used = total - free - buffers - cachetop 命令top是一个命令行实用程序,用于显示有关正在运行的进程的实时信息。它还显示了系统摘要,包括内存使用情况。要调用该命令,只需键入top:free -h输出将如下所示:
输出的标头包含有关系统的总,可用和已用物理内存和交换内存的信息。
%MEM列提供有关每个正在运行的进程的可用物理内存已用份额的信息。/proc/meminfo/proc/meminfo虚拟文件的内容。该文件是由所使用的free,top,ps,和其它系统信息的命令。使用less或cat查看/proc/meminfo文件的内容:cat /proc/meminfo该文件包含有关系统内存和交换使用情况的大量信息:
MemTotal: 4030592 kB
MemFree: 401804 kB
MemAvailable: 2507504 kB
...来自/proc/meminfo文件的信息可以被解析并在shell脚本中使用。ps_mem 脚本ps_mem是一个Python脚本,用于报告每个程序的RAM内存使用情况。它可以与Python 2和3一起使用,并且可以安装pip:sudo pip3 install ps_mem
sudo ps_mem输出将按升序包括每个正在运行的程序的内存使用情况:
Private + Shared = RAM used Program
...
11.9 MiB + 20.2 MiB = 32.1 MiB nginx (4)
8.2 MiB + 42.4 MiB = 50.6 MiB systemd-journald
55.8 MiB + 307.2 MiB = 363.0 MiB php-fpm7.4 (6)
233.9 MiB + 234.0 MiB = 467.9 MiB redis-server
578.2 MiB + 578.6 MiB = 1.1 GiB mysqld
---------------------------------
2.2 GiB
=================================当您想找出哪个正在运行的程序占用了系统大部分内存时,此脚本很有用。