原作者: Flyertutor
原文链接:https://flyerboy.github.io/2018/05/07/linux_top/
最近服务器经常出问题,所以用命令 top 分析其性能,在这里对其做个记录,便于以后查看。
top 是常用的性能分析命令,基本和 windows 的任务管理器类似,下面详细介绍使用方法。
top
top - 10:36:26 up 72 days, 22:21, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 81 total, 1 running, 80 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1883844 total, 99960 free, 375164 used, 1408720 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1306676 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 43276 2556 1348 S 0.0 0.1 4:19.02 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 1:20.24 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
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 9:45.47 rcu_sched
10 root rt 0 0 0 0 S 0.0 0.0 0:18.19 watchdog/0
下面将其参数做下详细的说明:
top - 10:36:26 up 72 days, 22:21, 1 user, load average: 0.00, 0.01, 0.05
名词 | 具体含义 |
---|---|
10:36:26 | 当前系统时间 |
up 72 days, 22:21 | 表示系统开机到现在的运行时间 |
1 user | 当前登录系统的用户个数 |
load average | 分别是1分钟、5分钟、15分钟的系统负载情况 |
load average 数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
Tasks: 81 total, 1 running, 80 sleeping, 0 stopped, 0 zombie
可以根据其字面意思得到:系统现在共有 80 个进程,其中处于运行中的有 1 个,80 个在休眠(sleep),stoped 状态的有 0 个,zombie 状态(僵尸)的有 0 个。
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
CPU 的运转情况,后面值依次意思为:
用户空间占用CPU的百分比 ,内核空间占用CPU的百分比,改变过优先级的进程占用CPU的百分比,空闲CPU百分比,IO等待占用CPU的百分比,#,#
KiB Mem : 1883844 total, 99960 free, 375164 used, 1408720 buff/cache
内存的使用情况:1883844 总内存,99960 可使用内存,375164 已使用,1408720 缓存内存
KiB Swap: 0 total, 0 free, 0 used. 1306676 avail Mem
swap交换分区信息:0 total 总量,0 free 未使用,0 used 已使用
下面就是详细的进程信息:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 43276 2556 1348 S 0.0 0.1 4:19.02 systemd
名词 | 具体含义 |
---|---|
PID | 进程ID |
USER | 进程所有者 |
PR | 优先级,数值越大,优先级越高 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT = SWAP+RES |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES = CODE + DATA |
SHR | 共享内存大小,单位kb |
S | 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 进程名称(命令名/命令行) |