zoukankan      html  css  js  c++  java
  • Mysql启动自己主动设置max_connections为其它值

    背景

    有同学反应。产品连不上,登陆到server。发现连接数不够了。


    接着先重新启动mysql,发如今mysql启动的时候会报Waring

    Warning Changed limits: max_open_files,max_connections=214

    处理

    /etc/security/limits.conf 中设置
    * soft nofile 102400
    * hard nofile 102400

    登出server,又一次登录。
    重新启动mysql,问题解决

    过程

    • 第一时间想到mysql配置得太小,于是找到配置。发现配置的max_connections=5000,明显不是配置问题
    • Linux系统上默认的open files数目为1024, 有时应用程序会报Too many open files的错误,是由于open files 数目不够。

    ulimit -a看下,果然是1024

    疑问

    为什么open files会决定max_connections大小?

    max_connections和table_open_cache在系统上相应的是OS的文件句柄(fd)。假设这两个值添加,那么相应的也要添加OS的max_open_files设置。不然mysql就会依据max_open_files的值,去主动调整这两个设置。

    參考:http://dev.mysql.com/doc/refman/5.5/en/table-cache.html

    2015-07-22记

    參数调整后。今天出现了client连接池用完。

    在数据库运行 show processlist; 发现大量的query end的process:

    | 167 | paas | xxxxxx  | edas        | Query   | 60400 | query end | INSERT INTO CON_METRIC (APP_ID, ECU_ID, MON_TYPE, MON_DATA, CREATE_TIME) VALUES ('ead5f836-c4c7-4ced |

    insert、update、都有,状态都是query end。

    查看数据库,cpu/内存都是正常。

    发现磁盘满了,最后定位到bin-log日志导致两百多G被用完。

    删除掉早期的bin-log。恢复正常

  • 相关阅读:
    shell编程基础干货
    HIVE的高级操作
    Linux service,挂载,定时任务等常用服务
    Linux(二)高级文本处理
    Linux基本使用命令
    07-MySQL 架构介绍
    06-Re: 视图&过程&触发器
    05-安装 MySQL5.7
    [04] 继承&聚合&war
    [03] 仓库&生命周期&插件目标
  • 原文地址:https://www.cnblogs.com/llguanli/p/8594173.html
Copyright © 2011-2022 走看看