デフォルトのswappiness 60はなぜですか?デスクトップPCのswappiness値を下げると、どのような影響がありますか?


16

私はさまざまなフォーラムでスワップ性について読んでいて、いくつかのビデオを見ました。多くの人は、デスクトップユーザーがswappiness値を60(デフォルト)未満に下げるのは良いことだと述べています。一部の人は、60はサーバーに適していると述べました。正確にそれを下げる方が良いのはなぜですか、またなぜサーバーに60が適しているのでしょうか?答えを探してみましたが(例:ここを見)、理解できませんでした。...簡単な用語を使用してください:D


質問を編集しました。今はいいですか?
ミーナマイケル14年

回答:


22

あなたの前提は間違っています。「サーバーに適した」スワップ値はありません。

スワピネスとは、行われるスワッピングの量、特にどれだけ積極的にスワッピングするかです。私のサーバーでは、すべてに十分なメモリがあることを確認しているため、swappinessはゼロに近いです。「サーバーに最適」という値はありません。デフォルトである60があり、使用量と使用可能なメモリに依存する「値」があります。

時々メモリのLOADSを使用するサーバーがある場合は、デフォルトよりも高くすることができますが、一部のサーバー(データベースサーバー?)は、ホームコンピューターよりもずっと低く抑えたいと思うかもしれません。


まあ大丈夫:DIはこのunix.stackexchange.com/questions/88693/…に従っていました。2番目の回答(現在2つの賛成票を持っているもの)は、60がサーバーに最も適していると言っています。...そして、これをまっすぐにさせてください。大きなメモリを必要とするプロセスを実行する場合は高いスワップ性を設定し、複数の小さなプロセスを実行する場合は低いメモリを設定する必要がありますか?
ミナマイケル14

(そして、私のコンピューターの仕様に応じて)私は2.9 GHzのコア2デュオを持っています。ちなみにIntel統合グラフィックス
ミーナマイケル14

1
言うことは不可能です。その答えにも述べられているように、多くのことに依存します->一部のデータベースは独自のキャッシングを行う場合がありますが、そうでない場合もあります。プログラムとハードウェアに依存します。デフォルトがあり、できる最善のことは、どのような状況でシステムがどのように動作するかをテストすることです。前述のように、システムに十分なmemを追加し、それらが必要とするものを知っているので、0近くでスワップ可能です。しかし、正常なシステムでは、一部のスワップが良いことです。ここには簡単な「万人の神」のセットアップに関するアドバイスはありません。最もよく支持された答えを読んでください。また、その2番目の回答では「あるかもしれません」ではなく「あるかもしれない」と言う
ナネ14

(そしてあなたのスペックで:あなたが持っているメモリとあなたについて話している場合、最も重要なことですが、ここにそれを追加する必要はありません:あらゆる種類の詳細について何日も話すことができます、最善のことは読むことですあなたが与えたそのUNIXリンクに関する最高の答え、そしてそれがあなたの環境でどのように機能するかをテストし続けます。) '
Nanne

まあそれは私が読んだものを理解できないと言ったときです。私は知識(そして正直なXDであるための言語でさえ)にかなり弱いので...私はただ努力し続ける必要があります!大丈夫ありがとう:D
ミーナマイケル14

8

swappiness値は、人々を混乱させる方法でスケーリングされます。実際に有効な最小値が約50である場合、彼らは0-100の範囲を持っているので、彼らはパーセントを考えます。

60は、おおよそ80%のメモリ使用量に達するまでスワップしないことを意味し、20%をキャッシュなどに残します。50は、メモリがなくなるまで待つことを意味します。低い値は同じことを意味しますが、他の手段でメモリを解放しようとする攻撃性が高まります。

http://lwn.net/Articles/83588/でそれを説明してください


80や100などの高い値とはどういう意味ですか?
ジョカル

5

swappiness設定は、特定のシナリオでのスワッピングの利点/欠点をLinuxが計算する方法の微調整です。swappinessが高いと、必要のないときにシステムがスワップすることはありません。swappinessが低いと、完全にスワップを無効にしない限り、絶対に必要なときにシステムがスワップするのを防ぐことはできません。

デフォルトの60程度のswappinessは、未使用の割り当て済みプログラムメモリがあるときにキャッシュメモリの割り当てに苦労しないようにすることで、システムの良好なパフォーマンスを確保するための非常に良い妥協案です。

