linux top查看资源占用,top命令动态显示系统资源占用情况

1.释义

top可以显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

2.系统帮助

Usage:

top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]

参数:

-b:批处理

-c:显示完整的命令

-I:忽略失效过程

-s:保密模式

-S:累积模式

-i: 设置间隔时间

-u: 指定用户名

-p: 指定进程

-d: 多长时间刷新一次,单位“秒”

-n: 循环显示的次数

按键:

h 查看帮助

l 显示或隐藏top行信息

t 以不同的方式显示CPU使用率或隐藏或显示Tasks行、%Cpu(s)行

m 以不同的方式显示内存使用率或隐藏或显示KiB Mem行、KiB Swap行

z 以彩色信息展示

n 设置显示进程的数量

s 设置刷新时间

b 高亮显示处于R(运行)状态的进程

1 显示所有核心CPU负载

N 按PID进程号从大到小排序

M 按内存使用百分比从大到小排序

P 按CPU使用百分比从大到小排序

R 对排序进行反转

f 自定义显示字段

k kill掉指定PID进程号

w 保存top环境设置~/.toprc

q 退出top

3.图示

825.html

4.图解

top - 00:54:34 up 67 days, 16:49, 1 user, load average: 0.00, 0.01, 0.05

top - 00:54:34:当前系统时间,零晨54分34秒

up 67 days, 16:49:运行时间,67天16小时49分钟

1 user:当前在线用户,1用户

load average: 0.00, 0.01, 0.05:当前平均负载情况:1分钟,5分钟,15分钟

说明:

平均负载表示的平均活跃进程数,包括正在running的进程数,准备running(就绪态)的进程数,和处于不可中断睡眠状态的进程数。如果平均负载数刚好等于CPU核数,那证明每个核都能得到很好的利用,如果平均负载数大于核数证明系统处于过载的状态,通常认为是超过核数的70%认为是严重过载,需要关注。还需结合1分钟平均负载,5分钟平均负载,15分钟平均负载看负载的趋势,如果1分钟负载比较高,5分钟和15分钟的平均负载都比较低,则说明是瞬间升高,需要观察。如果三个值都很高则需要关注下是否某个进程在疯狂消耗CPU或者有频繁的IO操作,也有可能是系统运行的进程太多,频繁的进程切换导致。

Tasks: 318 total, 1 running, 317 sleeping, 0 stopped, 0 zombie

Tasks: 318 total:当前进程数共计318个

1 running:当前正在运行的1个

317 sleeping:当前休眠317个

0 stopped:当前停止0个

0 zombie:当前僵尸0个

僵尸进程说明:

子进程结束时父进程没有调用wait()/waitpid()等待子进程结束,那么就会产生僵尸进程。原因是子进程结束时并没有真正退出,而是留下一个僵尸进程的数据结构在系统进程表中,等待父进程清理,如果父进程已经退出则会由init进程接替父进程进行处理(收尸)。由此可见,如果父进程不作为并且又不退出,就会有大量的僵尸进程,每个僵尸进程会占用进程表的一个位置(slot),如果僵尸进程太多会导致系统无法创建新的进程,因为进程表的容量是有限的。所以当zombie这个指标太大时需要引起我们的注意。下面的进程详细信息中的S列就代表进程的运行状态,Z表示该进程是僵尸进程。

处理方法:

1.找到僵尸进程的父进程pid(pstress可以显示进程父子关系),kill -9 pid,父进程退出后init自动会清理僵尸进程。(需要注意的是kill -9并不能杀死僵尸进程)

2.重启系统。

%Cpu(s): 0.6 us, 0.9 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

%Cpu(s):总的Cpu使用,按“1”可显示每核使用情况

0.6 us:user 表示用户态的CPU时间比例

0.9 sy:system 表示内核态的CPU时间比例

0.0 ni:nice 表示运行低优先级进程的CPU时间比例

98.5 id:idle 表示空闲CPU时间比例

0.0 wa:iowait 表示处于I/O等待的CPU时间比例

0.0 hi:hard interrupt 表示处理硬中断的CPU时间比例

0.0 si:soft interrupt 表示处理软中断的CPU时间比例

0.0 st:steal 表示当前系统运行在虚拟机中的时候,被其他虚拟机占用的CPU时间比例

说明:

