[Warning] Buffered warning: Changed limits: max_connections: 214 (requested 2000)
1) 운영 체제
cat/etc/issue Red Hat Enterprise Linux Server release 5.5 (Tikanga) Kernel\r on an\m
cat/proc/version Linux version 2.6.32-504.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Wed Oct 15 04:27:16 UTC 2014
2) mysql 데이터베이스 버전
mysql --version mysql Ver 14.14 Distrib 5.6.26, for linux-glibc2.5 (x86_64) using EditLine wrapper
2. 문제 설명
2.1 문제점 발견
오늘 제 테스트 환경 라이브러리에서 error log에 다음과 같은 경고가 나타났습니다.
mysqld_safe --defaults-file=/etc/my.cnf &
2016-01-08 09:37:38 28555 [Warning] Buffered warning: Could not increase number of max_open_files to more than 1024 (request: 10240)
2016-01-08 09:37:38 28555 [Warning] Buffered warning: Changed limits: max_connections: 214 (requested 2000)
2016-01-08 09:37:38 28555 [Warning] Buffered warning: Changed limits: table_open_cache: 400 (requested 2000)
## my에서.cnf 파일에 지정된 openfiles_limit=10240,max_connections에서 지정한 값은 2000,tableopen_cache가 지정되지 않았습니다.
2.2 문제 분석
다음은 왜 이 세 가지 경고가 발생했는지 조목조목 분석해 보겠습니다.
2.2.1 maxopen_files의 경고
사실 네가 mysql에 대해 오픈 에 대해 알고 있다면files_limit 설정 규칙 (open files limit 값이 반드시 설정 파일에 지정된 값은 아닙니다.) 그러면 이 문제는 명백합니다.오픈files_limit 설정의 상세한 내용은 다른 블로그에서 설명하겠습니다.이 블로그는 단지 문제를 지적할 뿐이다.문제는 운영 체제 차원의 Open files가 1024로 제한되어 있다는 점입니다.
[root@localhost ~]# ulimit -Sa|grep "open files"
open files (-n) 1024
[root@localhost ~]# ulimit -Ha|grep "open files"
open files (-n) 4096
그래서 여기 오픈files_limit 은 운영 체제 open files 제한 값 1024 를 가져옴2.2.2 maxconnections의 경고
이것은 사실 mysql 5.6의 버그입니다. 이 버그의 상세한 내용은 참고하십시오
https://bugs.mysql.com/bug.php?id=71821
혹은
http://blog.csdn.net/shaochenshuo/article/details/50484475
mysql에서 운영체제의 오픈 파일이나 mysql 프로필에서 오픈files_limit의 값이 비교적 작게 설정되었을 때 mysql는 시작할 때 자동으로 max 를 조정합니다connections의 값입니다.그러나 mysql의 공식 문서와 위의 버그에서는 이 조정이 어떤 규칙에 따른 것인지에 대해 언급하지 않았다.
2.2.3 테이블 정보open_캐치의 경고.
이 경고가 발생한 원인은 2.2.2(requested 2000은table open cache의 기본값이 2000이기 때문입니다. cnf 파일에서table open cache를 지정하지 않았기 때문에 기본값을 찾았지만 운영체제의open files 제한이 너무 적기 때문에 이 매개 변수는 400으로 자동 조정되었습니다.)
3. 솔루션
운영 체제의 open files 제한 조정
vi/etc/security/limits.conf 마지막에 * soft nofile 655350 * hard nofile 655350 * hard nproc 655350 * soft nproc 655350 또는 mysql hard nofile 655350 mysql soft nofile 655350 mysql hard nproc 655350 mysql soft nproc 655350