zoukankan      html  css  js  c++  java
  • Linux ulimit和动态修改MySQL最大线程数限制

    ulimit是限制进程对资源的使用
    但软件资源限制变化不大,特别是process/file,分别对应nproc和nofile
    nproc可用 ulimit -u 查询;nofile可用 ulimit -n 查询 

    这里提一点,自内核2.6.32之后,引入/etc/security/limits.d/90-nproc.conf
    这就意味/etc/security/limits.d/里面的文件的配置会覆盖/etc/security/limits.conf的配置

    大都数软硬限制的配置文件都位于:/etc/security/limits.conf 

    给个例子,比如修改fd(文件句柄)限制
    * soft nofile NNNNN
    * hard nofile NNNNN 

    确认修改:ulimit -Hn;ulimit -Sn 

     
    那么我们如何动态的修改该值呢?

    在设置MySQL的参数max_connections之外, 还需要考虑设置/etc/security/limits.conf文件的大小
    MySQL是线程模式执行的, 其线程数也会被统计在nproc中, 这可能掩盖或造成对此问题的误判

     

    处理方法:从Linux 2.6.32开始可以使用
    echo -n "Max processes=204800:204800" > /proc/`pidof mysqld`/limits
    来动态修改进程的系统资源limits信息,不用再因为修改这个而去重启实例
    这个方法可以解决遇到的MySQL最大进程数,非常简单方便


    也可以暂时用以下方法缓解mysql连接数报表:

    # cat /etc/sysctl.conf
    net.ipv4.tcp_tw_reuse = 1           #打开重用time_wait状态的socket
    net.ipv4.tcp_tw_recycle = 1        #打开快速回收time_wait状态的socket
    net.ipv4.tcp_fin_timeout = 30    #time_wait时间
    然后sysctl -p重载生效
     
     
    快速修改:
    文件句柄
    echo "* soft nofile 65536" >> /etc/security/limits.conf
    echo "* hard nofile 65536" >> /etc/security/limits.conf
     
    最大线程数
    sed -i '/nproc/s/soft/-/' /etc/security/limits.d/90-nproc.conf
    sed -i '/nproc/s/1024/65535/' /etc/security/limits.d/90-nproc.conf
  • 相关阅读:
    我爱java系列之---【微服务间的认证—Feign拦截器】
    我爱java系列之---【设置权限的三种解决方案】
    581. Shortest Unsorted Continuous Subarray
    129. Sum Root to Leaf Numbers
    513. Find Bottom Left Tree Value
    515. Find Largest Value in Each Tree Row
    155. Min Stack max stack Maxpop O(1) 操作
    painting house
    Minimum Adjustment Cost
    k Sum
  • 原文地址:https://www.cnblogs.com/gomysql/p/3625293.html
Copyright © 2011-2022 走看看