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