書き込みキャッシュ設定が機能しない

書き込みキャッシュ設定が機能しない

私は、72 GB の RAM とソフトウェア RAID 0 として構成された 4 つのドライブを搭載した Debian 8.0 x64 を使用しています。

Linux s1 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux

実際の書き込みの前に、ダーティ ページを 2GB キャッシュに設定してみました。また、RAM の 50% を使用するように「dirty_ratio」と「dirty_background_ratio」設定を設定してみましたが、これも機能しませんでした。pdflush デーモンは 1 分ごとに起動する必要があり、ダーティ ページの有効期限は 10 分に設定されていました。

「iotop」を使用してディスク I/O をチェックしたところ、ディスクの書き込みアクティビティが高いことがわかりました。また、「cat /proc/meminfo」では、「Dirty」値が小さくなっていることがわかりました (おそらく書き込みによるもの)。チェックする前に、「sync」と「drop_caches」を実行しました。「dd」コマンドを使用して、ゼロの 1GB ファイルを書き込むテストを行いました。

  • 設定は次のとおりです。

エコー 0 > /proc/sys/vm/dirty_background_ratio

エコー 2147483648 > /proc/sys/vm/dirty_background_bytes

エコー 0 > /proc/sys/vm/dirty_ratio

エコー 2147483648 > /proc/sys/vm/dirty_bytes

エコー 6000 > /proc/sys/vm/dirty_writeback_centisecs

エコー 30000 > /proc/sys/vm/dirty_expire_centisecs

  • マウントオプション:

/dev/md0 の /test タイプ ext4 (rw、noatime、nodiratime、nobarrier、stripe=512)

提案はありますか?

答え1

ここで作成する必要があるmd/stripe_cache_sizeファイルを増やしてみてください

#/etc/udev/rules.d/83-md-stripe-cache.rules
KERNEL=="md*", ACTION=="add", TEST=="md/stripe_cache_size", ATTR{md/stripe_cache_size}="8192"

私の場合はRaid-6でうまくいきました

そして、x64システムで問題が発生したため、ダーティ比を減らすことをお勧めします。私はこの設定を使用しています

に追加 /etc/sysctl.conf

vm.dirty_bytes = 16777216 #16Mb
vm.dirty_background_bytes = 835584 #mb

答え2

ddこのテストには使用しないでください。他のコマンドを使用するcpと、書き込みキャッシュが正常に動作していることがわかります。

関連情報