Debian 服务器每 5/6 分钟超时约 20 秒

Debian 服务器每 5/6 分钟超时约 20 秒

我有一台机器,它运行 Debian 已经很长时间了(可能 7 年了),每天 24 小时。两周前,我决定移动服务器的位置,并升级到 Debian Jessie(运行 wheezy)。

一切顺利,只是每隔 5 或 6 分钟,服务器就会有大约 20 秒的时间不响应任何连接。

我创建了一个脚本来检查何时发生这种情况,时间如下:

2017-01-12 16:16:05 TIMEOUT!
2017-01-12 16:21:49 TIMEOUT!
2017-01-12 16:27:32 TIMEOUT!
2017-01-12 16:33:13 TIMEOUT!
2017-01-12 16:39:01 TIMEOUT!
...
2017-01-12 17:07:59 TIMEOUT!
2017-01-12 17:13:47 TIMEOUT!
2017-01-12 17:19:25 TIMEOUT!

我在服务器上运行了一个虚拟机,数据包可以顺利到达,没有任何延迟。我测试了服务器上的不同端口,如 80、443、9000 等,所有端口都超时了。例如,在运行 ssh 的服务器上,如果我在超时期间尝试命令,例如输入 3 次“ls”,服务器恢复后,它将接收 3 个“ls”并执行。

我检查了服务器上的日志,但找不到任何与之相关的信息。

编辑:保持 ping 运行不会显示超时。

EDIT2:好的,另一件奇怪的事情。当超时开始发生时,访问服务器上的 ssh 并运行 ping 8.8.8.8(或可能是任何输出文本的命令),我仍然可以毫无问题地查看 ping 的文本输出,如果我按 CTRL+C 取消它,我会看到 ping 的最小/平均/最大状态,但如果我输入命令(例如“ls”),它会等到服务器再次可用时才显示文件列表。

EDIT3:所以,它可能与磁盘有关。sda 是三星 SSD 840 Pro 120GB。

iostats 显示以下内容:

正常行为

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    2.00     0.00    20.00    20.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    2.00     0.00    20.00    20.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    2.00     0.00    20.00    20.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

超时行为

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00  136.00     0.00 69124.00  1016.53   127.69 1053.93    0.00 1053.93   7.35 100.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00    16.00    0.00   18.50     0.00   540.00    58.38     0.10    5.51    0.00    5.51   1.19   2.20
dm-0              0.00     0.00    0.00    1.00     0.00     4.00     8.00   521.34 363490.00    0.00 363490.00 1000.00 100.00
dm-1              0.00     0.00    0.00    1.00     0.00     4.00     8.00   521.35 363492.00    0.00 363492.00 1000.00 100.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

答案1

使用后iostatiotop经过诊断,我发现问题出在 redis-server 中,它将数据库持久化到磁盘,并且由于数据库的增长,由于某种原因,写入磁盘阻止了网络流量,这就是超时的原因(大量写入磁盘)。

因为我不需要磁盘持久性,所以我已禁用它并且现在又可以正常工作,但我不知道为什么 redis-server 会这样做。

相关内容