006-top查看计算机信息,java一次线上CPU 100%的排查
1、使用top命令基本信息
us:用户态使用的cpu时间比
sy:系统态使用的cpu时间比
ni:用做nice加权的进程分配的用户态cpu时间比
id:空闲的cpu时间比
wa:cpu等待磁盘写入完成时间
hi:硬中断消耗时间
si:软中断消耗时间
st:虚拟机偷取时间
2、进入命令后可以使用的命令
通过?或者h查看
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 ,显示进程运行信息列表
top -c
键入P (大写p),进程按照CPU使用率排序
步骤二:找到最耗CPU的线程
显示一个进程的线程运行信息列表
top -Hp 线程id
如:top -Hp 4830
键入P (大写p),线程按照CPU使用率排序
步骤三:将线程PID转化为16进制
查看步骤二中,进程内线程具体线程id,如:4831
printf “%x” 4831
之所以要转化为16进制,是因为堆栈里,线程id是用16进制表示的。如上述 4831 对应的是 12df
步骤四:查看堆栈,找到线程在干嘛
工具:pstack/jstack/grep
jstack 进程id | grep '16进制线程id' -C5 --color
如:
jstack 4830 | grep '0x12df' -C5 --color
打印进程堆栈
通过线程id,过滤得到线程堆栈
找到了耗CPU高的线程对应的线程名称“AsyncLogger-1”,以及看到了该线程正在执行代码的堆栈。进一步分析即可
查看进程端口信息
netstat -nap |grep 30778
查看进程信息
ps -ef |grep 30778
杀死进程
kill -9 30778
检查一下系统最近系统登录信息,看看是否被入侵,使用
lastlog
列出当前和曾经登入系统的用户信息
last
以上是 006-top查看计算机信息,java一次线上CPU 100%的排查 的全部内容, 来源链接: utcz.com/z/391639.html