안녕하십니까. 좋은아빠되기입니다.
조금 한가해지니깐. 별 걱정을 또하게 되는거 같습니다.
전문가분께 msyql 메모리 4G 할당 요청을 했고
실제로 4G가 할당되어 있는것 까지 확인했는데요.
default_storage_engine = InnoDB
innodb_buffer_pool_size = 4G
innodb_log_file_size = 1G
innodb_log_buffer_size = 128M
이렇게 설정되어 있습니다.
mysql 백업하면 1G 정도 의 DB량입니다.
서버 부팅하고 일주일 정도 지나면 2G 가까이 사용하던게.
점점 시간이 지나면서 3G 가까이 쓰더라구요.
근데.. optimize를 하고 나니깐..
4G 정도 쓰던데
한 45일 지나서 다시 optimize 하니깐...
그림에 보시는것처럼 6G를 사용하네요.. ㅎㅎㅎ
msyql restart 하면 확 줄고 처음부터 다시 시작하겠지만..
재부팅 일체없이 6개월 이상 버티는게 목표인데...
저대로 둬도 별문제 없는건가요?
optimize 한번 더하면 더 많이 메모리 먹나요?
4G로 할당해뒀는데.. 왜 자꾸 메모리를 많이 먹어서 사람 겁먹게 하는건지 모르겠네요.
조언 부탁 드립니다.
innodb_buffer_pool_size + 1~2G 정도는 정상입니다. 바로 밑에 나오는 로그 버퍼를 비롯해서, 쿼리 캐시나 MyISAM key buffer 등 RAM을 사용하는 다른 기능도 많으니까요. RAM이 정말 부족한 서버라면 이것까지 감안해서 버퍼 크기를 지정해야 하고요.
무한정 늘어나기만 한다면 문제가 있는 거지만, 대개 며칠에 걸쳐 최대치까지 올라간 후 그 상태를 꾸준히 유지합니다. 메모리 16G짜리 서버에 APM만 돌린다면 MySQL이 40~50% 정도 쓰는 것은 괜찮아요.