系统资源 线程 内存 网络带宽 磁盘IO
线程
Cpu(s):34.0% us: 用户空间占用CPU百分比
%CPU:上次更新到现在 应用占用CPU时间的百分比
通过上面的显示我们发现Cpu(s)表示的是 所有用户进程占用整个cpu的平均值,由于每个核心占用的百分比不同,所以按平均值来算比较有参考意义。而%CPU显示的是进程占用一个核的百分比,而不是整个cpu(12核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100。
线程报错怎么排查
一般有问题的线程 cpu的使用率会很高
top -H 看那个进程占用的 cpu比较多 pid
top -Hp pid 查看进程中那个线程占用的资源比较多 tid
printf “%x\n” tid 得到此线程的十六进制
jstack pid | grep x-id 得到相应的栈信息
内存OOm
增加参数,实时监控,使其在oom的时候输出更多信息。用jdk自带的工具或者第三方工具分析输出文件
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./dmdump.bin
内存 网络带宽 磁盘IO等资源不够是运维的事