纸上得来终觉浅,绝知此事多宕机...记录一下自己很蠢的一次故障处理过程。

  上周的时候,一个刚上线的系统又开始反映登不上了,因为最近这个系统也老是出现这个问题,开发也一直在找问题中,所以也没太在意。于是登上操作系统,mysql -uroot -p登录数据库,然后就一直没反应,登不上...

  交代一下,mysql是装在mysql用户下的,装的时候虽然对数据库参数有进行调优,但是操作系统层面没做调整,所以mysql用户的最大文件打开数限制为默认的1024,用ulimit -n可以查询。然后我在用mysql的root账号登录数据库的时候也是在mysql这个系统用户下登录的,然后看了下当时服务器的负载,cpu和内存这些都很正常,但是存在大量应用到数据库的连接。

  到这儿问题应该就很清楚了,系统用户mysql文件打开数可能达到了最大限制,当然不能打开更多的连接。

  然而当时我并没有想到这一点,我想到的不是换个系统用户登录,不是停掉应用,而是重启数据库。。。而且这个数据库跑的不只这一个业务,虽然也都不是什么重要的业务。。。

  于是我就准备重启数据库,仍然是在mysql用户下执行mysqladmin -uroot -p shutdown。毫无疑问,这肯定也是没有反应的,道理跟前面root账号连不上数据库是一样的,ctrl+C后有以下报错

^Cmysqladmin: connect to server at 'localhost' failed
error: 'Lost connection to MySQL server at 'waiting for initial communication packet', system error: 4'

  然后我就做了个更蠢的操作,虽然想着可能会丢数据,杀掉了mysql进程。。。然后重启mysql,系统也就可用了。是真的很蠢,做完之后马上就想起有多种更好的处理方法,却选择了最蠢的一种。

  今天再登上数据库看的时候,发现有几个参数跟我配置文件里写的不一样,比如max_connections、table_open_cache等,都是设置的默认值,看了下上次启动日志,确实也有告警

--15T08::.038750Z  [Warning] Changed limits: max_open_files:  (requested )
--15T08::.038911Z [Warning] Changed limits: max_connections: (requested )
--15T08::.038916Z [Warning] Changed limits: table_open_cache: (requested )

  很明显,mysql根据参数设置计算了实例需要打开的最大文件数超过了当前系统用户的最大限制,于是没有使用该参数而使用了默认值。当然启动起来数据库也是可用的,启起来后也可以手动把设置参数

set global max_connections=;
set global table_open_cache=;

  只不过就很有可能出现我之前出现的问题了,也就是数据库连接数并没有达到max_connections的限制,用户仍然连接不上。需要说明的是,正常情况下就算连接数满了,mysql仍然会为root用户保留一个连接,也就是root用户是可以登录数据库查看问题的。

  要解决也很简单,增大操作系统用户mysql的限制值就行了,在配置文件/etc/security/limits.conf后面加上新的限制值就行了。

mysql   soft    nofile
mysql hard nofile

mysql 系统用户最大文件打开数限制的更多相关文章

  1. Linux下设置最大文件打开数nofile及nr_open、file-max

    在开发运维的时候我们常常会遇到类似“Socket/File: Can’t open so many files”,“无法打开更多进程”,或是coredump过大等问题,这些都可以设置资源限制来解决.今 ...

  2. 【Linux命令】ulimit设置最大文件打开数

    一.简介 在Linux下有时会遇到Socket/File : Can't open so many files的问题.其实Linux是有文件句柄限制的,而且Linux默认一般都是1024(阿里云主机默 ...

  3. ulimit 命令详解 socket查看linux最大文件打开数

    ulimit 命令详解     Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限 ...

  4. linux最大文件打开数和swap限制

    linux最大文件打开数和swap限制   逑熙 关注 2017.07.24 15:39* 字数 388 阅读 314评论 0喜欢 0 linux 2.6+的核心会使用硬盘的一部分做为SWAP分区,用 ...

  5. Centos7修改默认最大文件打开数

    方法一: [root@bogon ~]# vi /etc/systemd/system.conf [root@bogon ~]# cat /etc/systemd/system.conf # This ...

  6. 调整Linux的最大文件打开数

    要调整一下Linux的最大文件打开数,否则squid在高负载时执行性能将会很低.另外,在Linux下面部署应用时,有时候会遇上 Socket/File:Can’t open so many files ...

  7. [转帖]备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改

    备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改 https://blog.csdn.net/toontong/article/details/50440272 ...

  8. linux 最大文件打开数

    配置文件 vim /etc/security/limits.conf   # /etc/security/limits.conf##This file sets the resource limits ...

  9. Centos修改文件打开数限制

    一.查看系统限制最大打开数 cat /proc/sys/fs/file-max 还有一个问题是file-max最大能设置多大呢?一个经验算法是 256个fd 需4M内存.例如8G内存,8*1024/4 ...

随机推荐

  1. atitit.js 与c# java交互html5化的原理与总结.doc

    atitit.js 与c# java交互html5化的原理与总结.doc 1. 实现html5化界面的要解决的策略1 1.1. Js交互1 1.2. 动态参数个数1 1.3. 事件监听2 2. sen ...

  2. 结对编程的感想&收获

    关于结对编程的感想.感受,见我的另一篇随笔——<构建之法>结对编程   感想 下面我来谈谈本次结对编程的收获以及发现的问题 收获 ①这是我人生中第一次做UI界面设计,刚拿到这个题目还是比较 ...

  3. 2017年秋季个人阅读计划 ---《掌握需求过程》第二版 pdf

    这学期我们学习是软件需求分析,为了扩展视野,我们老师要求精读一本书,我根据老师推荐的书籍中找到了一本,名字叫做<掌握需求过程>,我大概浏览了一下这本书,这本书论述了软件开发中的重要课题—如 ...

  4. Entity Framework对同一张表配置一对多关系

    在实际的项目开发中,可能会遇到同一张表同时保存自身和上级(或下级)的信息(一般是通过设置一个上级主键[ParentId]的列与主键[Id]关系) 例如:城市库,有国家.省.市...,省的ParentI ...

  5. [翻译] InstagramPhotoPicker

    InstagramPhotoPicker Present Image Picker like Instagram. 展示图片选择器,像Instagram这款应用一样. Installation - 安 ...

  6. 用于mask遮罩效果的图片配合resizableImage使用

    用于mask遮罩效果的图片配合resizableImage使用 效果: 作为素材用的图片: 源码: // // ViewController.m // Rect // // Created by Yo ...

  7. 铁乐学python_day02-作业

    1.判断下列逻辑语句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 解题思路 ...

  8. hibernate连接mysql,查询条件中有中文时,查询结果没有记录,而数据库有符合条件的记录(解决方法)

    今天在另一台服务器上重新部署了网站,结果出现了以下问题: ——用hibernate做mysql的数据库连接时,当查询条件中有中文的时候,查询结果没有记录,而数据库中是存在符合条件的记录的. 测试了以下 ...

  9. HTTP 错误 404.3 - Not Found的问题(WCF)

    模块 StaticFileModule 通知 ExecuteRequestHandler 处理程序 StaticFile 错误代码 0x80070032 请求的 URL http://10.101.3 ...

  10. SharePoint 2007——内容管理之归档篇

    如果需要使用这个功能普通的站点上(没有使用Record Center站点模板的站点),必须激活'Office SharePoint Server Publishing’  featue. 在使用Rec ...