腳本統計某進程的內存使用大小

http://zengestudy.blog.51cto.com/1702365/1833505bash

1async

2spa

3.net

4code

5blog

6隊列

7進程

8ip

#!/bin/bash內存

memlist=`ps auxf --width=1000 |grep $1|grep -v grep|awk '{print $6}'`;

totalMem=0

for mem in $memlist; do

   

  let "totalMem=$totalMem+mem"

done

echo $totalMem

$1 表示進程名字,是腳本給出的參數。也是zabbix上Item中要指定的。

 

上面的腳本能夠簡化:

1

2

3

#!/bin/bash

mem=`ps auxf --width=1000 |grep $1|grep -v grep|awk '{sum+=$6}END{print sum}'`

echo $mem

 

ps aux命令詳解

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

[root@ZabbixServer scripts]# ps auxf --width=1000|more

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root          2  0.0  0.0      0     0 ?        S    Jun29   0:00 [kthreadd]

root          3  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [migration/0]

root          4  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [ksoftirqd/0]

root          5  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [stopper/0]

root          6  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [watchdog/0]

root          7  0.0  0.0      0     0 ?        S    Jun29   0:31  \_ [events/0]

root          8  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [events/0]

root          9  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [events_long/0]

root         10  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [events_power_ef]

root         11  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [cgroup]

root         12  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [khelper]

root         13  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [netns]

root         14  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [async/mgr]

root         15  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [pm]

root         16  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [sync_supers]

root         17  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [bdi-default]

root         18  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [kintegrityd/0]

root         19  0.0  0.0      0     0 ?        S    Jun29   0:13  \_ [kblockd/0]

root         20  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [kacpid]

root         21  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [kacpi_notify]

root         22  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [kacpi_hotplug]

root         23  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [ata_aux]

root         24  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [ata_sff/0]

root         25  0.0  0.0      0     0 ?        S    Jun29   0:00  \_ [ksuspend_usbd]

USER:進程的屬主;
PID :進程的ID;
PPID :父進程;
%CPU:進程佔用的CPU百分比;
%MEM:佔用內存的百分比;
NI :進程的NICE值,數值大,表示較少佔用CPU時間;
VSZ:該進程使用的虛擬內存量(KB);
RSS:該進程佔用的固定內存量(KB)(駐留中頁的數量);
TTY:該進程在那個終端上運行(登陸者的終端位置),若與終端無關,則顯示(?)。若為pts/0等,則表示由網絡連接主機進程
WCHAN:當前進程是否正在進行,若為-表示正在進行;
START:該進程被觸發啓動時間;
TIME:該進程實際使用CPU運行的時間;
COMMAND:命令的名稱和參數;

 

STAT常見狀態:

D 沒法中斷的休眠狀態(一般 IO 的進程);
R 正在運行可中在隊列中可過行的;
S 處於休眠狀態;
T 中止或被追蹤;
W 進入內存交換  (從內核2.6開始無效);
X 死掉的進程   (基本不多見);
Z 殭屍進程;

< 優先級高的進程
N 優先級較低的進程
L 有些頁被鎖進內存;
s 進程的領導者(在它之下有子進程);
l 多進程的(使用 CLONE_THREAD, 相似 NPTL pthreads);
+ 位於後臺的進程組;

 

 

參考資料:http://blog.csdn.net/hanner_cheung/article/details/6081440

相關文章
相關標籤/搜索