top实时监控进程

uptime查看CPU负载工具

[root@tzPC ~]# uptime
 09:21:16 up  4:40,  5 users,  load average: 8.13, 5.90, 4.94

09:21:16:当前时间

up 4:40:系统运行时间,如图已运行了4小时40分钟

5 users:当前用户数

load average:系统负载,显示的是过去的1,5,15分钟内进程队列中的平均进程数量

如何衡量当前系统是否负载过高

如果每个cpu(可以按CPU核心的数量计算)上当前活动进程数不大于3,则系统性能良好,

不大于4,表示可以接受

如大于5,则系统性能问题严重

上面例中的8.13,如果有2个cpu核心,则8.13/2=4.065,  此系统性能可以接受

[root@tzPC ~]# w
 09:25:35 up  4:44,  5 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      20Jun20 16:03m  0.03s  0.03s -bash
root     pts/0    192.168.149.1    20Jun20 21days  0.17s  0.17s -bash
root     pts/1    192.168.149.1    20Jun20 21days  0.03s  0.03s -bash
root     pts/2    192.168.149.1    Sat17   14:13m  0.03s  0.00s more
root     pts/3    192.168.149.1    09:21    7.00s  0.03s  0.02s w

 

 

top命令

[root@tzPC tz]# top
top - 15:51:16 up 2 days,  6:06,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  98 total,   2 running,  96 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem :  2027940 total,  1012072 free,   227048 used,   788820 buff/cache
KiB Swap:  3145724 total,  3145724 free,        0 used.  1594920 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                            
   317 root      20   0       0      0      0 R  0.3  0.0   0:21.80 xfsaild/sda3                       
   853 root      20   0  305180   6388   5004 S  0.3  0.3   7:38.25 vmtoolsd                           
 57566 root      20   0       0      0      0 S  0.3  0.0   0:20.79 kworker/0:0                        
     1 root      20   0  128288   6944   4196 S  0.0  0.3   0:38.39 systemd                            
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.08 kthreadd                           
     4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                       
     6 root      20   0       0      0      0 S  0.0  0.0   0:06.97 ksoftirqd/0                        
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                        
     8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                             
     9 root      20   0       0      0      0 S  0.0  0.0   0:09.94 rcu_sched                          
    10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-drain                      
    11 root      rt   0       0      0      0 S  0.0  0.0   0:03.06 watchdog/0                         
    13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                          
    14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                              
    15 root      20   0       0      0      0 S  0.0  0.0   0:00.12 khungtaskd                         
    16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback                          
    17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd                       

 第一行:

top - 15:51:16 up 2 days,  6:06,  2 users,  load average: 0.00, 0.01, 0.05

 当前时间、系统的运行时间、登陆的用户数、系统的平均负载

注意:平均负载有三个值分别是最近1分钟,最近5分钟,最近15分钟,值越大系统负载越高,跟服务器配置有关,

 

 第二行:

Tasks:  98 total,   2 running,  96 sleeping,   0 stopped,   0 zombie

 Tasks:95 total 当前总进程数

2 running :正在运行进程数

93 sleeping:休眠

1 stooped:停止

0 zombie:僵尸进程

第三行:

%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.3 si,  0.0 st

 

0.0 us:用户占用CPU的百分比

0.3 sy:内核占用CPU的百分比

0.0 ni:用户进程空间内改过优先级的进程占用CPU百分比

99.0 id:空闲值CPU百分比,CPU越空闲值越高

0.3 wa:CPU等待I/O完成时占用CPU百分比

如果wa占用很多CPU,则表示磁盘性能不足,建议升级磁盘

hi:硬中断

si:软中断

st偷:虚拟机偷取物理机的CPU的时间。比如linux下安装了KVM虚拟机,KVM虚拟机占用物理机的CPU时间

第四行:

KiB Mem :  2027940 total,  1012072 free,   227048 used,   788820 buff/cache

 

总内存

空闲内存

已使用内存

可被释放内存

第五行:

KiB Swap:  3145724 total,  3145724 free,        0 used.  1594920 avail Mem

 

总交换分区大小

空闲交换分区大小

已使用交换分区大小

可用交换分区大小

 第六行:

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND 

 

PR:进程的优先级

NI:谦让度值用来参与决定优先级

VIRT:进程占用虚拟内存总量

RES:进程占用物理内存总量

SHR:进程和其他进程共享的内存总量

S:进程的状态

占用CPU%

占用内存%

占用CPU时间

启动的程序名

 

top快捷键

默认3s刷新一次,按s修改刷新时间

空格:立即刷新

q:退出

P:按CPU排序

p:后接进程ID,查看某个进程状态(如top -p 20,动态查看PID为20的进程)

M:按内存排序

T:按时间排序

数字键1:显示每个内核的CPU使用率

u/U:指定显示用户

h:帮助

 

在linux系统中一个进程可以占用超过100%CPU,如dirtycow(脏牛),提权漏洞

如果是4核心CPU,可以运行400%

 

lsof命令

查看你进程打开的文件,进程打开的端口

-i <条件>:查找符合条件的进程(如lsof -i :22查看打开22端口的进程)

-p <进程号>:列出指定进程号打开的文件

通过ps -aux | grep xxx找到进程号,再使用lsof -p xxx找到进程访问的文件

 

pstree工具使用

以树状显示进程,只显示进程的名字,相同进程合并。

-p 显示进程PID

使用此命令需要安装psmisc

 yum -y install psmisc

 

posted @ 2020-07-12 11:27  努力吧阿团  阅读(408)  评论(0编辑  收藏  举报