web-dev-qa-db-ja.com

Linuxは、RAMが十分にインストールされている間にスワップします

SANストレージとして使用されるLinuxボックスがあります。これには14個のSATA HDDが搭載されており、実行されるソフトウェアはiscsiターゲットとzabbixエージェントのみです。これはVMではなく物理ボックスです。

RAMインストールされているサイズは128 GBであり、スワップは4 GBに調整されており、RAMが非常に大きい場合、誰もそのサイズを気にしません。ボックス実行(稼働時間は694日)スワップがますます使用され、現在では約80%使用されていました。

Htopは何も悪く表示しません、OSがRAM=キャッシュなどとして使用するように見えます。swappinessは10に設定され、次に1に設定されました。完全にしかしこれは悪い動きになるように見えます。

だから私の質問は簡単です、RAMを使用し、スワップを使用しないようにボックスを設定するにはどうすればよいですか?RAMで十分なのに、なぜスワップを使用するのですか?

これはSANなので、ファイルではなくブロックを提供するため、ブロックベースでキャッシュを実行でき、RAMが制限されている場合は、iSCSIのロジックに影響を与えません。

Zabbixは今、私はRAM利用可能= 123.22 GB(ほら、128 GBのほぼすべて!)を使用していると言います)、使用されるスワップは4 GBの3.24 GBです。

14
Kevin M

問題はない。使用可能なRAMがまだある場合でも、Linuxカーネルはほとんど使用されないメモリページをスワップスペースに移動します。

しばらく使用されていないメモリページをスワップアウトして、頻繁に使用されるデータをキャッシュに保持することをお勧めします。これはカーネルの望ましい状況です。

vfs_cache_pressure(カーネルがディレクトリとiノードオブジェクトのキャッシュに使用されるメモリを再利用する傾向を制御する)とswappiness(これは、カーネルはメモリページをスワップします。値が大きいほど積極性が増し、値が小さいほどスワップ量が減ります)。

これらの設定は/etc/sysctl.confにあります。

23
Overmind