zoukankan      html  css  js  c++  java
  • 诡异的too manany connections报错

    问题现象:

    应用重启,日志里面报错too manany connections

    问题分析:

    线上该业务线应用全部重启,一个有38个应用,每个应用3台服务器,每台服务器启动5个链接:

    num=38*3*5=570;

    570<2048,我们默认的应用最大连接数是2048,怎么会报too manany connections错误。

    查看配置文件/etc/my.cnf,确实是max_connections=2028;

    登录数据库:

    mysql> show variables like '%max%connection%';
    +----------------------+-------+
    | Variable_name | Value |
    +----------------------+-------+
    | max_connections | 214 |
    | max_user_connections | 0 |
    +----------------------+-------+
    2 rows in set (0.00 sec)
    

    神奇的max_connetions 居然成了214,经排查并没有认为修改过该参数值。

    [root@mysq-60-103 ~]# ps -ef|grep mysqld_safe
    root 2676 1815 0 12:32 pts/0 00:00:00 grep mysqld_safe
    mysql 23450 1 0 Oct10 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/mysql/data --pid-file=/mysql/data/mysql.pid

    查看mysql实例启动进程,是使用mysql用户启动的,而在系统参数配置中,除mysql用户外,其它用户都限制了最大创建连接为1024.因为2048>1024

    所以以mysql用户启动mysql实例时,会从默认值214开始分配,以至于max_connetions =214;

    [root@mysql-zxzs-60-103 ~]# cat /etc/security/limits.d/90-nproc.conf
    # Default limit for number of user's processes to prevent
    # accidental fork bombs.
    # See rhbz #432903 for reasoning.

    * soft nproc 1024
    root soft nproc unlimited

    解决方式:

    1、以root用户启动mysql实例;

    2、向 /etc/security/limits.d/90-nproc.conf文件中追加如下参数:

    mysql soft nproc 65535
    mysql hard nproc 65535

    使配置生效后,再已mysql用户启动mysql实例。

  • 相关阅读:
    【测试】Testing as a Service (TaaS)
    【Git】git cherry-pick 使用
    【2021】开篇
    【Java】容器类的实现和互相转换
    【Testing】API Testing
    【WeeklySoftwareTesting】
    【Oracle】XMLTABLE介绍
    【Oracle】创建定时任务
    【Java】Retryer重试机制
    表格数据导出报表
  • 原文地址:https://www.cnblogs.com/janehoo/p/5956070.html
Copyright © 2011-2022 走看看