るいすときのこの物語

オタクエンジニアの雑記

コンテナ上で何もできなくなる「Too many open files.」


Dockerに限った話ではなくOpenVZとかLXCでも同じ方法で解決できる”はず”

 

fs.inotifyを弄る

fs.inotify.max_user_instances = 96290160
fs.inotify.max_queued_events = 65536
fs.file-max = 96290160
fs.inotify.max_user_watches = 9280000
sysctl -p

 

what is 'fs.inotify'

/proc インターフェース 以下のインターフェースは、inotify で消費されるカーネルメモリの総量を制限するのに使用できる: /proc/sys/fs/inotify/max_queued_events このファイルの値は、アプリケーションが inotify_init(2) を呼び出すときに使用され、対応する inotify インスタンスについてキューに入れられるイベントの数の上限を設定する。この制限を超えたイベントは破棄されるが、 IN_Q_OVERFLOW イベントが常に生成される。 /proc/sys/fs/inotify/max_user_instances 1 つの実ユーザ ID に対して生成できる inotify インスタンスの数の上限を指定する。 /proc/sys/fs/inotify/max_user_watches 作成可能な監視対象の数の実 UID 単位の上限を指定する。

http://wadap.hatenablog.com/entry/20100123/1264211202