Linux top命令参数详解

生产环境系统运行慢,出现无法响应通常原因主要还在于分析CPU、内存、磁盘使用率情况,并结合命令查找出具体进程,并在进程中进一步分析主要因子情况,渗透到对于其中包含线程占用情况的分析。一般而言对于java项目需要结合top命令及jstack、jconsole等一系列命令综合进行分析,一步步追踪到某个线程,某段代码出现问题所在。现在就top命令具体用法做下分析。
在这里插入图片描述

第一行

周期范围内的负载情况,02:52:49 为当前时间,123 为系统正常运行天数,

up 23:41 为自上次重启来系统运行时间(单位为分钟,会根据时间不断变换新的单位)

1 user 当前登录用户数

load average:0.04 0.11 0.28 系统负载,分别为1分钟、5分钟、15分钟系统负载平均值
一般负载不超过CPU核心数

第二行

进程运行数目情况 total: 表示进程任务总数,

running: 表示正在运行的进程数 sleeping: 睡眠的进程数

stopped: 停止的进程数 zombile:僵尸进程数

第三行

CPU使用率情况

%us: 用户空间所占CPU百分比 %sy: 系统内核空间所占CPU百分比

%ni: 用户进程改变过优先级的进程所占用的CPU百分比

通过nice命令可以更改优先级 负值优先级高,正值优先级低

-20最高,-19最低 %id:空闲CPU百分比,空闲百分比越低说明CPU资源使用有问题

%wa:等待输入输出的CPU百分比

因为CPU速度比硬盘写入数度快,有等待数据写入的过程,如果这个值大说明硬盘写入速度比较慢,压力比较大。 也就是IO性能可能存在瓶颈,可以通过命令iostat来查看

%hi: 硬件CPU重大中断占用的CPU百分比

一般硬件中断可以分析文件/proc/interrupts 、/proc/irq/pid/smp_affinity、服务 irqbalance 是否配置、以及CPU的频率设置

%si: 软中断所占用百分比

软中断一般和网络有关,如网卡到IP层的数据包收发,系统长时间写日志等都会产生软中断。 当网络出现拥塞,软件中断程序 ksoftirqd 肯定会出现瓶颈,可使用 ps aux | grep ksoftirqd 命令查看相关信息。

%st: 虚拟机占用百分比

第四行

内存使用情况

total: 物理内存总量 used: 已使用物理内存总量

free: 空闲内存总量 buffer/cache: 用作内核缓存的内存

buffers 和 cached 的作用是缩短I/O 系统调用的时间,比如读写。cache 的值大,说明 cache 住的文件数多,若频繁的访问文件能被命中,则明显会比读取磁盘调用快,磁盘的IO必定会减少。若命中率低,要考虑 drop cache 并提升命中率

第五行

交换空间使用情况 total: 交换空间总量

used: 已使用交互空间总量 free: 空闲交换空间总量

avail Mem: 实际可用内存 ( free+buff/cache)

第六行

PID: 进程ID USER: 进程所有者用户名

PR:优先级
-20最高,-19最低 NI:nice值,负值表示高优先级,正值表示低优先级

VIRT: 进程使用的虚拟内存总量,单位为Kib
RES: 进程使用的未被换出的物理内存大小(即进程实际使用内存)

SHR:共享内存大小单位为KiB S:进程状态

R= 运行 S= 睡眠

T= 跟踪/停止 D= 不可中断的睡眠状态

Z= 僵尸进程 %CPU: 进程所占用的CPU百分比

%MEM: 进程所占用的物理内存百分比 TIME+: 进程使用的CPU时间总和,单位1/100秒

COMMAND: 命令行名称

Logo

更多推荐