說明
本文主題:
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