如何在Linux中检查内存使用情况
时间:2020-03-05 15:26:09 来源:igfitidea点击:
在对系统或者应用程序速度下降或者行为异常进行故障排除时,要检查的第一件事是系统内存使用率。
本文介绍了如何使用几个不同的命令来检查Linux中的内存使用情况。
“free”命令
“ free”是检查Linux系统内存使用情况的最常用命令。
它显示有关总内存,已用内存和可用内存的信息。
通常,使用'-h'选项调用'free',这意味着以人类可读的格式打印输出:
free -h
total used free shared buff/cache available Mem: 3936 1087 252 130 2596 2427 Swap: 0 0 0
每列的含义如下:
- 总计-应用程序可以使用的内存总量。
- 已使用-已使用的内存。计算公式为:“已用=总计-空闲-缓冲区-缓存”
- 空闲-空闲/未使用的内存。
- 共享-可以忽略此列;仅出于向后兼容的目的显示它。
- buff/cache-内核缓冲区以及页面缓存和slab使用的组合内存。如果应用程序需要,可以随时回收此内存。
- 可用-估计可用于启动新应用程序而无需交换的内存。
'free'命令打印有关物理内存和系统交换的信息。
'top'命令
“ 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脚本,用于报告每个程序的内存内存使用情况。
它可以与Python 2和3一起使用,并且可以使用'pip'进行安装:
sudo pip3 install ps_mem
运行“ ps_mem”需要管理员权限:
sudo ps_mem
输出将按升序包括每个正在运行的程序的内存使用情况:
Private + Shared = 内存 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 =================================
当我们想找出哪个正在运行的程序占用了系统大部分内存时,此脚本很有用。