歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

AIX詳細查看用戶/進程使用內存

AIX詳細查看用戶/進程使用內存   問題描述:通過topas發現%comp內存已使用98%     問題分析:     1,從大到小排列10個內存使用率進程 ps aux |  head -1 ;  ps aux |  sort -rn +3 |  head -10 如詳細查看進程: ps -ealf |  head -1 ;  ps -ealf |  sort -rn +9 |  head    -10   # ps aux | head -1 ; ps aux | sort -rn +3 | head -10 USER         PID %CPU %MEM   SZ  RSS    TTY STAT    STIME  TIME COMMAND root     6553834  0.1  3.0 115064 115080      - A      Feb 20 86:08 /var/opt/tivoli root     5701730  0.0  1.0 17480 21956      - A      Mar 05  1:17 /opt/BESClient/ pconsole 4456680  0.0  1.0 42456 42464      - A      Feb 20  3:11 /usr/java5/bin/ root     6750376  0.0  0.0  796  824  pts/0 A    11:29:26  0:00 ps aux  root     6488234  0.0  0.0  260  268      - A      Mar 13  0:02 auditbin  root     6357208  0.0  0.0  236  248  pts/0 A    11:29:26  0:00 sort -rn +3  root     5963962  0.0  0.0 1768 1804      - A      Feb 20  0:00 /usr/sbin/rsct/ root     5832798  0.0  0.0  836  856      - A    11:29:12  0:00 telnetd -a  root     5570748  0.0  0.0 2128 2096      - A      Feb 20  0:00 /usr/sbin/rsct/ root     5308652  0.0  0.0 7328 7436      - A      Feb 20  1:01 /usr/sbin/rsct/   2,根據某個命令或進程名,查看內存使用率 # ps aux | head -1 ; ps aux | grep topas 如詳細查看: USER         PID %CPU %MEM   SZ  RSS    TTY STAT    STIME  TIME COMMAND root     2359426  0.0  0.0 1440 1272      - A      Feb 20  1:08 /usr/bin/topasr root     6160578  0.0  0.0  252  264  pts/0 A    11:36:45  0:00 grep topas    但有的時候ps aux並不能非常詳細地表現出進程的完整使用率 3,通過root用戶svmon用戶可以分析出內存使用量 # svmon -G                size       inuse        free         pin     virtual   mmode memory      1048576     1037487       11089      229668      378796     Ded pg space    2097152        2360                  work        pers        clnt       other pin          196952           0           0       32716 in use       378796           0      658691   PageSize   PoolSize       inuse        pgsp         pin     virtual s    4 KB         -      793327        2360       49188      134636 m   64 KB         -       15260           0       11280       15260   inuse:是物理內存使用量,這裡是以4K為單位,所以 1037487*4096=4249546752(424M) virtual:是虛擬內存使用量,這裡是以4K為單位,所以 378796*4096=1551548416(155M)   4,顯示使用物理內存最多的3個進程:   # svmon -uP -t 3|grep -p Pid|grep '^.*[0-9] '    6553834 java             51279     8917        0    50938      N     Y     N    4456680 java             34626     8874        0    34608      N     Y     N    5701730 BESClient        29564     8882        0    25689      Y     Y     N   輸出的格式順序為 Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd    可以計算出X程序所使用的實存為51279×4096=210038784,約為210MB    5,顯示交換區使用物理內存最多的3個進程   # svmon -gP -t 3|grep -p Pid|grep '^.*[0-9] '     1966206 shlap64          26782     8880        0    26771      Y     N     N          0 swapper           9872     8912        0     9872      Y     N     N          1 init             22094     8836        0    22076      N     N     N   第一個程序X所使用的交換區大小約為 26782×4096 =10510336 字節,大約為10MB空間    6,每隔三秒顯示使用最多的段   # svmon -S -t 3 -i 3    Vsid Esid Type Description Inuse Pin Pgsp Virtual    4f08 -    clnt 37505 0 - -    11e1 -    clnt 33623 0 - -    8811 -    work kernel pinned heap 12637 6547 8091 19397    可見,Vsid為4f08的段使用最多    7,svmon -pP 22674    看PID為22674的進程所使用的為那些文件    Pid Command nuse Pin Pgsp Virtual 64-bit Mthrd    22674 java 29333 1611 2756 32404 N Y      Vsid Esid Type Description Inuse Pin Pgsp Virtual    0 0 work kernel seg 2979 1593 1659 4561    a056 - work 43 16  3   46    1e03 2 work process private 77 2   17  93    1080 - pers /dev/hd2:69742 1 0   -   -    f8bd f work shared library data 84 0   11  99    60ee 8 work shmat/mmap 0 0   0   0    70ec - pers /dev/hd2:69836 1 0   -   -    8,通過ncheck命令,檢查Vsid都使用了哪些文件。   ncheck a056   附件1:查看物理內存總量   # cat mem1.sh   #!/usr/bin/ksh   #mem totle   totalmem=$(vmstat -v|head -n 1|awk '{print $1/256}')   echo "mem totle:"   echo $totalmem MB   echo   附件2:查看每個用戶占用物理內存的數量   # cat mem2.sh   usermem=$(for username in `cat /etc/passwd|awk -F: '{print $1}'`   do   svmon -U $username|grep $username" "   done)   usermem=`echo "$usermem"|grep -v "0        0        0        0"|awk '{print $1,$2/256,"MB"}'`   echo "singe user pmem"   echo "$usermem"   usermem=$(echo "$usermem"|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{print sum1;}')   usermem=$(echo $usermem|awk -F\. '{print $1}')   echo "singe user pmem :" $usermem MB   echo       AIX5.3下查看系統、用戶、文件系統占用內存數量   #!/usr/bin/ksh   #查看總的內存數量:   totalmem=$(vmstat -v|head -n 1|awk '{print $1/256}')   echo "總內存(物理內存):"   echo $totalmem MB   echo   #查看各用戶使用的內存:   usermem=$(for username in `cat /etc/passwd|awk -F: '{print $1}'`   do   svmon -U $username|grep $username" "   done)   usermem=`echo "$usermem"|grep -v "0        0        0        0"|awk '{print $1,$2/256,"MB"}'`   echo "各用戶內存(物理內存):"   echo "$usermem"   usermem=$(echo "$usermem"|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{print sum1;}')   usermem=$(echo $usermem|awk -F\. '{print $1}')   echo "用戶內存(物理內存)合計:" $usermem MB   echo   #查看文件系統緩存:   clientmem1=`svmon -G|grep "^pin"|awk '{print $4}'`   clientmem2=`svmon -G|grep "^in use"|awk '{print $5}'`   clientmem=`expr $clientmem1 + $clientmem2`   clientmem=`expr $clientmem / 256`   echo "文件系統緩存(物理內存):"   echo $clientmem MB   echo   #查看系統使用內存:   sysmem=$(svmon -S -s -u|cut -b 54-|grep -v "0     0    0     0"|grep [0-9]|awk '{print $1,$2}')   supremeseg=`echo "$sysmem"|grep S|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*16*1024*1024;print sum1;}'`   largeseg=`echo "$sysmem"|grep L|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*16*1024;print sum1;}'`   mediumseg=`echo "$sysmem"|grep m|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*64;print sum1;}'`   smallseg=`echo "$sysmem"|grep s|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*4;print sum1;}'`   sysmem=$(expr $supremeseg + $largeseg + $mediumseg + $smallseg)   sysmem=$(expr $sysmem / 1024)   echo "系統內存(物理內存):"   echo $sysmem MB   echo   #查看空閒內存:   freemem=$(vmstat -v|grep free|awk '{print $1/256}')   echo "空閒內存(物理內存):"   freemem=$(echo $freemem|awk -F\. '{print $1}')   echo $freemem MB   echo  
Copyright © Linux教程網 All Rights Reserved