Linux top 命令使用

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


CPU负载

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

  • 第二行为任务信息:
信息栏第二行task 含义(进程状况)
total 进程总数
running 正在运行的进程数
sleeping 睡眠状态的进程数
stopped 停止的进程数
zmobie 僵尸进程数
  • 第三行为CPU使用情况
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命令使用
    -b:可以吧把top输出的内容以可读的形式写入文件,如top -b >> top.txt
    -c:显示完整的命令行(COMMAND),想查看进程执行的具体位置时非常有用
    -d:指定屏幕刷新时间间隔,如top -d 1表示每隔一秒刷新一次
    -s:使用保密模式
    -S:使用累计模式
    -i:不显示任何闲置或者僵尸进程
    -u<用户名>:指定用户名
    -p<进程名>:指定进程号
    -n<次数>:指定循环次数,到了次数自己退出

  • top命令交互式使用
    i:忽略闲置线程和僵尸线程;
    l:切换显示平均负载和启动时间信息;
    m:切换显示内存信息;
    t:切换显示进程和CPU状态信息;
    c:切换显示命令名称和完整命令行;
    M:根据驻留聂存大小进行排序;
    P:根据CPU使用百分比进行排序;
    T:根据时间进行排序;

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Top命令显示内容详细解析 1.1. 第一行是任务队列 显示的结果等同于命令uptime的显示结果,主要关心...
    EVANMORE阅读 4,667评论 0 0
  • Linux中常用的监控命令 在以前使用windows系统的时候,常常会遇到系统变卡,然后我们就会使用快捷键 ctr...
    _AlphaBaby_阅读 2,723评论 0 3
  • 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个专业的 Linu...
    七寸知架构阅读 11,392评论 1 71
  • 一、前言   top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Wind...
    骑着乌龟去看海阅读 2,535评论 2 7
  • Linux命令行工具 - top top命令能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管...
    异次猿阅读 2,527评论 1 3

友情链接更多精彩内容