Linux

瀏覽某些網站時,什麼會使 Linux 數分鐘內無響應?

  • September 14, 2021

我使用的是 Linux 4.15,當 RAM 使用量達到頂峰時,這種情況發生在我身上很多次——整個作業系統變得無響應、凍結且無用。我看到它唯一工作的是磁碟(主系統分區),它正在大量使用。

我不知道這個問題是特定於作業系統、特定於硬體還是特定於配置。

有任何想法嗎?

是什麼讓 Linux 如此遲鈍?

過度使用會導致大量交換的可用 RAM 絕對可以做到這一點。請記住,機械硬碟上的隨機訪問 I/O 需要移動讀/寫磁頭,每秒只能進行大約 100 次尋軌。

如果您“過多”地過度使用 RAM,Linux 通常會完全出去吃午飯。我還有一個旋轉磁碟和 8GB RAM。我遇到了一些記憶體洩漏軟體的問題。即它們的記憶體使用量會隨著時間的推移不斷增長,並且永遠不會縮小,因此控制它的唯一方法就是停止軟體然後重新啟動它。根據我在此期間的經驗,如果您正在生成 3GB+ 的交換,聽到超過 10 分鐘的延遲我並不感到驚訝。

您不一定會在所有交換空間超過 3GB 的情況下看到這一點。理論說關鍵概念是捶打。另一方面,如果您嘗試在兩個不同的工作集之間切換,並且需要交換 3GB 的數據,那麼在 100MB/s 的速度下,即使 I/O 模式可以完美優化,也至少需要 60 秒。在實踐中,I/O 模式遠非最佳。

在遇到困難之後,我將交換空間重新格式化為 2GB(比以前小了幾倍),因此系統無法進行深度交換。您甚至可以在不調整分區大小的情況下執行此操作,因為mkswap它需要一個可選的大小參數。

粗略的平衡是在記憶體不足和程序被殺死之間,以及讓系統掛起這麼長時間以至於你放棄並重新啟動之間。不知道4GB的swap分區是不是太大了;這可能取決於你在做什麼。重要的是要注意磁碟何時開始攪動,檢查您的記憶體使用情況並做出相應的響應。

檢查多程序應用程序的記憶體使用情況很困難。要在不重複計算共享記憶體的情況下查看每個程序的記憶體使用情況,您可以使用sudo atop -R、按Mm,然後查看 PSIZE 列。您也可以使用smem. smem -t -P firefox將顯示所有 Firefox 程序的 PSS,然後顯示總 PSS。這是測量基於 Firefox 或 Chrome 的瀏覽器的總記憶體使用情況的正確方法。(雖然也有特定於瀏覽器的功能來顯示記憶體使用情況,這將顯示各個選項卡)。

引用自:https://unix.stackexchange.com/questions/534355