原因

程序打开的文件数过多,如文件、socket、端口

查看

  • ulimit -a查看当前系统设置的最大句柄数(单个进程)
  • lsof -p pid 查看单个进程所有打开的文件详情 lsof -p pid | wc -l 统计
  • 查看系统进程占用句柄数lsof -n|awk ‘{print $2}’|sort|uniq -c|sort -nr|more

    解决

    1. ulimit -n XXX

    重启还原且非root仅能设置最大为4096

    2. 修改系统配置文件/etc/security/limits.conf

    * soft nofile XXX
    * hard nofile XXX 或 * - nofile 8192 最前的 * 表示所有用户,可根据需要设置某一用户