服务器端性能排查命令摘抄总结

上一篇 / 下一篇  2021-05-29 16:49:28 / 个人分类:Linux技术资料

3. top
average load: 
cpu个数一般=1或<2, 如>=2,说明有排队请求
%cpu: <75%
%wa: 高,可能磁盘有问题
%user: 65-70% 为正常
%sys: 30-35% 为正常
%id: 不能<5%
分析:
%user, %sys, %d超过比例,系统性能会降低,平均负载升高。
swap: used值太高,而%cpu低,也能接受;但频繁切换的swap会使%cpu升高。

top -p pid 查看某个具体的进程

4. vmstat
r: >cpu核数
cs: 上下文切换

5. watch -n 2 "ps aux |grep pid" -v 监视具体进程的详细情况
6. pidstat -udtwh 1 100 -p pid 查看进程下包含的所有线程的cpu消耗
7. jstack -l pid > pid.threaddump 打印进程下所有线程的方法调用信息
printf %x'\n' pid 将进程号转换成16进制,然后去pid.threaddump中搜索nid=值,查看线程函数条用情况
8. jstat -gcutil pid 200(秒) 50(次) 将进程对内存使用,gc回收状况打印出来 
9.jmap -dump:live,format=b,file=dump.hprof pid 导出内存快照,分析程序函数,内存泄露原因



Disk I/O
每块磁盘的I/O数与磁盘的I/O能力对比,经过计算每块磁盘的I/O数>磁盘标称的I/O能力,说明存在磁盘性能瓶颈。
1. vmstat -d 每块磁盘的I/O数=(reads+4*writes)/磁盘个数
bi, bo 一般都要接近0,否则说明I/O过频繁

2. iostat -x -d 1
%util: 接近100%,说明I/O系统满负荷,磁盘可能存在瓶颈
iostat -x -k -d 1 查看系统磁盘I/O,展示I/O统计

3.查看进程占用磁盘
iotop -oP 只显示有I/O行为的进程
pidstat -d 1 展示I/O统计,每秒更新1次

4.nmon

网路分析
1. netstat 
-s 查找高流量的重新传输和乱序数据包
-i 检查接口的错误技术

2. sar
-n DEV 网路接口统计
-n EDEV 网路接口错误统计
-n SOCK socke套接字使用统计

3. ping 在局域网环境,按理说延时应该在0-1ms之间
与磁盘类似,网路IO同样需要分段查找和分析。通过网路抓包和分析工具,诊断网路的延时、丢包等情况出现在哪一段,然后具体分析。很多情况下,客户端的响应时间不稳定
都是有服务器端的服务能力不稳定造成的。一般都是在应用,数据库的问题造成。


mysql
mysql> show full processlist; 查看当前正在执行的语句
单句排查:
>set profiling=1; 获取指定查询的开销
>show profiles;
>show profile cpu, block io for query 1;
>show variables like "%profil%"; 查看配置信息,其中显示的记录数由"profiling_history_size"控制,默认15条,最大100条。

TAG:

 

评分:0

我来说两句

jiahou166

jiahou166

立志要如山,行道要如水。不如山,不能坚定,不如水,不能曲达。

日历

« 2024-03-16  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 75766
  • 日志数: 87
  • 建立时间: 2012-04-02
  • 更新时间: 2021-05-29

RSS订阅

Open Toolbar