### ps_mem:一個用于精確報告 Linux 核心內存用量的簡單 Python 腳本
ps_mem 是一個可以幫助我們精確獲取 Linux 中各個程序核心內存使用情況的簡單 python 腳本。雖然在 Linux 上有很多可用于查看內存使用情況的工具,比如 free、vmstat、smem、top 等,但這個工具和其它的區別在于其精確顯示核心內存使用情況。
它會分別計算一個程序私有內存總量和共享內存總量,并以更準確的方式給出了總的內存使用量。很明顯的,它將幫助大家知道系統中哪個程序正在占用更多的內存。
你可以通過包管理器、pip 、或直接運行 ps_mem.py 腳本等多種方式來安裝 ps_mem 工具。
需要注意的是:需要有 root 權限。
另外,推薦閱讀以下內存工具:
1. free – 一個在 Linux 上查看內存用量統計(可用和已用)的標準工具
2. smem – Linux 內存報告/統計工具
3. vmstat – 一個好用的用于虛擬內存統計的標準工具
#### 通過包管理器安裝 ps_mem
基于 RHEL 的系統默認倉庫就包含 ps_mem 工具,所以我們可以簡單地通過包管理器進行安裝。
對于 RHEL/CentOS ,使用 yum 包管理器 安裝 ps_mem 包:
~~~
$ sudo yum install ps_mem
~~~
對于Fedora ,使用 dnf 包管理器 安裝 ps_mem 包:
~~~
$ sudo dnf install ps_mem
~~~
對于 Arch Linux ,使用 pacman 包管理器 安裝 ps_mem 包:
~~~
$ sudo pacman -S ps_mem
~~~
#### 通過 pip 安裝 ps_mem
pip 是在 Linux 上推薦使用的一種安裝 Python 包的工具。可以使用 pip 命令而不是包管理器去獲取最新的版本。使用 pip 包前,請確保你的系統上已安裝過 pip 包。否則,先使用發行版本的包管理器安裝 python-pip 包。
對于基于 Debian 的系統:
~~~
$ sudo apt-get install python-pip
~~~
對于基于 RHEL/CentOS 的系統:
~~~
$ sudo yum install python-pip
~~~
對于 Fedora
~~~
$ sudo dnf install python-pip
~~~
對于 openSUSE
~~~
$ sudo zypper install python-pip
~~~
對于基于 Arch Linux 的系統:
~~~
$ sudo pacman -S python-pip
~~~
最后,在 Linux 上運行 pip 工具安裝 ps_mem :
~~~
$ sudo pip install ps_mem
~~~
#### 直接運行 ps_mem.py 腳本
我們也可以從開發者 github 頁面下載文件,并直接運行 ps_mem.py 腳本。
$ git clone https://github.com/pixelb/ps_mem.git && cd ps_mem
$ sudo python ps_mem.py
#### ps_mem 使用方法
不帶任何參數直接運行 `ps_mem` 以精確獲取每個程序的的核心內存使用情況。
~~~
$ sudo ps_mem
Private + Shared = RAM used Program
1.6 MiB + 438.5 KiB = 2.1 MiB packagekitd
1.7 MiB + 498.0 KiB = 2.1 MiB indicator-application-service
912.0 KiB + 1.3 MiB = 2.2 MiB window-stack-bridge
2.0 MiB + 350.5 KiB = 2.3 MiB gnome-keyring-daemon
1.8 MiB + 575.0 KiB = 2.3 MiB whoopsie
2.4 MiB + 304.5 KiB = 2.7 MiB systemd-journald
2.7 MiB + 157.5 KiB = 2.8 MiB ibus-engine-simple
2.7 MiB + 182.0 KiB = 2.9 MiB ibus-dconf
2.7 MiB + 332.5 KiB = 3.0 MiB NetworkManager
3.1 MiB + 169.5 KiB = 3.2 MiB polkitd
1.9 MiB + 1.7 MiB = 3.6 MiB systemd (2)
3.4 MiB + 172.5 KiB = 3.6 MiB deja-dup-monitor
2.9 MiB + 685.0 KiB = 3.6 MiB zeitgeist-datahub
2.9 MiB + 848.0 KiB = 3.7 MiB python2.7
. . . . . .
222.1 MiB + 9.4 MiB = 231.5 MiB compiz
286.2 MiB + 11.8 MiB = 298.0 MiB firefox
---------------------------------
1.3 GiB
~~~
=================================
輸出中打印出全路徑:
~~~
$ sudo ps_mem -s
Private + Shared = RAM used Program
3.2 MiB + 951.0 KiB = 4.1 MiB /usr/lib/evolution/evolution-addressbook-factory
3.7 MiB + 826.5 KiB = 4.5 MiB /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
3.7 MiB + 853.0 KiB = 4.6 MiB /usr/lib/unity-settings-daemon/unity-fallback-mount-helper
. . . . . .
131.9 MiB + 168.0 KiB = 132.1 MiB /usr/sbin/mysqld
222.1 MiB + 9.4 MiB = 231.5 MiB /usr/bin/compiz
286.2 MiB + 11.8 MiB = 298.1 MiB /usr/lib/firefox/firefox
---------------------------------
1.3 GiB
~~~
=================================
只顯示特定的 PID 列表的內存使用情況:
~~~
$ sudo ps_mem -p 2886,4386
Private + Shared = RAM used Program
13.5 MiB + 2.9 MiB = 16.4 MiB gnome-terminal-server
286.2 MiB + 11.8 MiB = 298.0 MiB firefox
---------------------------------
314.4 MiB
~~~
=================================
每 N 秒打印進程內存。以下命令每 2 秒報告一次內存使用情況:
~~~
$ sudo ps_mem w 2
~~~
只顯示內存總量:
~~~
$ sudo ps_mem -t
1329884160
~~~
http://www.2daygeek.com/ps_mem-report-core-memory-usage-accurately-in-linux/
* * * * *
作者:2DAYGEEK 譯者:xllc 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
- 目錄
- W3School
- 工具
- 手冊
- 實驗
- 慕課
- Linux軟件安裝管理
- RPM包安裝
- yum安裝
- Linux系統管理
- ps_mem
- uname
- CentOS版本
- Linux服務管理
- Linux權限管理
- Linux 權限控制的基本原理
- Linux網絡管理
- Linux計劃任務
- Crontab
- 任務啟停
- 綜合用例
- 間隔任務
- 一次任務
- 跨天任務
- 輸出重定向
- Crontab任務權限
- 多任務
- 表達式
- 視頻教程
- 不知疲倦的時間表
- 發送郵件
- nginx
- nginx入門到實踐
- Nginx配置Web服務器
- 查看進程
- 配置步驟
- nginx升級
- 腳本升級
- systemctl 命令完全指南
- Linux 軟件安裝目錄
- 查看文件安裝路徑
- 書籍
- 《Linux Shell腳本攻略》
- 《循序漸進Linux》
- 課程
- Linux典型應用
- 網址
- 通信
- MySQL開啟遠程連接
- 防火墻
- 安全組規則
- Mailx
- 介紹
- 安裝
- 配置
- 發送郵件
- 163_email
- 安全
- Linux中root賬號和普通賬號有什么區別,root賬號為什么不能刪除?
- chmod改變文件權限
- SELinux入門