回答:
あなたの前提は間違っています。「サーバーに適した」スワップ値はありません。
スワピネスとは、行われるスワッピングの量、特にどれだけ積極的にスワッピングするかです。私のサーバーでは、すべてに十分なメモリがあることを確認しているため、swappinessはゼロに近いです。「サーバーに最適」という値はありません。デフォルトである60があり、使用量と使用可能なメモリに依存する「値」があります。
時々メモリのLOADSを使用するサーバーがある場合は、デフォルトよりも高くすることができますが、一部のサーバー(データベースサーバー?)は、ホームコンピューターよりもずっと低く抑えたいと思うかもしれません。
swappiness値は、人々を混乱させる方法でスケーリングされます。実際に有効な最小値が約50である場合、彼らは0-100の範囲を持っているので、彼らはパーセントを考えます。
60は、おおよそ80%のメモリ使用量に達するまでスワップしないことを意味し、20%をキャッシュなどに残します。50は、メモリがなくなるまで待つことを意味します。低い値は同じことを意味しますが、他の手段でメモリを解放しようとする攻撃性が高まります。
swappiness設定は、特定のシナリオでのスワッピングの利点/欠点をLinuxが計算する方法の微調整です。swappinessが高いと、必要のないときにシステムがスワップすることはありません。swappinessが低いと、完全にスワップを無効にしない限り、絶対に必要なときにシステムがスワップするのを防ぐことはできません。
デフォルトの60程度のswappinessは、未使用の割り当て済みプログラムメモリがあるときにキャッシュメモリの割り当てに苦労しないようにすることで、システムの良好なパフォーマンスを確保するための非常に良い妥協案です。
すべてのプロセスとキャッシュに十分なRAMがある場合(通常、物理RAMが十分にある場合にそうなります)、スワッピングはとにかく問題ではないことに注意してください。スワッピングが多すぎるという問題を解決するための好ましい方法は、プロセスによるRAMの使用を減らすか、物理RAMを増やすことです。本当に必要なものがより多くのRAMである場合、swappinessを減らすと悪影響があります。
非常によく似た質問に対する私が書いた答えをご覧ください。
抜粋:
なぜほとんどの人がswapinessを10-20に減らすことを推奨するのですか?
ほとんどの人は、スワッピング=悪いと信じており、swappinessを減らさないと、システムは本当に必要のないときにスワップすると信じています。どちらも本当ではありません。しかし、それは主にスワップだ-人々は、彼らのシステムが泥沼なっている時代にスワップ関連付けるためのシステムが逆ではない、動きが取れなくなっています。確かに、スワッピングに顕著なパフォーマンスペナルティが生じる場合がありますが、システムはすでにスワップの決定にそれを織り込んでおり、そうしないとシステムパフォーマンスまたは安定性の全体的なペナルティが大きくなると判断しています。後で顕著になります。全体的にデフォルト設定では、全体的なパフォーマンスと信頼性が最高になります。デフォルトのままにしておくことをお勧めします。
...
スムーズに実行されるキャッシュに十分なメモリがなくなると、Linuxは未使用のアプリケーションメモリをRAMからスワップに再割り当てする場合があります。
しかし、明確なカットオフに従ってこれを行いません。割り当ての一定の割合に達すると、Linuxがスワップを開始するわけではありません。かなり「ファジー」なアルゴリズムがあります。それは多くのことを考慮に入れていますが、これは「メモリ割り当てにどれほどのプレッシャーがあるか」で最もよく説明できます。新しいメモリを割り当てるための「プレッシャー」がたくさんある場合、より多くのスペースを確保するためにスワップされる可能性が高くなります。「プレッシャー」が少ない場合、これらの可能性は減少します。
システムには「スワップ」設定があり、この「圧力」の計算方法を微調整できます。通常、これを変更することはお勧めできません。変更することはお勧めできません。スワップは全体的に非常に良いことです。パフォーマンスのペナルティは、さまざまなタスクに対するシステム全体の応答性と安定性の向上によって相殺されることを意図しています。swappinessを減らすと、キャッシュメモリの量を、実際に役立つ場合でも、そうでない場合よりも少しだけ縮小させます。したがって、一般にコンピューターの速度が低下する危険性があります。これは、キャッシュが少ないため、それを使用していないアプリケーションによってメモリが使用されているためです。これがスワッピングで発生している特定の問題に対して十分なトレードオフであるかどうかは、あなた次第です。
システムが行き詰まり、頻繁に交換されるとどうなりますか?
多くの場合、人々はディスクをひどくスラッシングしているシステムを見て、多くのスワップスペースを使用し、それをスワッピングのせいにします。それは取るべき間違ったアプローチです。スワッピングがこの極端に達すると、システムのメモリが極端に少なくなり、スワップがプロセスをランダムにクラッシュまたは強制終了させないようにすることを意味します。スワッピングを行わないと、この状況ではプロセスがクラッシュして死にます。スワッピングは、より深い問題の症状です。すべてのタスクに十分なメモリを備えたシステムでは、スワップはメモリが効率的な方法で使用されることを保証するだけで、価値があると思われる休止プロセスでメモリをキャッシュに分配します。スワップが容赦なくディスクをスラッシングしているシステムでは、スワップのせいではありません。
ディスクにスワップするものを選択するとき、システムは実際に使用されていないメモリ(読み取りまたは書き込み)を選択しようとします。これを計算するための非常に単純なアルゴリズムがあり、ほとんどの場合に適切に選択されます。
...
しかし、どうすればスワップでシステムを高速化できますか?スワップの速度が遅くなりませんか?
RAMからスワップにデータを転送する行為は遅い動作ですが、カーネルが全体的な利益がこれを上回ると確信している場合にのみ行われます。たとえば、アプリケーションのメモリがほとんどキャッシュが残っていないために上昇し、そのためにI / Oが非常に非効率的である場合、メモリを解放することで、実際にシステムからさらに多くの速度を得ることができます。データを解放するためにデータを交換する初期費用の後。
/ubuntu//a/184221/54256で投稿全体をお読みください
Swappinessは、これらすべての答えと完全に矛盾しています。
swappinessの実際の動作については、記事https://gokulvasanblog.wordpress.com/2016/11/14/empathising-mammoths-mentality-a-study-on-linux-memory-management/で説明されてい ます。
このあいまいさは、Andrew Mortonの声明によって裏付けられています:https : //lwn.net/Articles/83593/
耳に指を刺して「la la la」を歌います。「swappinessをゼロに設定しましたが、やりたいことをしませんでした」と言われるまで。
その役に立つことを願って