1、使用top命令基本信息

us:用户态使用的cpu时间比
sy:系统态使用的cpu时间比
ni:用做nice加权的进程分配的用户态cpu时间比
id:空闲的cpu时间比
wa:cpu等待磁盘写入完成时间
hi:硬中断消耗时间
si:软中断消耗时间
st:虚拟机偷取时间

2、进入命令后可以使用的命令

通过?或者h查看

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
  Z,B       Global: 'Z' change color mappings【设置颜色】; 'B' disable/enable bold【字体加粗】
  l,t,m     Toggle Summaries: 'l' load avg【负载】; 't' task/cpu stats【task/cpu汇总】; 'm' mem info【内存】
  1,I       Toggle SMP view: '1' single/separate states【负载】; 'I' Irix/Solaris mode

  f,o     . Fields/Columns: 'f' add or remove【展示字段增删】; 'o' change display order【展示字段顺序】
  F or O  . Select sort field【选择排序字段】
  <,>     . Move sort field: '<' next col left; '>' next col right【翻页】
  R,H     . Toggle: 'R' normal/reverse sort【正常、反序】; 'H' show threads【展示线程】
  c,i,S   . Toggle: 'c' cmd name/line【命令名/整行】; 'i' idle tasks【空闲任务】; 'S' cumulative time【耗时】
  x,y     . Toggle highlights: 'x' sort field【排序字段高亮】; 'y' running tasks【运行任务】
  z,b     . Toggle: 'z' color/mono;【颜色】 'b' bold/reverse 【加粗】(only if 'x' or 'y')
  u       . Show specific user only【用户】
  n or #  . Set maximum tasks displayed【设置最大展示任务】

  k,r       Manipulate tasks: 'k' kill【杀 进程】; 'r' renice【重指定】
  d or s    Set update interval【设置更新间隔】
  W         Write configuration file【写配置文件】
  q         Quit【退出】
          ( commands shown with '.' require a visible task display window ) 
Press 'h' or '?' for help with Windows,

3、一次CPU 100%处理-java进程

步骤一、找到最耗CPU的进程

打开终端  

  执行top -c ,显示进程运行信息列表

  键入P (大写p),进程按照CPU使用率排序

步骤二:找到最耗CPU的线程

  top -Hp 10765 ,显示一个进程的线程运行信息列表

  键入P (大写p),线程按照CPU使用率排序

步骤三:将线程PID转化为16进制

  printf “%x” 10804

  之所以要转化为16进制,是因为堆栈里,线程id是用16进制表示的。

步骤四:查看堆栈,找到线程在干嘛

  工具:pstack/jstack/grep  

  方法:jstack 10765 | grep ‘0x2a34’ -C5 --color

  • 打印进程堆栈

  • 通过线程id,过滤得到线程堆栈

找到了耗CPU高的线程对应的线程名称“AsyncLogger-1”,以及看到了该线程正在执行代码的堆栈。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