Linux カーネルはメモリ不足の状況を適切に処理できません

Linux カーネル開発者メーリング リストについて 上げた Linux でのメモリ不足状況の処理に関する問題:

長年にわたって多くの人を悩ませてきた既知の問題があり、最新の Linux カーネル 5.2.6 では数分以内に再現できます。 すべてのカーネルパラメータはデフォルト値に設定されます。

手順:

  • パラメータ「mem=4G」で起動します。
  • スワップ サポートをオフにします (sudo swapoff -a)。
  • Chrome/Chromium や Firefox などの Web ブラウザを起動します。
  • サイトのタブを開いて、空きメモリの量がどのように減少するかを観察し始めます。

新しいタブが利用可能な以上の RAM を必要とする状況が発生すると、システムはほぼ完全にフリーズします。 マウスカーソルを動かすことさえ難しくなります。 ハードドライブインジケーターが止まらずに点滅します(理由はわかりません)。 新しいアプリケーションを起動したり、現在実行中のアプリケーションを閉じたりすることはできません。

この小さな危機は数分以上続く場合があります。 システムがこのように動作するべきではないと思います。 このような「フリーズ」を避けるために何かをする必要があると思います。

この種の状況を回避するために sysctl パラメータの一部を変更することは可能だと確信していますが、技術者以外のユーザーがこの問題に遭遇した場合、単純に Linux の使用を放棄し、今後も使用しないため、これがすべての人にとってのデフォルトになる可能性があることがわかります。 Google で解決策を検索するため。

В コメント Reddit では、スワップを有効にすることを提案するユーザーもいますが、これは問題の解決にはならず、問題を先延ばしにするだけで、多くの場合、状況を悪化させます。 将来的に考えられる解決策として、カーネルに現れる問題が関係する可能性があります。 4.20 コア部分で改善されました 5.2 PSI (Pressure Stall Information) サブシステム。さまざまなリソース (CPU、メモリ、I/O) の受信待機時間に関する情報を分析できます。 このサブシステムにより、ユーザーに目立った影響を与えることなく、メモリ不足の監視を早期に組織化し、問題の原因を特定し、重要でないアプリケーションを終了することができます。

出所: オープンネット.ru

コメントを追加します