====== 高速書き込み ====== ===== 概要 ===== * 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 秒)| ===== 参考サイト ===== * [[https://qiita.com/tglovernuppy/items/6fc7deb7af3c0ec59235 | Linux ディスクキャッシュのチューニング - Qiita]] * [[https://yomon.hatenablog.com/entry/2017/04/01/131732 | Linuxページキャッシュの設定を変更してWrite I/Oをチューニングしたメモ - YOMON8.NET]] * [[http://portaltan.hatenablog.com/entry/2015/10/15/145823 | I/O waitが発生する原理(dirtyメモリ、write back) - 脳汁portal]]