参照《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段,只是进程私有内存大小。内存
依次是此文件总的分配内存、括号内是共享部分大小、而后是库路径、最后是使用此库文件的进程号。