我在XenServer上运行Ubuntu 16.04 Server,但遇到MySql的打开文件限制问题。
到目前为止,这是我所做的:
sudo nano /etc/security/limits.conf (参考)
* soft nofile 1024000
* hard nofile 1024000
* soft nproc 102400
* hard nproc 102400
mysql soft nofile 1024000
mysql hard nofile 1024000
sudo nano /etc/init/mysql.conf (参考)
limit nofile 1024000 1024000
limit nproc 102400 102400
须藤nano /etc/mysql/mysql.conf.d/mysqld.cnf (参考)
[mysqld_safe]
open_files_limit = 1024000
[mysqld]
open_files_limit = 1024000
当上述方法无效时,我继续进行以下操作:
须藤nano /etc/sysctl.conf
fs.file-max = 1024000
须藤纳米/etc/pam.d/common-session
session required pam_limits.so
须藤纳米/etc/pam.d/common-session-noninteractive
session required pam_limits.so
须藤nano /lib/systemd/system/mysql.service
LimitNOFILE=infinity
LimitMEMLOCK=infinity
当我登录用户帐户时,一切似乎都很好:
ulimit -Hn
1024000
ulimit -Sn
1024000
如果我以mysql登录,它看起来也不错:
mysql@server:~$ ulimit -Hn
1024000
mysql@server:~$ ulimit -Sn
1024000
但是,当我看一下proc时:
ps -ef | grep mysql
cat /proc/1023/limits | grep open
Max open files 65536 65536 files
或者当我在MySql中查看它时:
mysql> show global variables like 'open%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65536 |
+------------------+-------+
从日志(/var/log/mysql/error.log):
2016-07-25T05:44:35.453668Z 0 [警告]无法将max_open_files的数量增加到65536以上(请求:1024000)
我在这里完全没有主意。在开始时,我确实从open_files_limit开始于1024,并且上面的其中一项必须对其进行了更改,但我需要使其更高。我已经达到了这个极限,因为我有很多数据库和表,有时有很多分区。
我什至没有尝试过比1024000更具攻击性的数字,但是没有运气。
有什么想法吗?