2018-01-24 13:22:26 1888 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5120)
2018-01-24 13:22:26 1888 [Warning] Buffered warning: Changed limits: max_connections: 214 (requested 1024)
2018-01-24 13:22:26 1888 [Warning] Buffered warning: Changed limits: table_open_cache: 400 (requested 2000)
이런식의 로그가 남아 있네요..
대충 영어 봐서는 저렇게 바꿔라 뭐 이런뜻 같은데...
설정을 직접 확인해보면...
max_open_files: 1024 되어 있는거 맞구요.
table_open_cache: 400 400되어 있었습니다.
특별히 my.cnf에 적지를 않은거 같네요. 기본값인가 봅니다.
근데..
key_buffer_size = 128M
max_allowed_packet = 16M
max_connections = 1024
max_heap_table_size = 64M
tmp_table_size = 64M
이렇게 my.cnf에 max_connections = 1024라고 해놨는데..
myql에서 직접 확인하면
max_connections: 214 되어 있네요..
우찌 이런일이...
뭘 확인해 봐야 될까요?
댓글 14
글 내용을 잠깐 수정하였습니다. 그전에 답변을 다신것 같은데..
설정을 확인해 봤는데.. 앞에 적히 숫자
max_open_files: 1024
max_connections: 214
table_open_cache: 400
이렇게 설정되어 있습니다.
2개는 기본값 쓴거 같은데..
실제로
my.cnf에 max_connections = 1024라고 해놨는데
값을확인하면
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 214 |
+-----------------+-------+
이렇게 되어 있습니다.
214로 세팅되어있다. 그런데 1024의 요청이 있었다.
저는 214개로 셋팅되어져 있는데 실제 서버는 최대 1024개까지 요청을 받은적이 있으니 늘려라. 이런뜻으로 받아 들였다는 거죠. ㅎㅎㅎ
제가 요청하기는 5120개를 요청했는데... 너무 커서.. 실제로는 1024개로 바뀌어졌다.. 이런뜻이라는 건가요?
검색을 해보시면 아마 관련 문제가 나오는 거 같습니다.
제가 이글 적고 구글에서
Buffered warning: Changed limits: max_open_files: 1024 (requested 5120)
이렇게 검색은 하니깐.... 지금 제가 적는 이글이 나오네요.. 헐..
requested : 요청한 이란 뜻을 가지고 있는데..
이게 두가지 뜻으로 저는 해석이 되더라구요.
1.
이게 제가 mysql 셋팅으로 요청한것 즉 max_open_files=5120개 셋팅 요청 했는데 실제로는 무리니깐...1024개 해놨다. 이런뜻
2. 현재 2014개 셋팅 되어져 있는데 실 서버를 쓰다보니 5120개의 서비스 요청이 들어왔다.
그럼 늘려라.. 뭐 이런뜻...
저는 mysql에서 친절하게 2번처럼 알려주는줄 알았는데..
가만생각하니깐.. 저렇게 친절할 리가 없는거 같습니다. 쩝...
1번.. 웹지기님 의견이 맞으신것 같습니다.
그래야 제가
max_connections = 1024 해놨지만
실제 확인하면
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 214 |
+-----------------+-------+
이렇게 나오는게 설명이 되네요... ㅎㅎㅎ
1번 해석이 맞습니다. O/S에서 제한을 해놓았는지 다른 곳에서 따로 제한했는지는 기억이 안 납니다만, 사용하시는 서버 사양과 이용패턴으로 볼 때 1024/214/400이 부족한 값은 아닌 것 같습니다.
원하시면 더 늘릴 수는 있지만, 높다고 무조건 좋은 것은 아닙니다. max 어쩌고 하는 설정들은 해당 프로그램이 사용할 수 있는 서버 자원(커넥션 수, 파일 수, RAM 용량 등)을 제한하는 것인데, 특정 프로그램이 서버 자원을 독식하는 것을 막아서 전체적인 안정성을 높이는 효과도 있거든요.
각종 타임아웃 설정도 마찬가지입니다. 타임아웃 걸린다고 타임아웃을 계속 늘리다 보면 결국 다운됩니다. 제한에 걸리지 않도록 프로그램을 짜야 하는데, 귀찮으니까 제한을 다 풀어버리고 위험하게 노는 분들이 많습니다 ㅋㅋ
네 감사합니다.
지금도 사실 서버 스펙이 따르니깐.
msyql 동시최대접속수 확인하면 지금 18나오네요..
그냥 두는게 기진곰님이 그러시니깐.. 그냥 두는게 맞다는 생각이 드네요.
그럼 오류 로그 안나오게 하려면 저희쪽 설정은
my.cnf에 max_connections = 214라고만 고치면 되는건가요?
나머지는 설정이 my.cnf에 안나오던데요..
참고로
ulimit -a | grep open
open files (-n) 32767
ulimit -n
32767
이렇게 나옵니다.
my.cnf에 안 나오는 설정은 그냥 기본값일 겁니다.
max_connections = 214 라고만 고쳐서 쓰겠습니다.
나머지 셋팅을 기진곰님께서 평소에 저리 잡으신 이유가 있을꺼라 생각합니다.
안전하게 가고싶습니다...
늘리고 싶은 욕망은 제 테스트 서버에서만 해보겠습니다. ㅎㅎㅎ
이런 글들이 검색되네요.
OS쪽의 Open files 수에 영향을 받는것 같은데...
이걸 바꾸는것도... 망설여 지네요..
잘 모르면서 바꾸면 더 골치아픈일이 생길까봐요.
현재 최대접속수는 25내외라서... 214도 충분히 큰 크기인데.
더 늘려 보고 싶어지는건... 아....!!!