记录一次上下文切换问题排查

记录一次上下文切换问题排查

事故原因

    最近一个游戏服总是出现机器人无故掉线的问题,一直排查不到问题 一直说是服务器性能跟不上(技术大佬那边排查说是有cpu中断的情况出现 一看cpu确实是很垃圾 L5630自行体会)
但是问题应该不是这么简单,我这边查看负载 io 网络 均没有问题 然后问题又甩给了开发(嘿嘿~~),然后几天过去了 问题依旧没有解决。。。 甲方都有点在冒火了,然后一起加班排查。

具体排查步骤

1.再仔细查看了一次系统指标 (cpu 使用率,磁盘io,网络等) 并没有发现明显问题
2.开发那边怀疑是性能问题,非要叫把数据库迁移到另一台服务器(测试服 所以放在一起的)然而并无卵用
3.使用vmstat 观察细节`vmstat 3(每三秒刷新一次)`
输出:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 4  0      0 5472748 189996 12666012    0    0     0   164    0    0 22  8 69  0  0
 8  0      0 5540900 189996 12669716    0    0     0  1831 15900 22651 30  4 66  0  0
 5  0      0 5525364 189996 12673844    0    0     0  1232 14200 19606 23  3 71  3  0
 8  0      0 5530708 189996 12678892    0    0     0  1412 15749 24255 30  4 65  0  0
 4  0      0 5479064 189996 12684240    0    0     0  2005 15660 24538 31  4 64  0  0
 5  1      0 5447116 189996 12708348    0    0     0  8036 15246 23332 28  4 68  0  0
 发现cpu 中断 上下文切换都挺高的(如果无法判断数值的高低  对比另外一台服务器就明显了)

 4. 中间又绕了一个弯(最近刚好再看动态追踪,想这能不能用这个玩意儿找到问题),然后perf top / perf record/report / perf top -g -p {gamne_pid} 各种尝试,一顿下来 并没有啥收获
 5.直接使用pidstat -wt 2 查看所有进程的上下文切换  
 部分输出:
 Average:      UID      TGID       TID   cswch/s nvcswch/s  Command
 Average:        0         -      3336      0.93      0.00  |__tuned
 Average:      997      3202         -      0.93      0.00  zabbix_agentd
 Average:      997         -      3202      0.93      0.00  |__zabbix_agentd
 Average:      997      3204         -      1.39      0.00  zabbix_agentd
 Average:      997         -      3204      1.39      0.00  |__zabbix_agentd
 Average:      997      3209         -      0.46      0.00  zabbix_agentd
 Average:      997         -      3209      0.46      0.00  |__zabbix_agentd
 Average:      997      3210         -      0.93      0.00  zabbix_agentd
 Average:      997         -      3210      0.93      0.00  |__zabbix_agentd
 Average:        0      3367         -      1.39      0.00  salt-minion
 Average:        0         -      3367      1.39      0.00  |__salt-minion
 Average:        0         -      3368      0.46      0.00  |__salt-minion
 Average:        0      4433         -      2.78      0.00  node
 Average:        0         -      4433      2.78      0.00  |__node
 Average:        0         -      4437      0.46      0.00  |__node
 Average:        0      4434         -      3.70      0.46  node
 Average:        0         -      4434      3.70      0.46  |__node
 Average:        0         -      4439      0.93      0.00  |__node
 Average:        0      4445         -      4.63      0.00  node
 Average:        0         -      4445      4.63      0.00  |__node
 Average:        0         -      4448      0.93      0.00  |__node
 Average:        0      8913         -   2363.43     28.24  redis-server
 Average:        0         -      8913   2363.89     28.24  |__redis-server
 Average:        0         -      8915      4.63      0.00  |__redis-server
 Average:        0      9739         -      1.85      0.00  kworker/u48:2
 Average:        0         -      9739      1.85      0.00  |__kworker/u48:2
 Average:        0     11959         -     43.98      0.00  kworker/8:2
 Average:        0         -     11959     43.98      0.00  |__kworker/8:2
 Average:       27         -     12606      1.85      0.00  |__mysqld

发现redis 可能会有问题 (但是还是拿不准,我有在其他游戏服务器跑了一遍相同的操作 发现其他游戏服务器的值只有600)
6.检查两边游戏服务的redis 配置信息,版本是否一致(答案一致)
7.使用`redis-cli info`观察redis指标 对比两台redis 的性能指标

原因分析

已经提交给开发那边了,等待代码进一步确认.. 
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