Tôi đang chạy Ubuntu 16.04 Server trên XenServer và tôi đang gặp vấn đề với giới hạn tệp mở của MySql.
Đây là những gì tôi đã làm cho đến nay:
sudo nano /etc/security/limits.conf (tham khảo)
* 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 (tham khảo)
limit nofile 1024000 1024000
limit nproc 102400 102400
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf (tham khảo)
[mysqld_safe]
open_files_limit = 1024000
[mysqld]
open_files_limit = 1024000
Khi những điều trên không hoạt động, tôi tiếp tục như sau:
sudo nano /etc/sysctl.conf
fs.file-max = 1024000
sudo nano /etc/pam.d/common-session
session required pam_limits.so
sudo nano /etc/pam.d/common-session-noninteractive
session required pam_limits.so
sudo nano /lib/systemd/system/mysql.service
LimitNOFILE=infinity
LimitMEMLOCK=infinity
Khi tôi đăng nhập vào tài khoản người dùng của mình, mọi thứ có vẻ ổn:
ulimit -Hn
1024000
ulimit -Sn
1024000
Nếu tôi đăng nhập như mysql thì cũng có vẻ tốt:
mysql@server:~$ ulimit -Hn
1024000
mysql@server:~$ ulimit -Sn
1024000
Tuy nhiên, khi tôi nhìn vào Proc:
ps -ef | grep mysql
cat /proc/1023/limits | grep open
Max open files 65536 65536 files
Hoặc khi tôi nhìn vào nó trong MySql:
mysql> show global variables like 'open%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65536 |
+------------------+-------+
Từ nhật ký (/var/log/mysql/error.log):
2016-07-25T05: 44: 35.453668Z 0 [Cảnh báo] Không thể tăng số lượng max_open_files lên hơn 65536 (yêu cầu: 1024000)
Tôi hoàn toàn không có ý tưởng ở đây. Lúc đầu, tôi đã bắt đầu với open_files_limit ở 1024 và một trong những điều trên phải thay đổi nó, nhưng tôi cần nó để tăng cao hơn. Tôi đã đạt đến giới hạn này vì tôi có rất nhiều cơ sở dữ liệu và bảng đôi khi có rất nhiều phân vùng.
Tôi thậm chí đã thử những con số ít tích cực hơn 1024000, nhưng không có may mắn.
Có ý tưởng nào ngoài đó không?