記一次主機通信故障及ssh登錄到另外主機上執行cat等命令卡死問題
問題現象:
發生問題的是一臺大數據服務器,日志顯示和其他相關服務器的連接失敗、拒絕連接等,通過有問題這臺服務器登錄其它服務器上執行命令卡死。

client_loop:send disconnect: Broken pipe
問題分析:
1、此臺服務器登錄任何服務器 后執行cat 長文件時卡死退出,執行cd\pwd等都是可以的,而且不會超時。
2、此臺服務器跟其他服務器之間的程序模塊會報連接問題。
此問題很像是網絡流量超過一個閥值后服務器強制斷開,所以查看網卡和服務器上控制網絡流量的參數
問題解決:
ifconfig查看到有個mtu設置,一般這個參數很多人都不會注意,因為都是默認的1500,一般都不會有問題。但我的問題恰恰通過調整mtu值修復了。

mtu是什么:
MTU是Maximum Transmission Unit的縮寫。意思是網絡上傳送的最大數據包。MTU的單位是字節。 大部分網絡設備的MTU都是1500。如果本機的MTU比網關的MTU大,大的數據包就會被拆開來傳送,這樣會產生很多數據包碎片,增加丟包率,降低網絡速度。把本機的MTU設成比網關的MTU小或相同,就可以減少丟包。
抱著試試看的想法,將mtu值進行調整:ifconfig eth1 mtu 1499
再次測試,發現問題都修復了。
我的主機是云平臺服務器,mtu也是正常的1500,理論上應該不會出現問題,偏偏云環境主機出現這么無厘頭問題,我們只能通過不斷擴寬自己的知識來應對各種問題。
總結:
服務器的問題有時候根據報錯并不能清楚的辨別問題的原因,需要我們通過問題的現象去分析產生問題的原因,多測試、多思考、多請教。
從維基百科種看到:
這里的MTU所指的是無需分段的情況下,可以傳輸的最大IP報文(包含IP頭部,但不包含協議棧更下層的頭部)。
下面是普通媒體的MTU表:
| 網絡 | MTU(Byte) |
|---|---|
| 超通道 | 65535 |
| 16Mb/s令牌環 | 17914 |
| 4Mb/s令牌環 | 4464 |
| FDDI | 4352 |
| 以太網 | 1500 |
| IEEE 802.3/802.2 | 1492 |
| X.25 | 576 |
| 點對點(低時延) | 296 |
對于使用AUTOSSH建立隧道:
- 傳輸模式,MTU值最大是:1440
- 隧道模式,MTU值最大是:1420
作者:運維·拖拉斯基
作者水平很低, 如果有錯誤及時指出, 如果你覺得本文寫的好請點一波贊~(≧▽≦)/~
出處:http://www.rzrgm.cn/-abm/
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
浙公網安備 33010602011771號