apache 2.2.15 Stable , php7, mysql 5.5
SSD 250GB, 4Core, 8GB Ram, CentOS 6.6
위의 사양으로 가비아 클라우드 서버를 운영하고 있었습니다.
하루 UV는 15000 정도인데 PV가 60만 정도 되는 곳입니다.
URL은 http://bigtoon.donga.com CI로 개발되었지요.
위의 차트 이미지 보시다시피 메모리 점유량이 계속 증가합니다.
도대체 무슨문제일지 거래처 팀장님과 열심히 구글링하며 연구했었습니다.
apache MaxRequestsPerChild 설정이 문제라는 이야기만 찾을수 있었습니다.
그러다가 https://blog.lael.be/post/1090 이 링크의 내용을 발견했습니다.
요점은 cache메모리의 반환 입니다. (위 링크의 내용은 우분투 내용이지만 centos에서도 실행 됩니다.)
#sync && echo 3 > /proc/sys/vm/drop_caches
이렇게 실행시키면 캐시를 반환합니다.
위의 차트 이미지에서 보이는 메모리가 확 줄어든때가 위의 명령어가 실행된 때입니다.
결국 매일 cron으로 등록해놓기로 했습니다.
0 4 * * * sync && echo 3 > /proc/sys/vm/drop_caches
메모리가 7~80% 가까이 점유하게 되면 가끔 apache가 죽는지 서비스가 1~2분 가량 죽는 경우가 생기더군요.
매일 새벽 4시에 메모리 반환하도록 설정했으니 이제야 조금 마음이 놓이네요.
캐쉬메모리가 계속 누적되듯이 지속적으로 쌓이는 문제..
저는 카페24 서버호스팅을 사용중에 오래전에 이문제에 대해 문의한적이 있거든요.
결론은 카페24 서버팀에서도 저 명령어를 그대로 알려줬었죠..
신기한건 저는 그래서 가끔식 체크 하고 수동으로 처리하다가
어제 오전에 아~ 이럴바엔 크론으로 돌려버려야겠다 생각하고 크론탭에 등록했거든요..
그런데 이런글이 같은날에 딱 올라오는걸 보니 완전 신기하네요 ㅎㅎ
마치 제 서버를 누가 보는 기분~..ㅎ