2015年10月22日木曜日

Ubuntu 14.04系のsysctl.conf

なんか最近マシンが遅くなったと思っていたら、どうも/etc/sysctl.confが読まれなくなっていたらしい。とりあえず調べて適切な対処がわかったのでHP Stream 11のカスタマイズの記事を投稿してた手前、メモを共有。

ざっくり見た感じ、/etc/init.d/procpsがsysctl --systemを呼ぶことで設定を食わせている。man的には--systemは/etc/init.d/*だけじゃなく/etc/sysctl.confも読む仕様だけど、実際にstraceしてみるとstatするだけという怪しい挙動。sysctlのバグっぽいので少し追いかけてみた。

% sysctl --version
sysctl from procps-ng 3.3.9

という事なので、procps-ngの更新履歴を調べてみると、それっぽい修正が2回。

sysctl --system loads default config file

この修正前が問題の3.3.9、修正後が3.3.10。ポカミスで常に/etc/sysctl.confが読まれなかったのを読むように修正。ただし、この状態でも/etc/sysctl.confが存在しないとsysctlが異常終了する。

sysctl: Correct stat on /etc/sysctl.conf

こっちが入るのが3.3.11でわりと最近の修正。ファイルがあれば読むし、なければスルーという期待どおりの動作。

という事なので、これを機に/etc/sysctl.d/60-users.confに移動する、という事も考えたのですが、今後のアップデートで一時的に3.3.10の状態になる可能性を考えると、

% ln -s /etc/sysctl.conf /etc/sysctl.d/60-users.conf

としておくのが良さそう。

0 件のコメント: