高速書き込み

  • SSD の登場により、大きなデータを高速に転送できるようになった。
  • HDD との転送 (HDD → SSD、あるいは SSD → HDD) において、データの書き込み/読み込み速度の違いで、待ち時間が発生することがある。
  • ここではそのチューニングの方法を紹介する。
  1. データが dirty メモリに転送される。
  2. dirty メモリ上のデータが一定以上、あるいは一定時間を越えるまでデータを蓄える。
  3. 上記条件を越えた場合に、pdflush が呼び出され、write_back 処理で、物理デバイスにデータが書き込まれる。
  1. /etc/sysctl.conf をエディタで編集し、適用する。
  2. 編集後、システムを再起動するか、以下のコマンドで適用する。
    $ 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 秒)