【问题标题】:Can`t find the source of max open files(ulimit) for mysql-process找不到mysql进程的最大打开文件(ulimit)的来源
【发布时间】:2019-06-24 16:52:29
【问题描述】:

我被委派管理 MySQL 服务器(RHEL 7),现在我遇到了一个奇怪的情况。 RPM-Package 来自 Oracle,它使用 init.d-scripts 而不是 systemd。如果我检查正在运行的 MySQL-Server-Process 的限制,我得到 5000。让我告诉你我是如何检查的:

ps -ef | grep mysql | grep -v grep
root     17184     1  0  2018 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/db/data1 --pid-file=/var/run/mysqld/mysqld.pid
mysql    17902 17184  0  2018 ?        01:14:22 /usr/sbin/mysqld --basedir=/usr --datadir=/db/data1 --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysql/mysqld.err --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306

cat /proc/17902/limits 
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             15066                15066                processes 
Max open files            5000                 5000                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       15066                15066                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us  

如您所见,“Max open files”硬性和软性限制设置为 5000。我的问题是:这个值设置在哪里? 我已经检查了以下文件:

  • /etc/security/limits.conf => 这个文件是空的,除了一些注释
  • /etc/security/limits.d/20-nproc.conf => 这是limits.d下的唯一文件。内容:

    *          soft    nproc     4096
    root       soft    nproc     unlimited
    
  • ulimit -n 作为根:1024

  • ulimit -n as user mysql: 1024

  • /etc/my.cnf 不包含 max_open_files 值

  • /etc/my.cnf.d 为空

知道这个值是在哪里设置的吗?

【问题讨论】:

    标签: mysql rhel init.d


    【解决方案1】:

    这应该取决于您在 /etc/security/limits.conf 中设置的内容,有关更多详细信息,请参见此处https://unix.stackexchange.com/questions/152186/mysql-max-open-files-more-than-1024 最终考虑添加my.cnf的全部内容

    【讨论】:

    • 我的意思是,从投票数较高的链接线程解决方案来看,限制应该设置为比默认值更大的值:编辑 /etc/security/limits.conf 并添加以下内容行 mysql soft nofile 65535 mysql hard nofile 65535 最终如果它不起作用,包括 my.cnf 的全部内容干杯
    • 谢谢。目前我没有问题,但我试图了解前任做了什么,尤其是如何做的。在这里,我不知道他是如何将最大打开文件设置为 5000。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多