1. 程式人生 > >Linux記憶體管理 (26)記憶體相關工具

Linux記憶體管理 (26)記憶體相關工具

 

1. vmstat

參照《Linux CPU佔用率監控工具小結-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 庫記憶體佔用

依次是此檔案總的分配記憶體、括號內是共享部分大小、然後是庫路徑、最後是使用此庫檔案的程序號。