swappinessを0に設定することとswapoffを設定することの違いは何ですか

swappinessを0に設定することとswapoffを設定することの違いは何ですか

すべてのRHELサーバー(Hadoopサーバー)でスワップを無効にしようとしています。私たちには2つのオプションがあります:

  1. 交換性を0に設定し、swapoff -aswapon -a
  2. swapoff -aとスワッピングを無効にしますfstab

私が理解したのは、両方のオプションがスワッピングを完全に無効にすることです。

もちろん、オプション2はswapoff -a無効になっているからですfstab

しかし、オプション1はオプション2と同じ結果を提供しますか?

答え1

  1. テストしたときに何が起こりましたか?

  2. 読んでみましたか?文書

    値が 0 の場合、使用可能なページおよびファイル・サポート・ページの数が、その領域の最高水位表示よりも小さくなるまでスワップを開始しないようにカーネルに指示します。

    つまり、値が0の場合、スワッピングは無効にならず、スワッピングは延期されます。

答え2

私が理解したのは、両方のオプションがスワッピングを完全に無効にすることです。

間違っています。交換性を0に設定してください。いいえ交換を無効にします。

「スワップ」は、基本的にハードドライブの仮想RAMです。 RAMメモリが不足しているときに使用してください。スワップをオフにすると、プログラムでより多くのRAMが必要な場合に競合が発生します。しないでください。スワップファイルがあります。ただし、最新のデフォルトのUbuntuインストール(Ubuntu 22.04など)はデフォルトでスワップファイルを提供しないため、Ubuntuのインストール後にスワップファイルを手動で作成する必要があります。すばやく簡単に作成する方法への答えは次のとおりです。

0に設定しますswappiness。もちろんいいえスワップ領域を無効にします。私はこの事実を知っています。私はそれを広くテストしましたが、まだ交換量が増加していることがわかります。私も読んだLinuxソースコードの交換機能の説明。代わりに、RAMを入手する方法が見つからず、RAMの一部のメモリをスワップ空間に移動することを決定するまで、できるだけ長くスワップ空間の使用を延期します。

交換性と設定方法に関する私の答えもご覧ください。また、これを説明するためにLinuxカーネルのソースコードを引用しました。Ubuntuに尋ねる:スワップ性を設定する方法は?


答えが終わり、逸話と個人的な経験が始まりますswappiness

私はswappinessを0に設定すると、32GB RAM、高速m.2 SSDの64GBスワップファイルがあり、RAMが不足しているシステムのパフォーマンスが大幅に向上することがわかりました。

swappinessがデフォルトの60に設定されている場合、Chrome、Slack、Eclipse、Google Meetなどのメモリを多用する特定のアプリケーションに切り替えようとすると、kswapd0実行中に定期的に1〜2分のロック期間が発生します(図を参照)。topスワップメモリ​​(クロム)。 RAMが80%いっぱいになると、これらのダウンタイムが発生し始めます。コンピュータは完全に利用できないこの間、私は端末に入力することもメニューをクリックすることもできませんでした。

交換性を0に設定とても役に立ちます!。 RAMが90%になるまで、私のCPU使用率はそれほど高くはなく、スワップスペースは依然として多く使用されていますが、より効率的です。 。 !

ここで私の症状のいくつかを確認してください。最初はGoogle Meetのバグによるものだと思いましたが、今はメモリスワッピングによってコンピュータの速度が遅くなると思います。https://github.com/ElectricRCAircraftGuy/bug_reports/issues/3#issue-1177137900

関連情報