记一次服务句柄数Max open files限制不生效的问题
  yx99X8RMvAE0 2023年11月02日 52 0

前言

这个问题对于很多从事linux系统维护工作的人来说简直就是小case,属于小问题,为什么要拉出来单独讲呢,是因为我之前的同事遇到过并且找我咨询,然后现在同事也遇到了这个问题,说明我们对linux系统的理解还是不够透彻,所以单独拿出来讲下


起因

之前的同事找过来说,他们启的mysql服务,文件句柄数不对,以下图片:

记一次服务句柄数Max open files限制不生效的问题_文件描述符



排查思路

1,先问当前mysql用户是用什么用户启动的,他说是mysql用户

2,切入到当前用户执行命令su mysql ,执行命令ulimit -a,查看当前用户的资源限制信息,这个是root用户的截图哈 以下图片:

记一次服务句柄数Max open files限制不生效的问题_文件描述符_02

发现当前用户,open files 为65535,这是正常的

3,查看/etc/security/limits.conf文件内容,执行命令cat /etc/security/limits.conf,这个文件内容是用来设置全局的资源限制的,以下图:

记一次服务句柄数Max open files限制不生效的问题_文件描述符_03

root soft nofile 65535:表示root用户的文件描述符软限制设置为65535。

root hard nofile 65535:表示root用户的文件描述符硬限制设置为65535。

* soft nofile 65535:表示所有用户的文件描述符软限制设置为65535。

* hard nofile 65535:表示所有用户的文件描述符硬限制设置为65535。


也是正常的,我们想要的65535这个限制数


4,询问mysql服务是用什么方式启动,回答是用systemctl托管服务的

首先执行systemctl status mysqld 或者service mysqld status查看mysql systemctl方式启动的配置文件在那个路径上,下图:

记一次服务句柄数Max open files限制不生效的问题_文件描述符_04

打开/usr/lib/systemd/system/mysqld.service 文件在该文件[Service]下添加LimitNOFILE=65535,修改完成后执行

systemctl daemon-reload加载配置,然后询问是否有人,或者有服务正在访问mysql,定下时间进行重启mysql服务生效

执行命令systemctl restart mysqld,生效后就ok了,如图:

记一次服务句柄数Max open files限制不生效的问题_文件描述符_05



小结

排查思路是先从系统级别上对使用用户查看资源限制信息,然后再从系统全局上查看资源限制信息,这个顺序前后都可以,

然后再从服务级别上查看是否有对这个资源限制进行设置,上面的mysql服务使用systemctl管理,是通过systemctl 配置文件里添加 LimitNOFILE=65535来生效,如果你的进程是通过supervisord管控的那么可以查看配置minfds的值

记一次服务句柄数Max open files限制不生效的问题_mysql_06

如果你的服务是通过sh脚本启动的,那么可以在执行启动进程前加个命令

记一次服务句柄数Max open files限制不生效的问题_mysql_07

这样也是可以的

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  D04qQxYJZ4A6   2023年11月19日   24   0   0 mysqljava读写分离
  eHipUjOuzYYH   2023年12月10日   29   0   0 mysqlsqlUser
ab
  KRsXEGSB49bk   2023年11月28日   21   0   0 打开文件句柄文件描述符
  jnZtF7Co41Wg   2023年11月24日   31   0   0 mysqlApachecentos
  oNkSXggMkQHo   2023年11月24日   30   0   0 Dockermysql
  D04qQxYJZ4A6   2023年11月19日   37   0   0 mysqlredisphp
  9JCEeX0Eg8g4   2023年11月28日   16   0   0 主数据数据库mysql
  9JCEeX0Eg8g4   2023年12月11日   26   0   0 mysql配置文件