• 诡异的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实例。

  • 相关阅读:
    Django U2 模型
    Django U0 使用Django
    Django H2 文档查看
    python模块--time模块/os模块/sys模块
    python模块-logging和collections以及random模块
    python-hashlib模块configparser模块logging模块
    python模块--序列化
    python面向对象的特殊方法和单例模式
    python类属性和类方法以及静态方法和反射
    python面向对象的三个特性
  • 原文地址:https://www.cnblogs.com/janehoo/p/5956070.html
Copyright © 2020-2023  润新知