題 如果您只是從正在運行的系統拔掉交換驅動器會發生什麼?


我在服務器上運行了大量洩漏的應用程序,這些應用程序在100多天的正常運行時間內已經換掉了大約60gb的垃圾。當我第一次用完交換(32gb)時,我開始插入pendrives並且 swapon 他們。它幫助了大約一個月,但我慢慢耗盡了pendrives和USB端口......我得出結論,可能所有重要的東西都被換掉了第一次交換(我認為)並且交換空間中的東西被放在優先級較低的位置可能只是洩漏所以...如果我只是拔掉那些pendrives,格式化它們怎麼辦? swapon 再次?是否更有可能使這些應用程序或整個操作系統崩潰?


2
2018-04-23 21:28


起源


這是一個很好的問題,但我必須注意使用閃存驅動器作為交換空間是一個糟糕的主意。它們很慢,它們磨損並且它們無法解決RAM洩漏的實際問題。 - gronostaj
@ user21111737試一試並報告它是怎麼回事。 - Moab
@Moab當我今天開始使用服務器時,由於持續的交換操作,它變得極其緩慢,無論如何它幾乎無法使用。有時我因為i / o延遲而遇到ssh登錄超時。我決定使用過多的交換利用率來殺死所有進程。但我會在筆記本電腦上檢查一下。 - Lapsio


答案:


除非您設法通過此方法觸發內核錯誤,否則不應該導致系統崩潰。可能會有一些潛伏,因為拔掉活動交換設備很可能不是常見的測試場景。

如果您的系統沒有崩潰,那麼一旦他們嘗試訪問任何不再可用的換出頁面,您的應用程序就會一個接一個地死掉。

殺死並重新啟動洩漏的應用程序更加安全,所有洩露的內存將在退出時釋放。


1
2018-04-23 22:12





所以我測試了它。拔掉pendrive系統後遇到即時恐慌。即使實際上有一些備用RAM,因此在設備拔出時沒有主動訪問交換,仍然導致系統崩潰。

系統日誌沒有記錄任何內容,就像文件系統崩潰一樣。它 威力 最終由我使用的btrfs引起,因為使用btrfs的系統在RAM(和交換)耗盡時也會遇到恐慌(oom殺手沒有被激活,系統崩潰的結果相同 - 沒有日誌記錄)


1
2018-04-24 23:12