Account Links: Cart | Register | Log In

Skip to content

Red Hat Knowledgebase
Red Hat Knowledgebase Search
Currently Being Moderated

システムがメモリのキャッシュやバッファを解放せずにデータをスワップするのはなぜですか?

Article ID: 18229 - Created on: Jul 9, 2009 8:51 AM - Last Modified:  Aug 20, 2009 4:28 AM

対象リリース: Red Hat Enterprise Linux 4

 

解決方法:

 

カーネルはメモリ上のどのページが近い将来必要とされそうかを推測するためにヒューリスティックな方法を使用し、プロセスやカーネルキャッシュに属しているかに関らず、それらのページをメモリに保持しようとします。  通常、多くのキャッシュメモリが簡単に解放できる場合であっても、カーネルはプロセスが使用しているメモリをスワップアウトします。

 

カーネルのヒューリスティックな方法は、sysctlvm.swappiness パラメータを変更することにより調整できます。デフォルト値は 60 であり、この値はほとんどの作業の負荷配分に適した内容です。しかし、いくつかのシステムでは値を低くしたり高くすることによって効果が出るかも知れません。この値を上げるとシステムはスワップを利用しようとする傾向が高まり、キャッシュ領域を解放する ために メモリデータをスワップします。この値を下げるとスワップを利用しない傾向になり、アプリケーションのレスポンスが改善するかも知れません。

 

vm.swappiness の調整はパフォーマンスに悪い影響を与えるかも知れませんし、作業負荷が軽かったり高かったりする環境によって異なった影響があるかも知れません。このパラメータを変更する場合には少しだけ増減させるようにし、通常のシステム作動環境下と同じ状況でテス トするようにしてください。

 

下記は vm.swappiness のパラメータを 50 にする例です。

 


# echo '50'> /proc/sys/vm/swappiness

 

システム再起動後も設定を有効にするには、/etc/sysctl.conf ファイルに下記の行を追記します。

 


vm.swappiness = 50

 

http://kbase.redhat.com/faq/docs/DOC-3367

Feedback from users like yourself is a critical factor in helping us make the Red Hat Knowledgebase as useful as possible.

More Like This

  • Retrieving data ...