高速書き込み
概要
- SSD の登場により、大きなデータを高速に転送できるようになった。
- HDD との転送 (HDD → SSD、あるいは SSD → HDD) において、データの書き込み/読み込み速度の違いで、待ち時間が発生することがある。
- ここではそのチューニングの方法を紹介する。
データが書き込まれるまで
- データが dirty メモリに転送される。
- dirty メモリ上のデータが一定以上、あるいは一定時間を越えるまでデータを蓄える。
- 上記条件を越えた場合に、pdflush が呼び出され、write_back 処理で、物理デバイスにデータが書き込まれる。
調整方法
/etc/sysctl.conf
をエディタで編集し、適用する。- 編集後、システムを再起動するか、以下のコマンドで適用する。
$ sudo sysctl -p
パラメータ名 | デフォルト値 | 説明 |
---|---|---|
vm.dirty_background_ratio | 10 | dirty メモリ上のデータがこの閾値を越えた場合に、優先度の低いバックグラウンドプロセスで write_back 処理をする (物理メモリに占める割合%) |
vm.dirty_ratio | 20 | dirty メモリ上のデータがこの閾値を越えた場合に、優先度の高いバックグラウンドプロセスで write_back 処理をする (物理メモリに占める割合%) |
vm.dirty_expire_centisecs | 3000 | write_back 処理されるまでの間隔 (1/100 秒) |
vm.dirty_writeback_centisecs | 500 | write_back 処理デーモンの起動間隔 (1/100 秒) |