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

猜你喜欢

转载自blog.csdn.net/answer100answer/article/details/106875161