说明
本文主题:
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