1、整机:top , uptime,系统性能命令的精简版
2、CPU:vmstat
查看cpu
查看所有CPU核信息
mpstat -P ALL 2
每个进程使用cpu的用量分解信息
pidstat -u 1 -p 进程编号
3、内存:free
pidstat -p 进程号 -r 采样间隔秒数
4、硬盘:df
5、磁盘IO:iostat
磁盘I/O性能评估
查看额外:pidstat -d 采样间隔秒数 -p 进程号
6、网络IO:ifstat
CPU占用过高,请谈谈你的分析思路和定位
- 先用top命令找出CPU占比最高的
- ps -ef或者jps进一步定位,得知是一个怎么样的一个后台程序
- 定位到具体线程或者代码
ps -mp 进程 -o THREAD,tid,time
-m 显示所有线程
-p pid进程使用cpu的时间
-o 该参数后是用户自定义格式 - 将需要的线程ID转换为16进制格式(英文小写格式)
printf “%x\n” 有问题的线程ID - jstack 进程ID | grep tid(16进制线程ID小写英文) -A60
JDK自带的JVM监控和性能分析工具
jps(虚拟机进程状况工具)
jinfo(Java配置信息工具)
jmap(内存映像工具)
jstat(统计信息监控工具)