【ユーリミット】
ulimit(リソース制限) とは?
最終更新:
💡 シェルから起動する処理の、資源上限を確認
シェルと、そこから起動するプロセスの資源上限を確認・設定する組み込みコマンド。ソフト・ハードの違い、ファイル記述子、サービスごとの設定を解説します。
📌 このページのポイント
ulimitは、PC全体の性能を上げる設定?
まず何を確認する?
Bashならulimit -aで一覧、ulimit -Snでファイル記述子のソフト上限、ulimit -Hnでハード上限を表示できるよ。ここでは値を変更せず確認する例だよ。既定値はOSや起動方法で違うので、特定の値だと決め付けないようにね。
ソフトとハードは、何が違う?
ソフトは実際に適用される上限、ハードはソフトを変更できる範囲の天井だよ。権限のないプロセスもハードを下げられるけれど、下げたハードを元へ上げるには権限が必要になる。気軽に変更しないことが大切なんだ。
ファイル記述子は、保存するファイルの数?
サービスにも、同じ設定が効く?
もっと詳しく知りたい人へ
ulimit -nに大きな数を付ければ、安全に増やせる?
Bashでは-Sや-Hを付けずに設定すると、ソフトとハードの両方を設定します。権限や現在のハード上限、アプリの対応、資源の使用量を確認してから設計します。数値だけを一律にコピーする方法は避けます。
limits.confに書けば、すべてのサービスに反映される?
limits.confはpam_limitsを使うログインセッションの設定です。systemdで起動するサービスにはLimitNOFILE等の設定があります。起動経路と対象を確認し、変更後は対象プロセスに実際に適用された値を確認します。
まとめ:ざっくりこれだけ覚えればOK!
「ulimit」って出てきたら「シェルと、そこから起動する処理の資源上限を確認・設定するコマンド」と思えばだいたいOK!
📖 おまけ:英語の意味
「ulimit」 = 資源の使用上限を扱うシェルのコマンド
💬 Bashなどのシェルに組み込まれており、CPU時間やファイル記述子数などの上限を扱います。対応する項目や単位は環境で確認します。