2011-07-26 32 views
3

誰でも私にLinuxのVM調整可能パラメータのdirty_bytesとdirty_background_bytesの作業を教えてもらえますか?Linuxの仮想メモリパラメータ

dirty_bytesは、アプリケーションが書き込みを行ってからディスクに直接書き込みを開始するまでのメモリ量を指定します。それが正しいか、または割り当てられたメモリの量が使い果たされた場合、その部分が最初にディスクに転送され、新しいデータが再びメモリに格納されます。例えば。 1GBのファイルをディスクに転送し、dirty_bytesを100MBに設定した後、100MBをメモリに書き込むと、書き込みを実行するアプリケーションはデータをディスクに直接書き込むか、100MBが再度100 MBをメモリに書き込んだ後、ディスクに転送するなどの方法があります。

dirty_background_bytesの場合、ダーティーメモリの部分がこれを超えると、pdflushはダーティデータをバックグラウンドでディスクに書き戻します。

私はこの2つのパラメータについて正しく理解していますか?

答えて

6

いいえ、dirty_bytes(またはdirty_ratio)を超えても、プロセスはディスクに直接書き込みを開始しません。

代わりに、プロセスが制限を超えるページをダーティーすると、そのプロセスは、一部のダーティページの同期書き込みを実行するために使用されます。正確には、通常のヒューリスティックによって決まります。それらは、もともとそのプロセスによってもともと汚れていたページである必要はありません。

効果的に、プロセスは書き込みが発生するまでその書き込み(メモリ書き込みのみである場合もあります)を中断します。

あなたは正しい約dirty_background_*です。バックグラウンド制限を超えると、非同期書き込みが開始されますが、ユーザー空間プロセスは続行されます。

+0

ありがとうございます。 – randy7

+0

とdirty_background_bytesとdirty_bytesは書き込みキャッシュを制御するので、パラメータや読み取りキャッシュのサイズを制御する方法はありますか? – randy7

+0

@ randy7: 'swappiness'パラメータは、非アクティブな匿名ページをスワップアウトしてページキャッシュからリクレイミングすることによって、メモリを再利用することのバランスを調整します。ここでの数値が小さいほど、カーネルはページキャッシュをより利用しやすくなります。 – caf

関連する問題