Ubuntu 16.04 Server'ı XenServer'da çalıştırıyorum ve MySql'in açık dosya sınırıyla ilgili bir sorunla karşılaşıyorum.
Şimdiye kadar yaptığım şey:
sudo nano /etc/security/limits.conf (başvuru)
* 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 (başvuru)
limit nofile 1024000 1024000
limit nproc 102400 102400
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf (başvuru)
[mysqld_safe]
open_files_limit = 1024000
[mysqld]
open_files_limit = 1024000
Yukarıdakiler işe yaramadığında, aşağıdakilere devam ettim:
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
Kullanıcı hesabıma giriş yaptığımda her şey iyi görünüyor:
ulimit -Hn
1024000
ulimit -Sn
1024000
MySQL olarak giriş yaparsanız çok iyi görünüyor:
mysql@server:~$ ulimit -Hn
1024000
mysql@server:~$ ulimit -Sn
1024000
Ancak, proc baktığınızda:
ps -ef | grep mysql
cat /proc/1023/limits | grep open
Max open files 65536 65536 files
Veya MySql'de baktığımda:
mysql> show global variables like 'open%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65536 |
+------------------+-------+
Günlüklerden (/var/log/mysql/error.log):
2016-07-25T05: 44: 35.453668Z 0 [Uyarı] max_open_files sayısı 65536'dan fazla artırılamadı (istek: 1024000)
Burada tamamen fikirlerim kalmadı. Başlangıçta 1024'te open_files_limit ile başladım ve yukarıdakilerden biri bunu değiştirmiş olmalı, ancak daha yükseğe çıkmam gerekiyor. Bu bölüme zaten vuruyorum, çünkü bazen çok fazla bölüm içeren veritabanları ve tablolarım var.
Hatta hiç şans olmadan 1024000'den daha az agresif olan sayıları denedim.
Orada fikir var mı?