參照《Linux CPU佔用率監控工具小結-vmstat》html
memstat能夠經過sudo apt install memstat
安裝,安裝包括兩個文件memstat和memstat.conf。ssh
其中memstat.conf是memstat配置文件,指定memstat檢索目錄,裏面應該包括主要的bin和lib目錄。工具
memstat經過遍歷/proc下全部進程,而後解析內存使用狀況。spa
經過對比能夠發現,memstat不會統計內核線程的內存使用狀況,同時memstat也不會統計全部設備使用的內存。線程
memstat使用很簡單:code
memstat - 顯示整個系統內存使用狀況。 memstat -p pid - 顯示進程pid的內存使用狀況。
下面是一嵌入式設備的memstat狀況,和ps對照能夠看出不顯示內核線程佔用狀況。htm
整體來看分爲兩大部分:進程視角、文件視角。blog
# 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)
依次是佔用內存大小、pid號、文件路徑。進程
這裏的大小不包括庫文件,也不包括可執行文件的text段,只是進程私有內存大小。內存
依次是此文件總的分配內存、括號內是共享部分大小、而後是庫路徑、最後是使用此庫文件的進程號。