今天整理了之前在工作中一直用的用于查询服务器性能问题的一套工具集,希望对大家有用。
一,内存使用情况
free -m
二,磁盘IO性能情况
iostat -xdk 1
二(1)pidstat监控工具
u:默认的参数,显示各个进程的cpu使用统计
-r:显示各个进程的内存使用统计
-d:显示各个进程的IO使用情况
-p:指定进程号
-w:显示每个进程的上下文切换情况
-t:显示选择任务的线程的统计信息外的额外信息
-T { TASK | CHILD | ALL }
这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
-V:版本号
-h:在一行上显示了所有活动,这样其他程序可以容易解析。
-I:在SMP环境,表示任务的CPU使用率/内核数量
-l:显示命令名和所有参数
pidstat -d 1 - 展示I/O统计,每秒更新一次
pidstat -u 1 - 展示cpu使用统计
pidstat -r 1 - 展示内存使用统计
-p选项:针对特定进程统计
例如统计PID=1的进行内存使用统计:
pidstat -r -p 1 1
三,cpu性能评估
vmstat 1
四,网络流量性能评估
ifstat 1
五,异常代码定位
top -c 显示进程运行信息列表
键入P (大写p),进程按照CPU使用率排序
比如10765这个进程CPU使用率较高,则:
top -Hp 10765 ,显示一个进程的线程运行信息列表
键入P (大写p),线程按照CPU使用率排序
比如10804这个线程CPU使用较高
printf “%x\n” 10804 --先转换成16进制
转换为:2a34
打印java堆栈
jstack 10765 | grep ‘0x2a34’ -C5 --color