## はじめに
ulimitは、シェルから起動するプロセスに対するリソース制限(ファイルディスクリプタ数、メモリ、CPU時間など)を設定するコマンドです。本番運用では「too many open files」エラーなどを防ぐため、適切な制限値を設定することが重要です。
本記事では、ulimitの基本操作と、limits.confやsystemdユニットを通じた永続的なリソース制限設定の方法を解説します。
## 症状・背景
– 「too many open files」エラーが発生する
– プロセスが使えるメモリを制限したい
– ユーザーごとに異なるリソース制限を適用したい
– systemdサービスのリソース制限を設定したい
## 手順・設定方法
### ステップ1: 現在の制限を確認
“`bash
# 全ての制限を表示
ulimit -a
# ファイルディスクリプタの上限
ulimit -n
# プロセスの最大数
ulimit -u
# ソフト制限とハード制限を別々に表示
ulimit -Sn # ソフト
ulimit -Hn # ハード
“`
### ステップ2: 一時的な制限変更
“`bash
# FD上限㙐65536に拡張(ハード制限の範囲内)
ulimit -n 65536
# 仓想メモリ制限(KB単位)
ulimit -v 2097152
# CPU時間制限(秒)
ulimit -t 60
# 制限なし
ulimit -n unlimited
“`
### ステップ3: 永続化(/etc/security/limits.conf)
“`bash
# 設定ファイル編集
sudo tee -a /etc/security/limits.conf <



