zoukankan      html  css  js  c++  java
  • 分析错误:socket accept failed too many open files

    步骤:
    1、--查看当前各个进程打开的文件句柄数,其结果的第一列表示句柄数,第二列表示进程号
    lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more

    2、--查看单个进程能够打开的最大文件句柄数量(socket连接也算在里面)
    ulimit -n

    3、对比1和2的结果,如果1接近或超过2了,需要将2的配置调大
    ulimit -n <最大文件句柄数>

    4、如果想知道打开的文件句柄数最多的进程是哪个应用程序,可以使用如下命令
    ps -aef|grep <进程号>

    5、如果句柄数调的非常大了,还是不行,可能需要看看/proc/sys/fs/file-max中的值,该值表示系统全局的可用句柄数,可修改
    vim /proc/sys/fs/file-max

    6、对于正在使用(分配出去)的所有的句柄数、未使用的所有的句柄数、可使用的最大的句柄数这3个值,可以通过以下只读文件查看
    vim /proc/sys/fs/file-nr
    提示:当分配出去的句柄数接近最大句柄数,而“未使用的句柄数”远大于零时,表明你遇到了一个“句柄”使用高峰,这意为着你不需要增加file-max的值。
    原文如下:
    When the allocated file handles come close to the maximum, but the number of unused file handles is significantly greater than 0,
    you’ve encountered a peak in your usage of file handles and you don’t need to increase the maximum.

  • 相关阅读:
    <mvc:default-servlet-handler />说明
    sql server 数据库创建链接服务器访问另外一个sql server 数据库
    WebSocket实现简易聊天室
    WebSocket在建立连接时通过@PathParam获取页面传值
    Shiro密码处理
    Java enum应用小结
    Java8 Optional类使用小结
    Java中使用Jedis操作Redis
    前台图片Canvas压缩上传小结
    剪邮票
  • 原文地址:https://www.cnblogs.com/anai/p/5889353.html
Copyright © 2011-2022 走看看