あのときのログ

思ったこと、経験したことを忘れないようにするためのメモ。

limits.conf の soft / hard について

soft limit / hard limit の理解について曖昧だったので、おさらいしました。
そもそもOSのどこで設定していたんだっけ、というところから。

◇/etc/security/limits.confに関するメモ
http://open-groove.net/linux/memo-etcsecuritylimits-conf/

定義は明快に書いてありました。助かります。

soft/hardの違いは、softが一般ユーザが変更できる上限値で、hardはrootが変更できる
上限値を意味する。ユーザ名を「*」とすればすべてのユーザに適用される。

とのことです。

ユーザごとの設定で soft / hard が記述できるので、sshの接続数制限とかと似て、softは超過しても、hardまではある程度許される猶予なのかと思いましたが、そうではなく、「各ユーザにて、 ログインして ulimit で(一時的な)変更ができる上限値」 = soft であると。

無理やりsshとの関連を挙げるのであれば、上記URLのページの最後にある、
sshではセキュリティ確保のため、ssh経由で接続したプロセスに対し、そのユーザーが本来持っている権限以上の変更はできない」
というところでしょうか。

ファイルディスクリプタの制限 については、nginx(worker_rlimit_nofile ※プロセスごとの上限)やMySQL(open_files_limit) などミドルウェアで独自に設定値を持っているケースもあるので、頭に入れておくと、トラブルシューティング時の視点が広がると思います。

◇mysqldのファイルディスクリプタ
http://studio3104.hatenablog.com/entry/20121030/1351587278