什麼是 "too many open files" 錯誤,這是因為 linux 有限限定起開資源的數量,socket 連線和 file 都算是資源的一種

用 centos7 (Systemd) 必須要修改 /etc/systemd/system.conf/etc/systemd/user.conf (只用在 GUI 介面登入有效),另外非 GUI 介面 ( terminal ) 需要再修改 /etc/security/limit.conf

1. 首先怎麼查詢 open file 目前的上限?

ulimit -nulimit -a

2. 如何修改 open file 的上限值
  1. 打開 /etc/security/limit.conf
  2. 加入
* hard nofile 65535
* soft nofile 65535
3. 查詢某個 process 使用的資源量

lsof -p {$pid}|wc -l

Reference:
https://superuser.com/questions/1200539/cannot-increase-open-file-limit-past-4096-ubuntu/1200818#1200818
http://unix.stackexchange.com/questions/36841/why-is-number-of-open-files-limited-in-linux
https://onebitbug.me/2014/06/23/setting-limit-in-linux/
http://www.cnblogs.com/derekchen/archive/2012/04/13/2445516.html