最近在维护一个游戏的服务器,用的金山云。4台云主机:4核心,8G内存。mysql使用金山云的关系型数据库,memcached使用自己编译的版本。其中一台运行nginx反向代理到其他机器php-fpm 9000端口。
就在22:00其中2台机器(仅仅运行了php-fpm)的Disk I/O is overloaded on xxx
事后查看zabbix监控出现告警的时间段:
- nginx的rps(请求数)降低
- 数据库qps降低
- 另外2台机器(同样运行了php-fpm,其中一台有nginx,还有一个memcached)负载及I/O正常。
- 出问题的2台机器,流量也降低了。仔细看时间点,负载在php-fpm日志WARNING: [pool xxx] seems busy出现前。
个人感觉不应该是php-fpm引起I/O is overloaded,但出问题的2台机器就是只运行了php-fpm。会不会是金山的云平台出现了问题,但这4台机器也就2台出问题。怎么才能找到原因呢?
1
vibbow 2015-07-03 23:18:12 +08:00
云就是这样的,尤其是磁盘资源更不好隔离...
|
2
akira 2015-07-03 23:33:25 +08:00
同意一楼的。 把其中一台换到另一个母机下,应该就能看出来了。
|
3
esile 2015-07-04 03:01:30 +08:00 via iPhone
不知道lz有木有测试过
nginx+(php-fpm)x3 nginx+(nginx+php-fpm)x3 哪种性能更好 同样4台机子 |
4
hiboshi 2015-07-04 08:46:13 +08:00
应该是 母鸡问题,查下出现问题的时候查下iostat ,和自己测试下 硬盘io
|
6
7rack OP @vibbow @akira @hiboshi
出现问题时时间就3分钟(没来得及登录机器),iowait从47.54 %,恢复到了0.05%.目前我还没有后台权限,合作方给的机器,换不了母鸡测试:( @esile 这种倒是考虑过,但是在使用时,想减少TCP连接时间,简单点。nginxi->nginx->php-fpm:9000这样多了一次。如果用nginx->nginx->php-fpm.sock这样,经常出现**Connection timed out**的问题,应该时sock这种方式没有tcp握手可靠吧。你有过这种改进,效果明显? 打算用haproxy反向代理加上maxconn来控制每台机器连接数,可能在高并发下不会让后端挂掉。 |
9
akira 2015-07-07 20:12:17 +08:00
|
10
thinkxen 2015-07-08 12:24:23 +08:00 via Android
自己买母机虚拟化吧
|
12
7rack OP @thinkxen 最近弄了个2个主机xenserver的高可用,配置的iSCSI-HA,io性能和云主机差不多。看了下 xen server 6.5的free版功能已经很多了 ,有存储资源时再试试。![xenserver](http://https://forums.servethehome.com/proxy.php?image=http%3A%2F%2Fwww.poppelgaard.com%2Fwp-content%2Fuploads%2F2015%2F01%2F2015-01-13_1630.png&hash=e7b80468614007b977d4093f4412475a)
|