top/ps查看高內存進程/查看機器核數

說明

本文主題:
1.使用ps命令查看使用內存或CPU最多的10個進程
2.top 或 ps 相關命令


常見使用:

top

top -c: 顯示全命令
top 交互 M :以內存排序
top 交互 P :以CPU排序
top 交互 H :線程也顯示出來

ps

ps -aux | head -1; ps -aux | sort -k4rn | head

ps -aux 和 ps -ef 都顯示進程信息
不過aux能顯示內存和cpu
上述top和ps都能查看進程使用情況。下文是詳細解釋。


head

head 默認顯示前10行
head -n 2 顯示前兩行
head -1 表示前1行。說明 head -x 和 head -n x 含義一樣。

top

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
34729 wanghon+  20   0 53.704g 5.042g   6444 S   1.3  4.0   4908:38 java

參數解釋1

top - 17:05:40 up 234 days,  3:09, 19 users,  load average: 14.70, 12.85, 14.25
Tasks: 817 total,   1 running, 796 sleeping,  16 stopped,   4 zombie
%Cpu(s):  4.5 us,  0.6 sy,  0.0 ni, 95.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

第三個參數:當前有多少人登錄了這個系統:19個人登錄
第四個參數:系統負載,既任務隊列的平均長度,三個數值分別代表最近1分鐘,5分鐘,15分鐘的系統平均負載
【關注點1】:系統負載
​ 對於單核CPU來說,0表示沒有負荷,1表示滿負荷,大於1表示超負荷,理想值是0.7
對於多核CPU來說,用核數按比例放大就好,比如四核CPU,理想值就是4*0.7=2.8
我們的機器是40核,所以現在負載才14,所以很好。

查看機器核數

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

40 Intel® Xeon® CPU E5-2630 v4 @ 2.20GHz
第一個參數是核數,第二個參數是型號

解釋參數2

PID 
USER      
PR      (priority) :優先級
NI      (nice value) : 負值表示高優先級,正值表示低優先級
VIRT    (Virtual Image (kb)) : 進程使用的虛擬內存總量,單位kb。
                               VIRT=SWAP+RES
RES     進程使用的、未被換出的物理內存大小,單位kb。
                               RES=CODE+DATA
SHR     (Shared Mem size (kb)) : 共享內存大小,單位kb
S       (Process Status) : 進程狀態
              D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/停止,Z=殭屍進程
%CPU    上次更新到現在的CPU時間佔用百分比。這裏可能超過100%,每一個100%表示佔用了一個CPU,比如230%,表示目前這個進程佔用了2核CPU
%MEM    進程使用佔物理內存的百分比,如4%,5.04/4%=126g(我們通過free看到的總內存就是125g,就是這個值) 
TIME+   運行時間分鐘,如4908:38 表示4908分鐘了
COMMAND

結論:
我們關注內存只關注RES即可,不用管VIRT

top -p pid 顯示特定pid
top -c 顯示全命令

top在運行時的交互:
M:  以內存排序
P:   以cpu排序
m:  以內存顯示如:
    KiB Mem : 81.0/13177932+[  ]
    KiB Swap:  0.0/0        [  ]
H:  以線程模式顯示    

附件:

top

$ top -c 加交互M

top - 17:17:05 up 234 days,  3:21, 19 users,  load average: 7.72, 10.30, 12.31
Tasks: 807 total,   1 running, 790 sleeping,  16 stopped,   0 zombie
%Cpu(s):  5.4 us,  0.3 sy,  0.0 ni, 94.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 13177932+total, 35615728 free, 88583248 used,  7580352 buff/cache
KiB Swap:        0 total,        0 free,        0 used. 42112332 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 8765 xxx+  20   0 28.739g 7.688g   6120 S  10.4  6.1 101:16.43 /usr/local/jdk1.8.0_77/bin/java -Xms20480m -Xmx20480m com.didi.datainfra.hql_migration.d+
34729 wanghon+  20   0 53.676g 5.537g   6780 S   0.0  4.4   4909:47 /usr/local/jdk1.8.0_77/bin/java -Djava.util.logging.config.file=/home/wanghongbing/apach+

ps

$ ps -aux | head -1; ps -aux | sort -k4rn | head -n 2

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
xxx+  8765 17.8  6.1 30134828 8062684 pts/13 Sl 07:44 102:43 /usr/local/jdk1.8.0_77/bin/java -Xms20480m -Xmx20480m com.didi.datainfra.hql_migration.diff.DiffMain /home/xxx/sparksql/hivesql/migrate/replay/bigdata_qa/3.0/replay_success_meta.json /home/xxx/migration-data/checkpoint/ck3.txt /home/xxx/migration-data/diffresult/diffresult3.txt 15
wanghon+ 34729 19.1  4.4 56283880 5805912 ?    Sl   Jun02 4909:51 /usr/local/jdk1.8.0_77/bin/java -Djava.util.logging.config.file=/home/wanghongbing/apache-tomcat-8.5.42-dream/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /home/wanghongbing/apache-tomcat-8.5.42-dream/bin/bootstrap.jar:/home/wanghongbing/apache-tomcat-8.5.42-dream/bin/tomcat-juli.jar -Dcatalina.base=/home/wanghongbing/apache-tomcat-8.5.42-dream -Dcatalina.home=/home/wanghongbing/apache-tomcat-8.5.42-dream -Djava.io.tmpdir=/home/wanghongbing/apache-tomcat-8.5.42-dream/temp org.apache.catalina.startup.Bootstrap start
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章