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

我有一台运行Debian很长时间(也许是7年)24/7的机器。 两个星期前,我决定移动服务器的位置,并升级到Debian Jessie(正在运行wheezy)。

一切都很顺利,除了每隔5或6分钟,服务器就不会响应任何连接大约20秒钟。

我已经创build了一个脚本来检查什么时候发生,这是时代:

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! 

我有一台运行在服务器上的虚拟机,数据包可以正常运行,没有任何延迟。 我已经testing了服务器上的不同端口,如80,443,9000等,并全部超时。 例如在服务器上运行ssh,如果我在超时期间尝试一个命令,比如input3次“ls”,在恢复之后它会收到3个“ls”并执行。

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

编辑:离开ping运行不显示超时。

编辑2:好吧,另一个奇怪的事情。 访问服务器上的ssh,并运行ping 8.8.8.8(或者可能是任何输出文本的命令),当超时开始发生时,我仍然可以查看ping的文本输出没有任何问题,如果我做CTRL + C取消它,我看到ping的最小/平均/最大状态,但是如果我键入一个命令(例如“ls”),它将等待,直到服务器再次可用来显示文件列表。

编辑3:所以,这可能是磁盘相关的东西。 sda是三星SSD 840 Pro 120GB。

iostats显示如下:

正常行为

 Device: rrqm/s wrqm/sr/sw/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/sr/sw/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 

在使用iostatiotop进行诊断后,我发现问题出在redis-server上,这个问题是数据库持久化到磁盘上的,而且由于数据库的增长,出于某种原因写入磁盘块的networkingstream量,这就是超时的原因(大量写入磁盘)。

因为我不需要在磁盘上持久化,我已经禁用它,现在再次工作,但我不知道为什么redis-server这样的行为。