无法在 Ubuntu 14.04 上更改 mysql 的打开文件限制

无法在 Ubuntu 14.04 上更改 mysql 的打开文件限制

我在 Ubuntu 14.04 上有一个 LEMP 堆栈,其中包含 MariaDB。Mysql 是我服务器的巨大瓶颈。我尝试了所有我知道的方法来提高 mysql 的打开文件限制。我已将其添加open-files-limit = 2097152到 my.cnf。我已将以下内容添加到 limits.conf:

* soft nofile 2097152
* hard nofile 2097152
* soft nproc 2097152
* hard nproc 2097152
mysql soft nofile 2097152
mysql hard nofile 2097152
mysql soft nproc 2097152
mysql hard nproc 2097152

我已经添加了session required pam_limits.so/etc/pam.d/common-session* 和 /etc/pam.d/sudo 以及其他几个文件。我尝试在重启后重新启动 mysql - 没有变化。我还检查了/etc/apparmor.d/usr.sbin.mysqld它是否参与其中,但文件是空的。经过所有这些,我仍然得到以下内容:

# ulimit -Sa
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256538
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2097152
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

当我跑步时# mysqld --verbose我得到了这个:

150501 0:19:35 [Warning] Could not increase number of max_open_files to more than 1024

有谁知道是什么阻碍了这一改变吗?

答案1

不幸的是,这里没有直接的答案。/etc/security/limits.conf 中的内容只能由 PAM 读取,在登录期间读取,而不是在启动期间读取。

因此,如果您希望 mysqld 改变其 ulimits,则必须摆弄 init 脚本。

相关内容