当前位置: 首页 > 科技观察

ps_mem:一个简单的用于准确报告Linux内核内存使用情况的python脚本

时间:2023-03-12 07:39:17 科技观察

ps_mem是一个简单的python脚本,可以帮助我们准确获取Linux中各个程序的内核内存使用情况。虽然Linux上有很多查看内存使用情况的工具,比如free、vmstat、smem、top等,但是这个工具与众不同的地方在于它能准确显示核心内存使用情况。它分别计算一个程序的私有内存总量和共享内存总量,更准确地给出了总内存使用量。显然,这将有助于大家了解系统中哪个程序占用了更多的内存。您可以通过包管理器、pip或直接运行ps_mem.py脚本等多种方式安装ps_mem工具。注意:需要root权限。此外,推荐阅读以下内存工具:free-Linux上查看内存使用统计(available和used)的标准工具smem-Linux内存报告/统计工具vmstat-一个简单易用的虚拟内存标准工具统计通过包管理器安装ps_mem基于RHEL的系统默认仓库中包含了ps_mem工具,所以我们可以简单地通过包管理器进行安装。对于RHEL/CentOS,使用yum包管理器安装ps_mem包:$sudoyuminstallps_mem对于Fedora,使用dnf包管理器安装ps_mem包:$sudodnfinstallps_mem对于ArchLinux,使用pacman包管理器安装ps_mem包:$sudopacman-Sps_mem通过pip安装ps_mempip是在Linux上安装Python包的推荐工具。您可以使用pip命令而不是包管理器来获取最新版本。在使用pip包之前,请确保您的系统上已经安装了pip包。否则,首先使用您的发行版的包管理器安装python-pip包。对于基于Debian的系统:$sudoapt-getinstallpython-pip对于基于RHEL/CentOS的系统:$sudoyuminstallpython-pip对于Fedora$sudodnfinstallpython-pip对于openSUSE$sudozypperinstallpython-pip对于基于ArchLinux的系统:$sudopacman-Spython-pip***,在Linux上运行pip工具安装ps_mem:$sudopipinstallps_mem直接运行ps_mem.py脚本我们也可以从开发者的github页面下载文件,直接运行ps_mem.py脚本。$gitclonehttps://github.com/pixelb/ps_mem.git&&cdps_mem$sudopythonps_mem.pyps_mem使用方法不带任何参数直接运行ps_mem,即可得到各程序确切的核心内存使用情况。$sudops_memPrivate+Shared=RAMusedProgram1.6MiB+438.5KiB=2.1MiBpackagekitd1.7MiB+498.0KiB=2.1MiBindicator-application-service912.0KiB+1.3MiB=2.2MiBwindow-stack-bridge2.0MiB+350.5KiB=2.3MiBgnome-keyring-daemon.8MiB+575.0KiB=2.3MiBwhoopsie2.4MiB+304.5KiB=2.7MiBsystemd-journald2.7MiB+157.5KiB=2.8MiBibus-engine-simple2.7MiB+182.0KiB=2.9MiBibus-dconf2.7MiB+332.5KiB=3.01MiBNetworkManager3.+169.5KiB=3.2MiBpolkitd1.9MiB+1.7MiB=3.6MiBsystemd(2)3.4MiB+172.5KiB=3.6MiBdeja-dup-monitor2.9MiB+685.0KiB=3.6MiBzeitgeist-datahub2.9MiB+848.0KiB=3.7MiBpython2.7。.....222.1MiB+9.4MiB=231.5MiBcompiz286.2MiB+11.8MiB=298.0MiBfirefox--------------------------------1.3GiB=================================输出中打印输出路径:$sudops_mem-sPrivate+Shared=RAMusedProgram3.2MiB+951.0KiB=4.1MiB/usr/lib/evolution/evolution-addressbook-factory3.7MiB+826.5KiB=4.5MiB/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-13.7MiB+853.0KiB=4.6MiB/usr/lib/unity-settings-daemon/unity-fallback-mount-helper......131.9MiB+168.0KiB=132.1MiB/usr/sbin/mysqld222.1MiB+9.4MiB=231.5MiB/usr/bin/compiz286.2MiB+11.8MiB=298.1MiB/usr/lib/firefox/firefox---------------------------------1.3GiB===================================只显示特定PID列表的内存使用情况:$sudops_mem-p2886,4386Private+Shared=RAMusedProgram13.5MiB+2.9MiB=16.4MiBgnome-terminal-server286.2MiB+11.8MiB=298.0MiBfirefox---------------------------------314.4MiB=====================================每N秒打印一次进程内存以下命令每2秒报告一次内存使用情况seconds:$sudops_memw2只显示内存总量:$sudops_mem-t1329884160