在对系统或应用程序速度减慢或行为异常进行故障排除时,首先要检查的问题之一是系统内存使用情况。
本文介绍了如何使用几种不同的命令来检查Linux中的RAM使用情况。
free
命令
free
是用于检查Linux系统内存使用的最常用命令。 它显示有关总内存,已用内存和可用内存的信息。
通常,free
是通过-h
选项调用的,这意味着以友好的格式打印输出:
free -h
total used free shared buff/cache availableMem: 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
:
free -h
输出将如下所示:
输出的标头包含有关系统的总,可用和已用物理内存和交换内存的信息。
%MEM
列提供有关每个运行进程的可用物理内存已用份额的信息。
/proc/meminfo
检查RAM内存使用率的最简单方法是显示/proc/meminfo
虚拟文件的内容。 free
,top
,ps
和其他系统信息命令使用此文件。
使用less
或cat
查看/proc/meminfo
文件的内容:
cat /proc/meminfo
该文件包含有关系统内存和交换使用的大量信息:
MemTotal: 4030592 kBMemFree: 401804 kB
MemAvailable: 2507504 kB
...
可以解析/proc/meminfo
文件中的信息,并在shell脚本中使用。
ps_mem
脚本
ps_mem
是一个Python脚本,用于报告每个程序的RAM内存使用情况。 它可以与Python 2和3一起使用,并且可以使用pip
安装
sudo pip3 install ps_mem
运行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
=================================
当您想找出哪个正在运行的程序占用了系统大部分内存时,此脚本很有用。
结论
我们向您展示了一些可用于检查系统内存使用情况的命令。
如果您有任何疑问或意见,请在下面发表评论。
还没有评论,来说两句吧...