Linux top 命令使用

2020-01-03  本文已影响0人  花醉霜寒

top命令结合jvm诊断工具jstack能够快速帮我们定位有问题的代码位置,输入top命令,运行图如下


CPU负载

第一行包括运行时间、当前时间、用户数量和系统平均负载,其中后面三个数字就是一分钟、五分钟和十五分钟到现在的系统负载的平均值;

信息栏第二行task 含义(进程状况)
total 进程总数
running 正在运行的进程数
sleeping 睡眠状态的进程数
stopped 停止的进程数
zmobie 僵尸进程数
CPU使用情况 含义(表示占用CPU的百分比)
us User Time, CPU执行用户进程的百分比,包括Nice TIme
sy System Time, CPU在内核运行百分比, 包括IRQ和softIRQ
ni Nice Time, 调整进程优先级所用的百分比
id Idle Time, 系统空闲百分比
wa Waitting Time, CPU等待I/O完成所用百分比
hi Hard IRQ Time, 硬中断占用CPU的百分比
si Soft IRQ Time, 软中断占用CPU的百分比
st Steal Time,虚拟服务占用
KiB Mem 含义(内存使用信息)
total 总物理内存
free 空闲的物理内存
used 已使用的物理内存
buff/cache 缓冲区和缓存区占用内存的总量

这里区别一下buffers和cache,两者都是内存中存放的数据,区别在于buffers存放的是准备写入磁盘的数据,cache存放的是从磁盘中搂出来的数据,在Linux系统中会有一个守护线程,会定期的把buffers写入磁盘,这样可以把分散的I/O操作集合起来,减少了磁盘寻道的时间和磁盘碎片,cache是Linux把读取频率高的数据,放在内存中,减少I/O。Linux中cache没有固定大小,根据使用情况会自动的增加或者删除。

KiB Swap 交换区使用信息
total 交换区总量
free 未使用的
used 已使用的
avail Mem 可用的内存量

交换区是硬盘上的一块空间,在内存不足的情况下,操作系统把内存中不用的数据存在硬盘的交换区中,腾出内存让别的程序运行,因此开启swap会在一定程度上引起I/O效率的下降,像阿里服务器默认不开启

进程详细信息
PID 进程id
USER 进程所有者的用户名
PR 优先级
NI nice值
VIRT 进程使用的虚拟内存总量,单位kb
RES 进程使用的,未被换出的物理内存大小,单位kb
SHR 共享内存大小,单位kb
S 进程状态(D:不可中断的睡眠状态,R:运行,S:睡眠, T:跟踪/停止, Z:僵尸进程)
%CPU 上次跟新到现在的CPU时间占用比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMEND 命令名/命令行

常用命令:top -p <pid> H
查看<pid>每个线程详细信息
运用jvm诊断工具jstack可以获取线程的堆栈信息,根据这些线程堆栈信息可以去检查java程序出现问题的地方。

上一篇 下一篇

猜你喜欢

热点阅读