zoukankan      html  css  js  c++  java
  • /etc/security/limits.conf的相关说明

    如tomcat的mysql连接数限制,启动tomcat时发现连不上mysql,有可能就是文件打开数太小限制的,可以修改/etc/security/limits.conf文件,该文件说明如下

    通过ulimit -n命令可以查看Linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值。那么应该在哪里设置呢?

    最正确的做法是在/etc/security/limits.conf里设置:

    [root@localhost security]# ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 30518
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 1024
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 10240
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 1024
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    [root@localhost security]# ulimit -n 10240
    [root@localhost security]# ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 30518
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 10240
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 10240
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 1024
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    [root@localhost security]1. 命令用法
     
    命   令:ulimit
    功   能:控制shell程序的资源
    语  法:ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大 小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆栈大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>] 
        补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。 
        参  数: 
        -a  显示目前资源限制的设定。  
        -c <core文件上限>  设定core文件的最大值,单位为区块。  
        -d <数据节区大小>  程序数据节区的最大值,单位为KB。  
        -f <文件大小>  shell所能建立的最大文件,单位为区块。  
        -H  设定资源的硬性限制,也就是管理员所设下的限制。  
        -m <内存大小>  指定可使用内存的上限,单位为KB。  
        -n <文件数目>  指定同一时间最多可打开的文件数。  
        -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。  
        -s <堆栈大小>  指定堆叠的上限,单位为KB。  
        -S  设定资源的弹性限制。  
        -t <CPU时间>  指定CPU使用时间的上限,单位为秒。  
        -u <进程数目>  用户最多可启动的进程数目。 
        -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。
    2. 系统调优

        如前所述, ulimit -a 用来显示当前的各种用户进程限制。 
        Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,
        设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个: 
        ulimit -u 10000 
         对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,
         最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。 
         ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024 
         其他建议设置成无限制(unlimited)的一些重要设置是: 

         数据段长度:ulimit -d unlimited 
         最大内存大小:ulimit -m unlimited 
         堆栈大小:ulimit -s unlimited 
         CPU 时间:ulimit -t unlimited 
         虚拟内存:ulimit -v unlimited 
      
         暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
         永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如: 

    1) 解除 Linux 系统的最大进程数和最大文件打开数限制:
            vi /etc/security/limits.conf
            # 添加如下的行
            * soft noproc 11000
            * hard noproc 11000
            * soft nofile 4100
            * hard nofile 4100 
           说明:* 代表针对所有用户
                noproc 是代表最大进程数
                nofile 是代表最大文件打开数 
    2) 让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:
            a、vi /etc/ssh/sshd_config 
                 把 UserLogin 的值改为 yes,并把 # 注释去掉
            b、重启 sshd 服务:
                  /etc/init.d/sshd restart
    3) 修改所有 linux 用户的环境变量文件:
    vi /etc/profile 
    ulimit -u 10000
    ulimit -n 4096
    ulimit -d unlimited 
    ulimit -m unlimited 
    ulimit -s unlimited 
    ulimit -t unlimited 
    ulimit -v unlimited 

    /**************************************

    有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
    修改2个文件。
    1) /etc/security/limits.conf
    vi /etc/security/limits.conf
    加上:
    * soft nofile 8192
    * hard nofile 20480
    2) /etc/pam.d/login
    session required /lib/security/pam_limits.so
    **********
    另外确保/etc/pam.d/system-auth文件有下面内容
    session required /lib/security/$ISA/pam_limits.so
    这一行确保系统会执行这个限制。
    ***********
    3) 一般用户的.bash_profile
    #ulimit -n 1024
    重新登陆ok

    3. /proc目录:
    1)/proc目录里面包括很多系统当前状态的参数,例如:引用
    /proc/sys/fs/file-max
    /proc/sys/fs/inode-max


    是对整个系统的限制,并不是针对用户的;
    2)proc目录中的值可以进行动态的设置,若希望永久生效,可以修改/etc/sysctl.conf文件,并使用下面的命令确认:

    # sysctl -p


    例如增加:

    引用
    fs.file-max=xxx
    fs.inode-max=xxx

    来源:https://www.cnblogs.com/zhangmingcheng/p/6438994.html

  • 相关阅读:
    C# 从服务器下载文件
    不能使用联机NuGet 程序包
    NPOI之Excel——合并单元格、设置样式、输入公式
    jquery hover事件中 fadeIn和fadeOut 效果不能及时停止
    UVA 10519 !! Really Strange !!
    UVA 10359 Tiling
    UVA 10940 Throwing cards away II
    UVA 10079 Pizze Cutting
    UVA 763 Fibinary Numbers
    UVA 10229 Modular Fibonacci
  • 原文地址:https://www.cnblogs.com/javabg/p/10007280.html
Copyright © 2011-2022 走看看