すべてのプロセスとキャッシュに十分なRAMがある場合(通常、物理RAMが十分にある場合にそうなります)、スワッピングはとにかく問題ではないことに注意してください。スワッピングが多すぎるという問題を解決するための好ましい方法は、プロセスによるRAMの使用を減らすか、物理RAMを増やすことです。本当に必要なものがより多くのRAMである場合、swappinessを減らすと悪影響があります。

非常によく似た質問に対する私が書いた答えをご覧ください。

/ubuntu//a/184221/54256

抜粋:

なぜほとんどの人がswapinessを10-20に減らすことを推奨するのですか?

ほとんどの人は、スワッピング=悪いと信じており、swappinessを減らさないと、システムは本当に必要のないときにスワップすると信じています。どちらも本当ではありません。しかし、それは主にスワップだ-人々は、彼らのシステムが泥沼なっている時代にスワップ関連付けるためのシステムが逆ではない、動きが取れなくなっています。確かに、スワッピングに顕著なパフォーマンスペナルティが生じる場合がありますが、システムはすでにスワップの決定にそれを織り込んでおり、そうしないとシステムパフォーマンスまたは安定性の全体的なペナルティが大きくなると判断しています。後で顕著になります。全体的にデフォルト設定では、全体的なパフォーマンスと信頼性が最高になります。デフォルトのままにしておくことをお勧めします。

...

スムーズに実行されるキャッシュに十分なメモリがなくなると、Linuxは未使用のアプリケーションメモリをRAMからスワップに再割り当てする場合があります。

しかし、明確なカットオフに従ってこれを行いません。割り当ての一定の割合に達すると、Linuxがスワップを開始するわけではありません。かなり「ファジー」なアルゴリズムがあります。それは多くのことを考慮に入れていますが、これは「メモリ割り当てにどれほどのプレッシャーがあるか」で最もよく説明できます。新しいメモリを割り当てるための「プレッシャー」がたくさんある場合、より多くのスペースを確保するためにスワップされる可能性が高くなります。「プレッシャー」が少ない場合、これらの可能性は減少します。

システムには「スワップ」設定があり、この「圧力」の計算方法を微調整できます。通常、これを変更することはお勧めできません。変更することはお勧めできません。スワップは全体的に非常に良いことです。パフォーマンスのペナルティは、さまざまなタスクに対するシステム全体の応答性と安定性の向上によって相殺されることを意図しています。swappinessを減らすと、キャッシュメモリの量を、実際に役立つ場合でも、そうでない場合よりも少しだけ縮小させます。したがって、一般にコンピューターの速度が低下する危険性があります。これは、キャッシュが少ないため、それを使用していないアプリケーションによってメモリが使用されているためです。これがスワッピングで発生している特定の問題に対して十分なトレードオフであるかどうかは、あなた次第です。

システムが行き詰まり、頻繁に交換されるとどうなりますか?

多くの場合、人々はディスクをひどくスラッシングしているシステムを見て、多くのスワップスペースを使用し、それをスワッピングのせいにします。それは取るべき間違ったアプローチです。スワッピングがこの極端に達すると、システムのメモリが極端に少なくなり、スワップがプロセスをランダムにクラッシュまたは強制終了させないようにすることを意味します。スワッピングを行わないと、この状況ではプロセスがクラッシュして死にます。スワッピングは、より深い問題の症状です。すべてのタスクに十分なメモリを備えたシステムでは、スワップはメモリが効率的な方法で使用されることを保証するだけで、価値があると思われる休止プロセスでメモリをキャッシュに分配します。スワップが容赦なくディスクをスラッシングしているシステムでは、スワップのせいではありません。

ディスクにスワップするものを選択するとき、システムは実際に使用されていないメモリ(読み取りまたは書き込み)を選択しようとします。これを計算するための非常に単純なアルゴリズムがあり、ほとんどの場合に適切に選択されます。

...

しかし、どうすればスワップでシステムを高速化できますか?スワップの速度が遅くなりませんか?

RAMからスワップにデータを転送する行為は遅い動作ですが、カーネルが全体的な利益がこれを上回ると確信している場合にのみ行われます。たとえば、アプリケーションのメモリがほとんどキャッシュが残っていないために上昇し、そのためにI / Oが非常に非効率的である場合、メモリを解放することで、実際にシステムからさらに多くの速度を得ることができます。データを解放するためにデータを交換する初期費用の後。

/ubuntu//a/184221/54256で投稿全体をお読みください


0

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をゼロに設定しましたが、やりたいことをしませんでした」と言われるまで。

その役に立つことを願って


1
AUへようこそ。あなたが指し示す記事のキーポイントを要約し、それが質問にどのように答えるかを説明してください。
マークヴァンフーミッセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.