Linux
9、生产环境服务器变慢,诊断思路和性能评估谈谈?
整机:top
uptime,系统性能命令的精简版
高CPU程序在占用着
这两个参数也十分的重要
CPU:vmstat
查看CPU(包含不限于)
procs总的进程
cpu
查看额外
查看所有CPU核信息:mpstat -P ALL 2 每2秒钟采样一次
每个进程使用cpu的用量分解信息:pidstat -u 1 -p 进程编号
内存:free
从上到下
分别是:byte,G,MB来描述内存
查看额外:
pidstat -p 进程号 -r 采样间隔秒数
硬盘:df
查看磁盘剩余空闲数
磁盘IO:iostat
磁盘I/O性能评估
查看额外
pidstat -d 采样间隔秒数 -p 进程号
网络IO:ifstat
默认本地没有,下载ifstat
查看网络IO
10、假如生产环境出现CPU占用过高,请谈谈你的分析思路和定位
结合Linux和JDK命令一块分析
-
先用top命令找出CPU占比最高的
-
ps -ef或者jps进一步定位,得知是一个怎么样的一个后台程序
-
定位到具体线程或者代码
ps -mp 进程 -o THREAD,tid,time
参数解释
-m 显示所有线程
-p pid进程使用cpu的时间
-o 该参数后是用户自定义格式
- 将需要的线程ID转换为16进制格式(英文小写格式)
printf “%x\n” 有问题的线程ID(5102) - jstack 进程ID | grep tid(16进制线程ID小写英文) -A60
11、对于JDK自带的JVM监控和性能分析工具用过哪些?一般你是怎么用的?
是什么
jps(虚拟机进程状况工具)
jinfo(Java配置信息工具)
jmap(内存映像工具)
jstat(统计信息监控工具)