在对系统,应用程序速度减慢或行为异常进行故障排除时,首先要检查的问题之一是系统内存使用率。
本教程介绍如何使用free,top,ps_mem命令来检查Linux中的RAM使用情况。
free命令是用于检查Linux系统内存使用的最常用命令。它显示总内存,已用内存和可用内存的信息。
free命令最经常使用的选项-h
选项,free命令将以友好的阅读格式打印输出。
free -h
total used free shared buff/cache available
Mem: 3936 1087 252 130 2596 2427
Swap: 0 0 0
total 内存总量。used 已使用的内存。,计算公式是used = total - free - buffers - cache
。
free可用/未使用的内存。shared 可以忽略此列,buff/cache 内核缓冲区以及页面缓存和slab使用的组合内存。 如果应用程序需要,可以随时回收此内存。
available 在不使用交换空间的情况,启动应用程序可用内存的估计数。free命令显示物理内存和交换空间的信息。
top命令
top
是一个命令行程序,用于显示正在运行的进程的实时信息。它还显示了系统摘要,包括内存使用情况。
要查看内存的使用率,只需要在终端运行top
命令。输出包含系统的总内存,可用和已用物理内存和交换空间的信息。
%MEM
列提供每个进程的使用物理内存使用率的信息。
top
/proc/meminfo
检查内存使用率的最简单方法是查看虚拟文件/proc/meminfo
的内容。 free
,top
,ps
和其他系统信息命令都读取此文件。
你也可以通过运行less
,cat
命令查看/proc/meminfo
文件的内容。该文件包含系统内存和交换空间使用量信息。
直接查看此文件可能对阅读不太友好,但你运行ps_mem
命令可以解析/proc/meminfo
文件中的信息。
cat /proc/meminfo
MemTotal: 4030592 kB
MemFree: 401804 kB
MemAvailable: 2507504 kB
...
ps_mem 脚本
ps_mem命令是一个Python脚本,用于报告每个程序的内存使用率。 它可以与Python 2和3一起使用,并且可以通过pip安装。
运行ps_mem
命令需要sudo权限,输出将按升序包括每个正在运行的程序的内存使用率。当您想找出哪个正在运行的程序占用了系统大部分内存时,此脚本很有用。
除了打印全部进程内存使用率之外,你还可以使用ps_mem的-p
选项,后跟进程PID,查看指定进程内存使用率。
sudo pip3 install ps_mem
sudo ps_mem
sudo ps_mem -p pid_number
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
=================================
结论
我们向您展示了一些可用于查看内存使用量的命令。如果您有任何疑问或意见,请在下面发表评论。