サーバ設定

CentOS(RHEL) 7 で起動時に swappiness を調整する方法

結論

以降の HOGE# tuned-adm active とかすると出てくるプロファイル。プロファイル自体が好ましくない場合は tuned-adm で別のに切り替えたり、this article を応用してごにょごにょ。

# cp -r /usr/lib/tuned/HOGE /etc/tuned/
# vim /etc/tuned/HOGE/tuned.conf

/usr/lib/tuned の中身は例によって変更してはいけない。systemd とか firewalld とかといっしょ。/etc にコピってからやる。

経緯

  1. /etc/sysctl.conf とか conf.d あたりのファイルに vm.swappiness = 1 とか書く。
  2. # sysctl --system とかやるとこの内容が反映される。
  3. 再起動する
  4. 反映されない。ナンデ!? (swappiness 以外の値だと反映されたりする)

swappinessが効かない理由

  • 起動時に sysctl --system 相当のことは systemd-sysctl.service で行われている。
  • それとは別に tuned というサービスも立ち上がる。
  • tuned の方が後で適用されるので、sysctl の内容が上書きされる。
  • 悲しみにくれる。

書いてある場所

マニュアル – 電力管理ガイド – TUNED 2.5.3. カスタムプロファイル

/usr/lib/tuned 内のプロファイルは変更しないでください。
プロファイルをカスタマイズする必要がある場合は、プロファイルディレクトリーを /etc/tuned ディレクトリーにコピーします。同じ名前のプロファイルが 2 つある場合は、/etc/tuned のプロファイルが優先されます。