我的服务器没有响应 HTTP 请求,我花了很长时间才能够使用 SSH 登录;这一切看起来就像是服务器超载了并且瘫痪了。
几天前就已经这样了,但重启后一切恢复正常。今天在重启之前,我想了解发生了什么。
我终于能够登录了,并且平均负载显示稳定1.00
:
# uptime
15:00:46 up 4 days, 19:47, 1 user, load average: 1.00, 1.00, 1.00
但top
似乎说服务器处于空闲状态:
top - 15:01:52 up 4 days, 19:48, 1 user, load average: 1.00, 1.00, 1.00
Tasks: 704 total, 1 running, 703 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 1.1%sy, 0.0%ni, 98.4%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 4034032k total, 4009704k used, 24328k free, 16612k buffers
Swap: 1959920k total, 58576k used, 1901344k free, 22860k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19137 root 16 0 13152 1748 936 R 2.9 0.0 0:00.27 top
1 root 15 0 10364 744 620 S 0.0 0.0 0:03.26 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.02 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.65 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/1
6 root 34 19 0 0 0 S 0.0 0.0 0:00.21 ksoftirqd/1
7 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
8 root 10 -5 0 0 0 S 0.0 0.0 0:04.73 events/0
9 root 10 -5 0 0 0 S 0.0 0.0 0:02.29 events/1
10 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 khelper
47 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
52 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kblockd/0
53 root 10 -5 0 0 0 S 0.0 0.0 0:00.05 kblockd/1
54 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
165 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0
166 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/1
哦,我还在 httpd 中看到了以下消息error_log
:
PHP 致命错误:SQLSTATE[08004] [1040] 连接数过多...
但access_log
显示过去 8 小时没有请求,因为所有 HTTP 连接都超时了......
有人可以解释一下吗?
答案1
该/var
分区已满,因此出现 SQL 错误,因为这是存储 mysql 数据的分区。
主要原因是尽管我没有使用二进制日志进行复制或任何其他操作,但它已启用二进制日志,因此我禁用了它,删除了二进制日志,一切恢复正常!