Linux 核心無法優雅地處理記憶體不足的情況

在 Linux 核心開發者郵件列表中 上調 Linux 中處理低記憶體狀況的問題:

有一個已知問題困擾了很多人很多年,並且可以在最新的 Linux 核心 5.2.6 上在不到幾分鐘的時間內重現。 所有核心參數均設定為預設值。

Шаги:

  • 使用參數“mem=4G”啟動。
  • 關閉交換支援 (sudo swapoff -a)。
  • 我們啟動任何網頁瀏覽器,例如 Chrome/Chromium 和/或 Firefox。
  • 我們開始打開帶有網站的選項卡,並觀察可用記憶體量如何減少。

一旦出現新分頁所需的 RAM 多於可用 RAM 的情況,系統幾乎完全凍結。 您甚至移動滑鼠遊標都會遇到困難。 硬碟指示燈會不停地閃爍(不知道為什麼)。 您將無法啟動新的應用程式或關閉目前正在執行的應用程式。

這場小小的危機可能會持續幾分鐘或更久。 我想系統不應該這樣做。 我認為需要採取一些措施來避免這種「凍結」。

我很確定可以更改一些 sysctl 參數來避免這種情況,但有件事告訴我,這可能是每個人的預設設置,因為遇到此問題的非技術用戶將簡單地放棄使用 Linux 並且不會關心。以便在Google 上搜尋解決方案。

В 註釋 在 Reddit 上,一些用戶建議啟用交換,但這並不能解決問題,它只會推遲問題,而且往往會使問題變得更糟。 作為未來可能的解決方案,可能涉及內核中出現的 4.20 並在核心進行了改進 5.2 PSI(Pressure Stall Information)子系統,可讓您分析有關接收各種資源(CPU、記憶體、I/O)的等待時間的資訊。 該子系統可以在早期階段組織對記憶體短缺的監控,確定問題的根源並終止不重要的應用程序,而不會造成用戶明顯的影響。

來源: opennet.ru

添加評論