您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Freeshell查明NFS經常卡死問題的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
freeshell 出現持續兩個小時的 NFS 卡死問題。事實上,2014 年 8 月啟用外部磁盤以來,就經常出現持續幾十秒甚至幾分鐘的 NFS 卡死,卡死期間外部磁盤上的 freeshell 無法執行任何操作,有的 freeshell 還會因為磁盤操作超時而關機。之前一直以為是 NFS bug 導致了死鎖,沒有定位到故障原因,也沒能重現。
2 月 3 日,通過 tcpdump 抓包和 strace nfsiod 進程的方法,查明 NFS server not responding 的問題是由于外部硬盤(一塊希捷的 2T 綠盤)過于繁忙。
在 NFS 卡死的時段,外部磁盤讀的平均延遲可達 600ms,寫的平均延遲是 1400ms。當初設置 NFS 掛載參數的時候,我沒有考慮到磁盤繁忙的問題,只是想到了網絡延遲不應當超過 1 秒,于是就設置了超時 timeo=10,表示 1 秒超時。一個 NFS 請求可能需要分解為多個磁盤讀請求,這些請求的時間之和很可能超過 1 秒,也就是大部分讀寫請求還沒來得及發給磁盤就超時了,形成了 NFS 服務器失去響應的假象。
下面是 早先的掛載參數:
vers=3,rw,rsize=32768,wsize=32768,tcp,timeo=10,retrans=5,soft,intr,sec=sys,lookupcache=all,ac,nocto
現將超時修改成 30 秒(timeo=300)。
vers=3,rw,rsize=32768,wsize=32768,tcp,timeo=300,retrans=5,soft,intr,sec=sys,lookupcache=all,ac,nocto
2 月 3 日已經修改 fstab,但由于掛載著的 NFS 不能修改掛載參數(見 man nfs),需要關閉所有外部磁盤上的虛擬機才能重新掛載 NFS。2 月 4 日剛好 1 號節點掛了,于是把所有其他節點也重啟了一遍,NFS 參數就更新了。
關于“Freeshell查明NFS經常卡死問題的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。