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
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf (참조)
[mysqld_safe]
open_files_limit = 1024000
[mysqld]
open_files_limit = 1024000
위의 방법으로 문제가 해결되지 않으면 다음을 진행했습니다.
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
사용자 계정에 로그인하면 모든 것이 잘 보입니다.
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).
나는 여기서 완전히 아이디어가 없습니다. 처음에는 1024에서 open_files_limit로 시작했으며 위 중 하나가 변경 되었어야하지만 더 높아야합니다. 때로는 파티션이 많은 데이터베이스와 테이블이 많으므로 이미이 한계에 도달하고 있습니다.
나는 1024000보다 덜 공격적인 숫자를 시도했지만 운이 없었습니다.
어떤 아이디어가 있습니까?