pmap命令用于顯示一個或多個進程的內存狀態,下面通過本文給大家分享linux性能測試 pmap命令詳解,需要的朋友參考下吧
名稱:
?pmap?-?report?memory?map?of?a?process(查看進程的內存映像信息)
用法????
?pmap?[?-x?|?-d?]?[?-q?]?pids... ????pmap?-V
選項含義
?-x??extended????Show?the?extended?format.?顯示擴展格式 ????-d??device?????Show?the?device?format.??顯示設備格式 ????-q??quiet?????Do?not?display?some?header/footer?lines.?不顯示頭尾行 ????-V??show?version??Displays?version?of?program.?顯示版本
擴展格式和設備格式域:
Address:?start?address?of?map?映像起始地址 ????Kbytes:?size?of?map?in?kilobytes?映像大小 ????RSS:?resident?set?size?in?kilobytes?駐留集大小 ????Dirty:?dirty?pages?(both?shared?and?private)?in?kilobytes?臟頁大小 ????Mode:?permissions?on?map?映像權限:?r=read,?w=write,?x=execute,?s=shared,?p=private?(copy?on?write)? ????Mapping:?file?backing?the?map?,?or?'[?anon?]'?for?allocated?memory,?or?'[?stack?]'?for?the?program?stack.?映像支持文件,[anon]為已分配內存?[stack]為程序堆棧 ????Offset:?offset?into?the?file?文件偏移 ????Device:?device?name?(major:minor)?設備名
舉例:
查看進程1的設備格式
[root@C44?~]#?pmap?-d?1 1:??init?[5]?????????? Address??Kbytes?Mode?Offset??????Device??Mapping 00934000???88?r-x--?0000000000000000?008:00005?ld-2.3.4.so 0094a000????4?r----?0000000000015000?008:00005?ld-2.3.4.so 0094b000????4?rw---?0000000000016000?008:00005?ld-2.3.4.so 0094e000??1188?r-x--?0000000000000000?008:00005?libc-2.3.4.so 00a77000????8?r----?0000000000129000?008:00005?libc-2.3.4.so 00a79000????8?rw---?000000000012b000?008:00005?libc-2.3.4.so 00a7b000????8?rw---?0000000000a7b000?000:00000??[?anon?] 00a85000???52?r-x--?0000000000000000?008:00005?libsepol.so.1 00a92000????4?rw---?000000000000c000?008:00005?libsepol.so.1 00a93000???32?rw---?0000000000a93000?000:00000??[?anon?] 00d9d000???52?r-x--?0000000000000000?008:00005?libselinux.so.1 00daa000????4?rw---?000000000000d000?008:00005?libselinux.so.1 08048000???28?r-x--?0000000000000000?008:00005?init 0804f000????4?rw---?0000000000007000?008:00005?init 084e1000???132?rw---?00000000084e1000?000:00000??[?anon?] b7f5d000????8?rw---?00000000b7f5d000?000:00000??[?anon?] bffee000???72?rw---?00000000bffee000?000:00000??[?stack?] ffffe000????4?-----?0000000000000000?000:00000??[?anon?] mapped:?1700K??writeable/private:?276K??shared:?0K [root@C44?~]#
最后一行的值
mapped 表示該進程映射的虛擬地址空間大小,也就是該進程預先分配的虛擬內存大小,即ps出的vsz
writeable/private? 表示進程所占用的私有地址空間大小,也就是該進程實際使用的內存大小???
shared 表示進程和其他進程共享的內存大小
查看進程1的設備格式,不顯示頭尾行
[root@C44?~]#?pmap?-d?-q?1 1:??init?[5]?????????? 00934000???88?r-x--?0000000000000000?008:00005?ld-2.3.4.so 0094a000????4?r----?0000000000015000?008:00005?ld-2.3.4.so 0094b000????4?rw---?0000000000016000?008:00005?ld-2.3.4.so 0094e000??1188?r-x--?0000000000000000?008:00005?libc-2.3.4.so 00a77000????8?r----?0000000000129000?008:00005?libc-2.3.4.so 00a79000????8?rw---?000000000012b000?008:00005?libc-2.3.4.so 00a7b000????8?rw---?0000000000a7b000?000:00000??[?anon?] 00a85000???52?r-x--?0000000000000000?008:00005?libsepol.so.1 00a92000????4?rw---?000000000000c000?008:00005?libsepol.so.1 00a93000???32?rw---?0000000000a93000?000:00000??[?anon?] 00d9d000???52?r-x--?0000000000000000?008:00005?libselinux.so.1 00daa000????4?rw---?000000000000d000?008:00005?libselinux.so.1 08048000???28?r-x--?0000000000000000?008:00005?init 0804f000????4?rw---?0000000000007000?008:00005?init 084e1000???132?rw---?00000000084e1000?000:00000??[?anon?] b7f5d000????8?rw---?00000000b7f5d000?000:00000??[?anon?] bffee000???72?rw---?00000000bffee000?000:00000??[?stack?] ffffe000????4?-----?0000000000000000?000:00000??[?anon?] [root@C44?~]#
查看進程1的擴展格式
[root@C44?~]#?pmap?-x?1 1:??init?[5]?????????? Address??Kbytes???RSS??Anon?Locked?Mode??Mapping 00934000???88????-????-????-?r-x--?ld-2.3.4.so 0094a000????4????-????-????-?r----?ld-2.3.4.so 0094b000????4????-????-????-?rw---?ld-2.3.4.so 0094e000??1188????-????-????-?r-x--?libc-2.3.4.so 00a77000????8????-????-????-?r----?libc-2.3.4.so 00a79000????8????-????-????-?rw---?libc-2.3.4.so 00a7b000????8????-????-????-?rw---??[?anon?] 00a85000???52????-????-????-?r-x--?libsepol.so.1 00a92000????4????-????-????-?rw---?libsepol.so.1 00a93000???32????-????-????-?rw---??[?anon?] 00d9d000???52????-????-????-?r-x--?libselinux.so.1 00daa000????4????-????-????-?rw---?libselinux.so.1 08048000???28????-????-????-?r-x--?init 0804f000????4????-????-????-?rw---?init 084e1000???132????-????-????-?rw---??[?anon?] b7f5d000????8????-????-????-?rw---??[?anon?] bffee000???72????-????-????-?rw---??[?stack?] ffffe000????4????-????-????-?-----??[?anon?] --------?-------?-------?-------?------- total?kB??1700????-????-????- [root@C44?~]#
循環顯示進程3066的設備格式的最后1行,間隔2秒,
[root@C44?~]#?while?true;?do?pmap?-d?3066?|?tail?-1;?sleep?2;?done mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K mapped:?5412K??writeable/private:?2028K??shared:?0K
?總結
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END