
我有一台機器運行 Debian 很長一段時間(也許 7 年)24/7。兩週前,我決定移動伺服器的位置,並升級到 Debian Jessie(正在運行)。
一切都很順利,除了每隔 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(或可能是任何輸出文字的命令),如果我執行 CTRL+C 取消它,我仍然可以毫無問題地查看 ping 的文字輸出,我看到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
使用後iostat和奧托普為了診斷,我發現問題出在redis伺服器中,它將資料庫持久化到磁碟中,並且由於資料庫增長,由於某種原因寫入磁碟會阻塞網路流量,這就是超時的原因(將資料集中寫入磁碟) )。
因為我不需要磁碟上的持久性,所以我禁用了它,現在又可以正常工作了,但我不知道為什麼 redis-server 會這樣。