zoukankan      html  css  js  c++  java
  • java.io.FileNotFoundException: Too many open files

    http://blog.sina.com.cn/s/blog_53d3c24a0100mpm2.html

    服务器做压力测试,然后看日志有很多这个错误    java.io.FileNotFoundException: Too many open files

    早上起来tomcat又挂了 = =|||
    老方法查日志,发现报  java.io.FileNotFoundException: Too many open files, 日了难道静发程序没关文件?
    继续查,程序没问题……二了……
    看看linux的open files得了,敲入ulimit -a
    ===========================
    open files                                   255
    ===========================
    原来是这里阿.....
    立即 ulimit -n 2048
    ok。
     
    等等...貌似还要改/etc/security/limits.conf
    加入:* - nofile 2048
    退出登陆
    再ssh进来就效了
    ok。
     
    =============cut line===========
    /etc/security/limits.conf 资料
     
      linux为了适应低性能电脑,所以默认情况下的系统参数比较低,那么我们就需要修改ulimit来提高linux的运行效率。
      1、打开/etc/security/limits.conf,在里面填写:
      * soft nproc 65536
      * hard nproc 65536
      * soft nofile 8192
      * hard nofile 65535
      * - sigpending 65536
      也可以填写其他项目,根据具体需要设置,设置后保存-重启,通过命令ulimit -a查看变化。
     

      limits.conf的工作原理:

           limits.conf的后端是这样工作的:limits.conf是pam_limits.so的配置文件,然后/etc/pam.d/下的应用程序调用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。
           例:限制admin用户登录到sshd的服务不能超过2个
           在/etc/pam.d/sshd 中添加 session required pam_limits.so
           在/etc/security/limits.conf中添加 admin - maxlogins 2
           查看应用程序能否被PAM支持,用ldd
           limits.conf文件的参数
           Limits.conf文件的参数可以设置成以下两种形式之一:
           暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
           永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件之一(例如 ~/.profile),即特定于 shell 的用户资源文件;或者通过编辑 /etc/security/limits.conf.
           1.core - 限制内核文件的大小
           何谓core文件,当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。 core文件是个二进制文件,需要用相应的工具来分析程序崩溃时的内存映像。
           系统默认core文件的大小为0,所以没有创建。可以用ulimit命令查看和修改core文件的大小。
             $ulimit -c
    0
    $ ulimit -c 1000
    $ ulimit -c
    1000

           -c 指定修改core文件的大小,1000指定了core文件大小。也可以对core文件的大小不做限制,如:
             # ulimit -c unlimited
    #ulimit -c
    unlimited

           如果想让修改永久生效,则需要修改配置文件,如 .bash_profile、/etc/profile或/etc/security/limits.conf.
           2.nofile - 打开文件的最大数目
           对于需要做许多套接字连接并使它们处于打开状态的应用程序而言,最好通过使用 ulimit –n,或者通过设置nofile 参数,为用户把文件描述符的数量设置得比默认值高一些
  • 相关阅读:
    mybatis的延时加载缓存机制
    mybatis03
    事务
    codeforces-200B
    codeforces-339B
    codeforces-492B
    codeforces-266B
    codeforces-110A
    codeforces-887B
    codeforces-69A
  • 原文地址:https://www.cnblogs.com/telwanggs/p/14318376.html
Copyright © 2011-2022 走看看