服务器负载暴涨以后
打开nagios监控见面,发现3个服务器(3个服务器处于同一个集群下,业务为论坛,同时在线人数大概4万人)的load过高,处于warning状态
3、 查看系统日志,每个服务器都有“TCP: Treason uncloaked! Peer 113.247.241.146:21345/80 shrinks window 2128147967:2128149427. Repaired.”
4、 查看php日志,大量“[WARNING] fpm_request_check_timed_out(), line 158: child 25379, script '/mnt/html/bbs/forum.php' (pool default) execution timed out (120.306361 sec), terminating”。打开论坛首页,居然花了120多秒。我在php配置文件里设置的执行中断时间是120秒,超过这个值则关闭该子进程。看来应该从这里下手了。
(1) 查看有没有文件系统损坏而不能写入
(2) 查看分区是否满(实际上满了的话,有短信报警的)
(3) 查看tcp连接状态,还没以前多呢,看来不是系统的问题
[ERROR] Got error 134 when reading table './uc_mumayi/cdb_uc_members' [ERROR] Got error 134 when reading table './uc_mumayi_net/cdb_uc_members' [ERROR] /usr/local/mysql/libexec/mysqld: The table 'pre_common_session' is full |
接下来,从处理表满开始,把它的行数值设置巨大一点,我设置的是1000万,指令为:mysql>ALTER TABLE pre_common_session MAX_ROWS=10000000; 完毕后3个web服务器的负载马上就下降了。从报错信息中,可以判断有2个表可能损坏了。检查一下,如果真坏了,就修复一下吧!
| uc_mumayi.cdb_uc_notelist | check | warning | 11 clients are using or haven't closed the table properly |
| uc_mumayi.cdb_uc_notelist | check | error | Wrong bytesec: 101-114-110 at linkstart: 258412 |
| uc_mumayi.cdb_uc_notelist | check | error | Corrupt |
| uc_mumayi.cdb_uc_notelist | repair | info | Wrong bytesec: 101-114-110 at 258412; Skipped |
| uc_mumayi.cdb_uc_notelist | repair | warning | Number of rows changed from 5715 to 5742 |
| uc_mumayi.cdb_uc_notelist | repair | status | OK |