您的位置:1010cc时时彩经典版 > 1010cc安卓版 > Linux资源使用配置文件,mysql中一个普通ERROR

Linux资源使用配置文件,mysql中一个普通ERROR

发布时间:2019-11-24 18:22编辑:1010cc安卓版浏览(167)

    几天前接到测验职员反应,测验蒙受前端应用程序无连接mysql数据库,登陆mysql服务器,查看错误日志,开掘存如下报错:

    关于RHEL6中ulimit的nproc限制

    Linux财富选择安顿文件 /etc/security/limits.conf

    ulimit命令参数及用法

    ERROR 1135 : Can't create a new thread ;if you are not out of available memory,you can consult the manual for a possible OS-dependent bug

     

     

    第一反应感到大概是跟ulimit限定连接数有关,文件陈诉符缺乏用。接下来检查计划件 /etc/security/limits.conf 相关结果如下:

    ulimit 用于约束 shell 运转进程所占用的财富,支持以下各体系型的限量:所创设的基业文件的轻重、进度数据块的高低、Shell 进度创制文件的大小、内部存款和储蓄器锁住的抑扬顿挫、常驻内部存储器集的大大小小、展开文件陈述符的数码、分配仓库的最大尺寸、CPU 时间、单个顾客的最大线程数、Shell 进度所能使用的最大虚构内部存款和储蓄器。同不常间,它补助硬能源和软能源的限量。 

     

    功用表明:调控shell程序的财富。 

    复制代码 代码如下:#for rootroot soft nofile 65535root hard nofile 65535# End of filemysql soft nproc 65536mysql hard nproc 65536mysql soft nofile 65535mysql hard nofile 65535

     www.2cto.com  

     

    补给表达:ulimit为shell内建命令,可用来决定shell施行顺序的财富。 

    配置没反常,mysql的ulimit约束已经展开。

    Linux文件汇报符可参见作者以前的篇章:  

    Linux就以此范儿P561

    参  数: 

    复制代码 代码如下:# sudo -u root bash -c " ulimit -a "core file size 0data seg size unlimitedscheduling priority 0file size unlimitedpending signals 62591max locked memory 64max memory size unlimitedopen files 1024pipe size 8POSIX message queues 819200real-time priority 0stack size 10240cpu time unlimitedmax user processes 1024virtual memory unlimitedfile locks unlimited

    关于路虎极光HEL6中ulimit的nproc限定,SportageHEL6和奔驰G级HEL5照旧有点细节上的界别的:

    Linux处于稳固的思量,默许情况下对系统财富都做了节制,有生龙活虎对Linux发行版会保守一些,借使不是很极端的话,尽量不要涂改

    -a   显示目前财富限定的设定。 

    发现max user processes值仍为1024.

    近来shell下转移客户可展开进度数 

    还只怕有叁个约束最大展开文件陈诉符的地点,通过procfs文件系统来调节 cat /proc/sys/fs/file-max 

    -c   设定core文件的最大值,单位为区块。 

    而在Centos5里边,只须在/etc/security/limits.conf增加如下两行:点击折叠或展开root soft nofile 65535 root hard nofile 65535对应的uilmit -u 就能够是65535. 新兴估计centos6的客商的ulimit约束是或不是还应该有此外的布局文件做连锁的节制呢?果如其言,发未来/etc/security/limits.d/目录下,有三个名称叫:90-nproc.conf的配备文件,打开看看哪些内容:[root@fztest ~]# cat /etc/security/limits.d/90-nproc.conf

    用作不常间约束制,ulimit能够功用于通过接纳其命令登陆的 shell 会话,在对话终止时便结束约束,并不影响于任何 shell 会话。

     

    -d    <数据节区大小> 程序数据节区的最大值,单位为KB。 

    复制代码 代码如下:# Default limit for number of user's processes to prevent# accidental fork bombs.# See rhbz #432903 for reasoning.

    图片 1  

    其一文件重大是用来约束客户对系统能源的选拔,具体的采纳格局 man 5 limits.conf,里面便付给了详尽的用法

    -f     <文件大小> shell所能营造的最大文件,单位为区块。 

    * soft nproc 1024而在安顿文件/etc/security/limits.d/90-nproc.conf中的 “* soft nproc 1024”的乐趣是任何客户的最大max user processes为1022个,也便是说,系统的别的客商均不得以由此ulimit -u来纠正。真的是那样吗?我们来扩充如下验证操作:

    更改limits.conf配置文件生效

    1. user@db-2:~$ cat /etc/security/limits.conf   
    2. # /etc/security/limits.conf  
    3. #  
    4. #Each line describes a limit for a user in the form:  
    5. #  
    6. #<domain>        <type>  <item>  <value>  
    7. #  
    8. #Where:  
    9. #<domain> can be:  
    10. #        - an user name  
    11. #        - a group name, with @group syntax  
    12. #        - the wildcard *, for default entry  
    13. #        - the wildcard %, can be also used with %group syntax,  
    14. #                 for maxlogin limit  
    15. #  
    16. #<type> can have the two values:  
    17. #        - "soft" for enforcing the soft limits # 软限定,必需比硬约束的值要小  
    18. #        - "hard" for enforcing hard limits     # 硬限制  
    19. #  
    20. #<item> can be one of the following:  
    21. #        - core - limits the core file size (KB)  
    22. #        - data - max data size (KB)  
    23. #        - fsize - maximum filesize (KB)  
    24. #        - memlock - max locked-in-memory address space (KB)  
    25. #        - nofile - **max number of open files **   # 最大张开的文本数(以文件描叙符,file descriptor计数)  
    26. #        - rss - max resident set size (KB)  
    27. #        - stack - max stack size (KB)  
    28. #        - cpu - max CPU time (MIN)  
    29. #        - nproc - max number of processes  
    30. #        - as - address space limit  
    31. #        - maxlogins - max number of logins for this user  
    32. #        - maxsyslogins - max number of logins on the system  
    33. #        - priority - the priority to run user process with  
    34. #        - locks - max number of file locks the user can hold  
    35. #        - sigpending - max number of pending signals  
    36. #        - msgqueue - max memory used by POSIX message queues (bytes)  
    37. #        - nice - max nice priority allowed to raise to  
    38. #        - rtprio - max realtime priority  
    39. #  
    40. #<domain>      <type>  <item>         <value>  
    41. #  
    42. root            soft    nofile          200000  
    43. root            hard    nofile          200000  
    44. admin           hard    nofile          65536  
    45. admin           soft    nofile          65536  
    46. # End of file  

    -H  设定财富的硬性约束,也正是管理员所设下的限定。 

    复制代码 代码如下:[oracle@fztest ~]$ ulimit -u 65535-bash: ulimit: max user processes: cannot modify limit: Operation not permitted[root@fztest ~]# ulimit -u 65535[root@fztest ~]# ulimit -u 65535

    [[email protected] ~]# ulimit -a         //查看当前布置文件ulimit全局周到

    每行的格式:
    用户名/用户组    类型(硬限制、软限制)   选项     值

    -m    <内部存款和储蓄器大小> 钦命可使用内部存款和储蓄器的上限,单位为KB。

    由上述操作,可以预知事实上那几个范围是对除root以外的普通客商进行的限量,root能够通过ulimit -u 65535来开展即时校订,只对当前对话生效。风流浪漫旦重启服务器,便会失灵(重新恢复生机max user processes -u 1024卡塔尔。

    core file size          (blocks, -c) 0

    举个例子超级多相恋的人或然在应用mysql的时候蒙受too many open files的怪诞,那个时候便足以透过将运转mysqld的客商的 nofile(最大张开文件数)那一个值增大学一年级点,举例
    db_running_user      -      nofile    设定贰个不容争辩的值  
    注意上面包车型地铁第二列 ‘-’表示hard和soft,能够来得的为soft和hard写两行

    -n     <文件数量> 内定同期最多可开启的文书数。

    接下去,尝试通过修正这些布局文件,来验证max user processes的值是还是不是会转移。将/etc/security/limits.d/90-nproc.conf中的1024修正为65535后,实践如下命令:

    data seg size           (kbytes, -d) unlimited

    自个儿那只是举二个事例,这一个文件还是能配备相当多财富的使用,但是平时的意况下用暗中认可的就行,当你有新鲜要求依旧自身对这一个参数的首尾又一定驾驭,你可以去改那一个暗许的参数,查看当前客户的这个财富使用范围情状能够行使 ulimit -a(查看ulimit的行使办法,用man ulimit无效,能够用help ulimit)

    -p     <缓冲区大大小小> 钦赐管道缓冲区的高低,单位512字节。

    复制代码 代码如下:[root@fztest ~]# sudo -u root bash -c " ulimit -a" core file size 0data seg size unlimitedscheduling priority 0file size unlimitedpending signals 95191max locked memory 64max memory size unlimitedopen files 65535pipe size 8POSIX message queues 819200real-time priority 0stack size 10240cpu time unlimitedmax user processes 65535virtual memory unlimitedfile locks unlimited

    scheduling priority             (-e) 0

    那就是说对它的订正什么日期生效呢?每一次重复login的时候生效,至于原因则是本鬼盖谋的那篇小说里面说了。

    -s     <堆成堆大小> 钦点堆集的上限,单位为KB。

    简单来讲,校正生效。假诺不想改良/etc/security/limits.d/90-nproc.conf这一个文件,也得以将此限定加多到/etc/rc.local文件中,让其开机应用生效就可以。 成功改进了root客户的max user processes后,继续接受root顾客运维mysqld_safe脚本,稳固运维了八个深夜,一切不荒谬。 至此,ELX570RO福睿斯 1135 : Can't create a new thread 那几个主题素材终于告以段落。

    file size               (blocks, -f) unlimited

    友好的疑点:

    -S  设定能源的弹性约束。 

    pending signals                 (-i) 1829

    1. 为啥要同时有soft和hard那多个节制?那么些soft和hard应该是表示三种档期的顺序的阀值吧,绝不可超过hard限定,可是能够超越soft约束,有三个hard不就够了么?

    -t   钦定CPU使用时间的上限,单位为秒。 

    max locked memory       (kbytes, -l) 64

    知道设置两个参数的意义在于:hard是一个上限在运行期间不可以调大但���以调小,而soft只能比hard小,在运行期间可以调大。 我也用mysqld测试过,它读取的是soft值,但是我又不解的是,既然修改/etc/security/limits.conf要重新login才生效,那么这些修改的意义不就没有了吗?因为要重新登录,意味着服务要重启

    -u    <程序数目> 顾客最多可打开的程序数目。 

    max memory size         (kbytes, -m) unlimited

    应该是这些解释正如客观,soft是叁个警报值,而hard则是叁个实在含义的阀值,超过就能报错

    -v    <虚构内部存款和储蓄器大小>  钦定可应用的虚构内部存储器上限,单位为KB。

    open files                      (-n) 1024

     

      www.2cto.com  

    pipe size            (512 bytes, -p) 8


    改最瓜达拉哈拉接数
    vi  /etc/security/limits.conf
     
    *   hard   nproc    h1
    *   hard   nofile     h1

    ulimit -a来查看全部限定值

    POSIX message queues     (bytes, -q) 819200

    vi /etc/security/limits.d/90-nproc.conf

     

    real-time priority              (-r) 0

    *   hard    nproc    h2

    01

    stack size              (kbytes, -s) 10240

    echo  '*   hard   nproc    65535'  >>/etc/security/limits.conf  //centos5
    echo  '*   hard   nofile     65535'  >>/etc/security/limits.conf
    echo  '*   hard    nproc    65535'  >>/etc/limits.d/90-nproc.conf  //centos6
    

    core file size          (blocks, -c) 0

    cpu time               (seconds, -t) unlimited

     

    02

    max user processes              (-u) 1024

    细心:  hard    nproc    h2,root客商不受nproc    约束

    data seg size           (kbytes, -d) unlimited

    virtual memory          (kbytes, -v) unlimited

     

    03

    file locks                      (-x) unlimited

     

    scheduling priority             (-e) 0

    [[email protected] ~]# vim /etc/security/limits.conf

    lnmp第二有的

    04

    [[email protected] ~]# grep '^*' /etc/security/limits.conf

    file size               (blocks, -f) unlimited

    *       soft    nproc       10240

    nginx配置文件

    05

    *       hard    nproc       10240

    nginx.conf
    user nobody nobody; //使用哪个用户和组来启动子进程 主进程必须是root 1024以下的端口必须是root用户监听
    worker_processes 2; //开启多少个子进程
    error_log /usr/local/nginx/logs/nginx_error.log crit; //日志级别crit
    pid /usr/local/nginx/logs/nginx.pid;
    worker_rlimit_nofile 51200; //打开文件描述符的个数
    events
    {
    use epoll; //事件模型
    worker_connections 6000; 每个worker支持多少连接 曾经设置过10240 nginx做反向代理 导致502错误 最好不要设置那么大
    }
    

    pending signals                 (-i) 256590

    *       soft    nofile      10240

     

    06

    *       hard    nofile      10240

    max locked memory       (kbytes, -l) 64

    [[email protected] ~]#

    07

     

    max memory size         (kbytes, -m) unlimited

    分离当前客户,重新登入就可以让前边纠正的limits生效

    08

    [[email protected] ~]# ulimit -n

    open files                      (-n) 1024

    10240

    09

    [[email protected] ~]# ulimit -u         //开采nproc并不曾像nofile雷同而更换

    pipe size            (512 bytes, -p) 8

    1024

    10

    [[email protected] ~]#

    POSIX message queues     (bytes, -q) 819200

     

    11

    经google寻觅得悉,中华VHEL6下引进了布署文件/etc/security/limits.d/90-nproc.conf

    real-time priority              (-r) 0

    (参见了@杨德华Devin 作品redhat5 和redhat6 root顾客分歧的ulimits卡塔尔国

    12

    [[email protected] ~]# cat /etc/security/limits.d/90-nproc.conf

    stack size              (kbytes, -s) 10240

    # Default limit for number of user's processes to prevent

    13

    # accidental fork bombs.

    cpu time               (seconds, -t) unlimited

    # See rhbz #432903 for reasoning.

    14

     

    max user processes              (-u) 80920

    *          soft    nproc     1024

    15

    [[email protected] ~]#

    virtual memory          (kbytes, -v) unlimited

    本文由1010cc时时彩经典版发布于1010cc安卓版,转载请注明出处:Linux资源使用配置文件,mysql中一个普通ERROR

    关键词: