ユーザ毎のオープンファイル数変更(Debian)

tomcatで「java.net.SocketException: Too many open files」エラーが発生したのでその対処。
自前のtomcatはsuでwww-dataユーザで起動しているため、www-dataユーザでのオープンファイル上限が制限されている。rootであれば「ulimit -n」で設定すればよいが、www-dataユーザの場合、大きい値を指定すると「error setting limit (Operation not permitted)」エラーが発生し設定できない。
「ulimit -n」で指定できる上限を大きくするには以下の設定を行う。

/etc/security/limits.conf

www-data         hard    nofile          16384

/etc/pam.d/su

session    required   pam_limits.so

ちなみにシステム全体のオープンファイル上限は以下で設定されている。

/proc/sys/fs/file-max

808478

コメントをどうぞ