整体的CPU使用率=1-id。当us很高时,证明CPU时间主要消耗在用户代码,需要优化用户代码。sy很高时,说明CPU时间都消耗在内核,要么是频繁的系统调用,要么是频繁的CPU切换(进程切换/线程切换)。wa很高时,说明有进程在进程频繁的IO操作,有可能是磁盘IO,也有可能是网络IO。si很高时,说明CPU时间消耗在处理软中断,网络收发包会触发系统软中断,所以大量的网络小包会导致软中断的频繁触发,典型的SYN Floor会导致si很高。

KiB Mem : 1880024 total, 519252 free, 1142608 used, 218164 buff/cache

KiB Mem:物理内存(kb)

1880024 total:总的物理内存

519252 free:剩余内存

1142608 used:使用内存

218164 buff/cache:用于读写磁盘缓存的内存/用于读写文件缓存的内存

KiB Swap: 511996 total, 262704 free, 249292 used. 488484 avail Mem

KiB Swap:交换分区内存(kb)

511996 total:总的虚拟内存

262704 free:剩余虚拟内存

249292 used:使用虚拟内存

488484 avail Mem:可用内存

说明:

Swap原理是把一块磁盘空间或者一个本地文件当成内存来使用,如果三个值都为0表示系统关闭了swap功能,命令:swapoff -a(关闭),swapon -a(开启)

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

PID:进程号

USER:进程启动的用户

PR:进程调度优先级

NI:进程nice值(优先级),越小的值代表越高的优先级

VIRT:进程使用的虚拟内存

RES:进程使用的物理内存(不包括共享内存)

SHR:进程使用的共享内存

S:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU:进程使用的CPU占比

%MEM:进程使用的内存占比

TIME+:进程启动后到现在所用的全部CPU时间

COMMAND:进程的启动命令(默认只显示二进制,top -c能够显示命令行和启动参数)

5.示例

5.1.每5秒刷新一次

[root@itbkz ~]#top -d 5

5.2.指定进程号查看

[root@itbkz ~]#top -p 6552

top - 23:57:23 up 56 min, 2 users, load average: 0.00, 0.01, 0.04

Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie

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

KiB Mem : 1880024 total, 1482800 free, 128372 used, 268852 buff/cache

KiB Swap: 511996 total, 511996 free, 0 used. 1498168 avail Mem

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

6552 root 20 0 230408 5212 3296 S 0.0 0.3 0:00.32 httpd

5.3.指定间隔和进程号查看

[root@itbkz ~]#top -d 10 -p 6552

top - 23:58:59 up 57 min, 2 users, load average: 0.00, 0.01, 0.04

Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie

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

KiB Mem : 1880024 total, 1482732 free, 128596 used, 268696 buff/cache

KiB Swap: 511996 total, 511996 free, 0 used. 1498100 avail Mem

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

6552 root 20 0 230408 5212 3296 S 0.0 0.3 0:00.33 httpd

5.4.指定多个进程号查看

[root@itbkz s]#top -p 6553,6244

top - 14:59:44 up 15:58, 1 user, load average: 0.00, 0.06, 0.11

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

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

KiB Mem : 1880024 total, 1362440 free, 125936 used, 391648 buff/cache

KiB Swap: 511996 total, 511996 free, 0 used. 1497660 avail Mem

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

6553 apache 20 0 230408 3028 1112 S 0.0 0.2 0:00.00 httpd

6244 zabbix 20 0 81828 1272 464 S 0.0 0.1 0:00.00 zabbix_agentd

5.5.指定用户查看

[root@itbkz s]#top -u apache

top - 15:00:13 up 15:58, 1 user, load average: 0.00, 0.05, 0.10

Tasks: 264 total, 1 running, 263 sleeping, 0 stopped, 0 zombie

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

KiB Mem : 1880024 total, 1362592 free, 125964 used, 391468 buff/cache

KiB Swap: 511996 total, 511996 free, 0 used. 1497812 avail Mem

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

6553 apache 20 0 230408 3028 1112 S 0.0 0.2 0:00.00 httpd

6554 apache 20 0 230408 3028 1112 S 0.0 0.2 0:00.00 httpd

6555 apache 20 0 230408 3028 1112 S 0.0 0.2 0:00.00 httpd

6556 apache 20 0 230408 3028 1112 S 0.0 0.2 0:00.00 httpd

6557 apache 20 0 230408 3028 1112 S 0.0 0.2 0:00.00 httpd

IT博客站版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:top命令动态显示系统资源占用情况

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值