1. vmstat 參照《 "Linux CPU占用率監控工具小結 vmstat" 》 2. memstat memstat可以通過 安裝,安裝包括兩個文件memstat和memstat.conf。 其中memstat.conf是memstat配置文件,指定memstat檢索目錄,裡面應該包括主要的 ...
1. vmstat
2. memstat
memstat可以通過sudo apt install memstat
安裝,安裝包括兩個文件memstat和memstat.conf。
其中memstat.conf是memstat配置文件,指定memstat檢索目錄,裡面應該包括主要的bin和lib目錄。
memstat通過遍歷/proc下所有進程,然後解析記憶體使用情況。
通過對比可以發現,memstat不會統計內核線程的記憶體使用情況,同時memstat也不會統計所有設備使用的記憶體。
2.1 memstat使用
memstat使用很簡單:
memstat - 顯示整個系統記憶體使用情況。
memstat -p pid - 顯示進程pid的記憶體使用情況。
2.2 memstat解讀
下麵是一嵌入式設備的memstat情況,和ps對照可以看出不顯示內核線程占用情況。
總體來看分為兩大部分:進程視角、文件視角。
# memstat
288k: PID 1 (/bin/busybox)-----------------------------------------------------進程可執行文件記憶體占用
476k: PID 147 (/usr/sbin/sshd)
288k: PID 153 (/bin/busybox)
288k: PID 154 (/bin/busybox)
288k: PID 210 (/usr/bin/memstat)
784k( 760k): /bin/busybox 1 153 154 1 153 154 1 153 154-------------------------共用庫記憶體占用情況
52k( 36k): /lib/libnss_files-2.28.9000.so 147 154 147 154 147 154
16k( 8k): /lib/libutil-2.28.9000.so 147
36k( 28k): /lib/libcrypt-2.28.9000.so 147
1272k( 1192k): /lib/libc-2.28.9000.so 1 147 153 154 210 1 147 153 154 2...
156k( 116k): /lib/ld-2.28.9000.so 1 147 153 154 210 1 147 153 154 210...
16k( 8k): /lib/libdl-2.28.9000.so 147
708k( 696k): /usr/sbin/sshd 147
1460k( 1364k): /usr/lib/libcrypto.so.1.0.0 147
80k( 72k): /usr/lib/libz.so.1.2.11 147
16k( 8k): /usr/bin/memstat 210
--------
6224k ( 4288k)
2.2.1 bin記憶體占用
依次是占用記憶體大小、pid號、文件路徑。
這裡的大小不包括庫文件,也不包括可執行文件的text段,只是進程私有記憶體大小。
2.2.3 庫記憶體占用
依次是此文件總的分配記憶體、括弧內是共用部分大小、然後是庫路徑、最後是使用此庫文件的進程號。