MariaDB와 함께 Ubuntu 14.04에 LEMP 스택이 있습니다. 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/sudo 등의 커플을 /etc/pam.d/common-session* 할 수 있습니다. 재부팅 후 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
누구 든지이 변경을 차단하는 것에 대해 어떤 생각을 가지고 있습니까?
답변
불행히도 여기에는 정답이 없습니다. /etc/security/limits.conf의 항목은 부팅 중이 아닌 로그인 중 PAM 항목 만 읽습니다.
따라서 mysqld가 ulimits를 변경하게하려면 init 스크립트를 사용해야합니다.