Linux性能測試之pmap命令詳解

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
喜歡就支持一下吧
點贊15 分享