limits.conf

提供: ArchWiki
2019年3月1日 (金) 00:54時点におけるKusakata (トーク | 投稿記録)による版 (カテゴリ変更)
ナビゲーションに移動 検索に移動

関連記事

limits.conf を使うことでユーザーやグループに割り当てられる様々なリソースを制限することができます。フォーク爆弾などによってシステムリソースが食い尽くされることを防ぐのに役立ちます。

ノート: systemd を使っている場合 /etc/security/limits.conf の値は反映されません。/etc/systemd/system.conf, /etc/systemd/user.conf, /etc/systemd/<systemd_unit>/override.conf などを使ってリソースを制御することが可能です。詳しくは systemd-system.confman ページを見てください。

構文

デフォルトファイルにはコメントが豊富に付けられていますが、limits.conf(5) の man ページを読むことでさらに詳しい情報を得ることができます。

推奨設定

core

コアファイルはデバッグのときは役に立ちますが、通常の使用ではとくに役立ちません。ソフトリミットを0にしてハードリミットを無制限にすることで、デバッグでコアファイルが必要になったときだけ $ ulimit -c unlimited で一時的にリミットを変更することができます。

*           soft    core       0           # Prevent corefiles from being generated by default.
*           hard    core       unlimited   # Allow corefiles to be temporarily enabled.

nice

最高優先度 (-20) のプロセスを実行できるのは root だけにすることで、システムが反応しなくなった場合に root で対処することができます。

*           hard    nice       -19         # Prevent non-root users from running a process at minimal niceness.
root        hard    nice       -20         # Allows root to run a process at minimal niceness to fix the system when unresponsive.

nofile

特定のドメインでプロセスが一度に開くことができるファイル記述子の数を制限します。8192 特定のゲームを動作させるには 値を 8192 などに増やす必要があります。

*           hard    nofile     8192        # Required for certain games to run.

nproc

フォーク爆弾を複製できる回数を制限するため、nproc の制限は重要です。ただし、設定した値が低すぎるとシステムが不安定になったり、新しいプロセスが作成できなくなって使用不可能な状態になることもあります。

ミニマルなウィンドウマネージャを使って複数のデスクトップアプリケーションやデーモンを動かす場合は 300 は低すぎますが、X を起動しないサーバーの場合は十分です (ジョージア大学の Linux サーバーでは 300 に設定されています)。

以下は全てのユーザーの nproc を制限する例です:

*           hard    nproc      2048        # Prevent fork-bombs from taking out the system.

2048 という値はあくまで例であり、場合によってはもっと高い値が必要になります。逆に、低くしても問題ない可能性もあります。

nproc の設定を何にするのであれ、root ユーザーはいくらでもプロセスを作成できるように設定してください。そうしないと nproc の制限が低すぎた場合に回復できなくなってしまう可能性があります。上記の設定の後に以下の行を記述してください (65536 という値は自由です)。

root        hard    nproc      65536       # Prevent root from not being able to launch enough processes

priority

デフォルトの nice 値は基本的に 0 ですが、以下のパラメータを使うことでユーザーやグループによってそれぞれ個別の優先度を設定することができます。

*           soft    priority   0           # Set the default priority to neutral niceness.

参照