オペレーティングシステム用に予約されたRAM

オペレーティングシステム用に予約されたRAM

私は多くのオープンアプリケーション(PhpStorm、Android Studio、Chrome、Firefox、FileZilla、Evince、SublimeText)を同時に使用します。

ハードウェアが限界に達することがますます増えている。タスクインジケータが点灯し、ハードウェアが動作しているような気がします。時々私はいくつかのキルを行い、ターミナルが開くのを待つ必要があります。

オペレーティングシステムがフリーズするのを防ぐために特定の量のRAMを予約する方法はありますか?他のアプリケーションが少し遅くても、高速で反応性の高いオペレーティングシステムが必要です。

私はUbuntuを使用しており、SSDドライブのホームディレクトリに約5GBの空き容量があります。

free -m:

              total        used        free      shared  buff/cache   available
Mem:           7,8G        4,4G        1,6G        204M        1,8G        2,9G
Swap:          2,0G        1,7G        344M

編集する:

composer updateSymfonyプロジェクト用のPHPStormで作業するために必要なので、スワップ用の2GB RAMを手動で設定しました。

ありがとう

答え1

最も簡単な答えは、スワップスペースを減らすことです(参照これは別の質問です)。

説明する:

RAMがいっぱいになると、カーネルはスワップスペースをより頻繁に使い始め、(ゆっくりと遅いディスクドライブで)アプリケーションはメモリにアクセスするのに長い時間を待つ必要があるため、そのアプリケーションのパフォーマンスが低下します。スワップ領域がいっぱいになり、カーネルがアプリケーションのシャットダウンを開始するまで(OOMとも呼ばれるメモリ不足エラー)、パフォーマンスの低下が続行されます。したがって、スワップスペースが大きいほど、アプリケーションのパフォーマンスの低下が長くなります。スワップサイズを小さくすると、カーネルがアプリケーションをシャットダウンするのにかかる時間が短くなり、一部のメモリが解放されます。

残念ながら、デスクトップ環境(マウスカーソルとウィンドウの表示を担当)は、ブラウザと同様に「アプリケーション」と見なされます。したがって、カーネルはデスクトップ環境を他のアプリケーションと区別することはできず、「デスクトップ環境メモリを交換しないでください」などの決定を下し、他のアプリケーションよりも応答性に優れています。

他の答えは次のとおりです。

  • RAMを多用するアプリケーションを内部に配置し、cgroupメモリ使用量を制限します。
  • 追加メモリを購入
  • ZRAMの使用

このスーパーユーザーの答え状況と考えられる解決策について詳しく説明します。

答え2

システムの交換可能性とキャッシュ圧力を調整することを考えてみましょう。

sysctl vm.swappiness=XXが0〜100の場合は、実行して交換性を調整できます。この設定は、使用可能な RAM スワップ率が使用され始めると変わります。 swappiness が 0 の場合、システムは RAM が不足するまでスワップせず、100 に設定すると常にスワップすることを意味します。これはあまりにも単純化された説明ですが、これが基本です。通常、私は10の交換性を使用しています。

cache_pressureシステムがinodeおよびdentry(ファイルシステム)データをキャッシュする頻度を決定するように調整することもできます。これはしばしばパフォーマンスが集中し、キャッシュする価値があります。 0 ~ 100 の値は、システムがキャッシュすることを選択する量を示します。

これがJason C.に役立つことを願っています。

答え3

悪名高い「メモリ不足」(OOM)エラーが発生しました。この問題は16年以上続いており、2019年半ばになってバグが注目を集め始め、それ以降は確実な修正は行われていません。これは、Linuxの悪いキャッシュ習慣、過度に多くのRAMを使用し、実際に持っているリサイクル不可能なキャッシュ/バッファの量がわからないためです。

ただし、OOMエラーが発生しないように驚くべき効果を発揮する簡単な方法がいくつかあります。ヌオ港

OOMが発生する理由を調べて、このリンクからppaをダウンロードしてインストールしてください。これがバグを修正することはできませんが、今すぐできる最善の方法です。

さらに、より多くの負荷で実行する各ソフトウェアはより多くのRAMを使用するため、より少ないRAMを使用するデスクトップ環境を使用することを検討してください。さらに、Gnome 3はMate(GTK 3に基づくGnome 2の復活)よりもはるかに強力ではありませんが、Cinnamonの次の最も強力なバージョンであり、KDEとMateがそれに従います。

KDEの1.3GB以上のRAM(7年前の古いGnome 3がそれほど多くのメモリを占めていましたが、今はもっと多くなければなりません)とは異なり、私は約600MBのRAMだけを占めるXFCEを使用することをお勧めします。

ブラウザでも同様です。すべてのChrome / Chromiumベースのブラウザはリソース集約型です(Windowsのエッジを除く)。 ElectronまたはJavaScriptベースの「アプリ」は、できるだけ多くのRAMを消費したり、非常に少ない機能(フル機能のテキストなど)を達成するために多くのRAMを使用するすべてのアプリを避けます。エディタは30MB以上を使用しないでください。 RAMなど)。

duthilsが言ったことは良いですが(ZRAMとCGroups)、時々ソフトウェアの最適化を望まない悪い開発者に対応するために多くのRAMを購入することは適切なソリューションではありません。

また、Firefoxの「自動タブ削除」拡張機能とChromiumベースのブラウザが本当に必要な場合に使用できる非常に強力なChromiumベースのブラウザであるVivaldiなどのブラウザ用のタブハンガーも検討してください。デフォルトでは手動タブ削除機能があります。

あなたは開発者なので、使用していないRAMを覚えておいてください。いいえRAMの浪費(反対の誤った仮定は、ほとんど常にWeb開発者によって作成されます。)

これは、ほとんどのキャッシュ RAM が実際に回収可能な RAM でない場合に特に当てはまります。これが OOM の問題が発生する理由です。一般的に、キャッシュがたくさん残っているキャッシュがまだ残っていることを確認するために、top「利用可能な」RAMを見ると簡単に確認できます。echo 3 > /proc/sys/vm/drop_caches

関連情報