一次线上页游服务器响应缓慢排查过程

  最近线上一组服务器玩家反馈响应缓慢,记录下排查过程。


 1、使用top命令查看服务器负载情况,

top - 15:59:37 up 26 days,  3:42,  6 users,  load average: 2.98, 2.74, 2.70
Tasks: 180 total,   1 running, 167 sleeping,  12 stopped,   0 zombie
Cpu(s):  8.1%us,  2.4%sy,  0.0%ni, 65.7%id, 23.6%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  32878812k total, 28351052k used,  4527760k free,   173000k buffers
Swap:  8388600k total,        0k used,  8388600k free, 17459308k cached

 结论:貌似负载不高


  2、进入mysql查看数据库状态

mysql> status;

Threads: 82  Questions: 9865194  Slow queries: 113  Opens: 162733  Flush tables: 1  Open tables: 64  Queries per second avg: 29.099

  结论:状态也还算正常


  3、检查服务器日志发现,数据库访问中简单的查询操作有时候需要1s以上

  结论:数据库查询缓慢影响游戏响应


  4、再次使用top观察

top - 16:15:06 up 26 days,  3:58,  6 users,  load average: 3.05, 3.10, 2.83
Tasks: 180 total,   1 running, 163 sleeping,  16 stopped,   0 zombie
Cpu(s):  4.5%us,  2.3%sy,  0.0%ni, 60.1%id, 33.0%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:  32878812k total, 28360500k used,  4518312k free,   173000k buffers
Swap:  8388600k total,        0k used,  8388600k free, 17468564k cached

  发现33.0%wa,而且几乎保持在30以上,而IO等待所占用的CPU时间高过30%时则IO压力高

  结论:IO压力高


 5、使用用iostat -x 1 10

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           6.36    0.00    2.44   37.65    0.00   53.55

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0        0.00   177.00    0.00   45.00     0.00  1600.00    35.56    14.33  238.09  22.20  99.90

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.15    0.00    1.96   37.99    0.00   54.90

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0        0.00   242.00    0.00   46.00     0.00  2408.00    52.35     8.19  241.35  21.70  99.80

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.62    0.00    2.68   37.23    0.00   55.47

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0        0.00   748.00    0.00   75.00     0.00  5920.00    78.93     8.10  116.77  13.33 100.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.43    0.00    1.72   33.58    0.00   61.27

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0        0.00   192.00    0.00   33.00     0.00  1512.00    45.82    29.35  304.85  30.30 100.00

发现%util 100.10 %idle 61.27
%util 数次100%,说明产生的I/O请求太多,I/O系统已经满负载,idle小于70% IO压力较大

 结论:IO满负载,压力较大


  6、使用iotop命令查看IO负载状态

显示读写速度可到5M/S

29807 be/4 mysql[3;35H86.52 K[3;53H58.59 % mysqld

结论:mysqld进程IO频繁且响应时间比较慢


  7、cat /proc/cpuinfo发现服务器为双核四线程,

cpu cores : 2

cpu MHz : 1600.306

  结论:cpu主频较低,需提升CPU配置


 


你可能感兴趣的:(JAVA)