운영중인 사이트가 비정기적으로 굉장히 로딩이 느려지는 현상으로 카페24에 문의한 결과 "apache2 메모리 과점유로 인한 메모리 부족" 원인으로 답변을 받았습니다.
어떤 조치를 취해야 할지 도움 말씀 부탁드리겠습니다.
1. 사이트 환경
카페24 가상서버 호스팅 ( 램 3G ) / XE 최신 버젼 / 일 1000~ 1500명 수준 방문
2. 이전 질문글 ( https://xetown.com/qna/717132 )에서 기진곰님의 조언대로 팁을 적용 그동안 문제없이 사이트 운영중이었습니다.
아래 시간대에 apache2 프로세스가 과도안 자원을 사용하면서
OOM(Out Of Memory)가 발생된 것으로 확인됩니다.
메모리 및 swap이 모두 소진되면서 성능상에 상당한 저하가 또는 일시적인 다운이 있었을 것으로 예상됩니다.
지속적으로 apache2 프로세스가 위와 같은 상태가 지속되지 않도록 상태를 확인 해보셔야 할 것으로 보이니 이점 이용에 참고 부탁 드립니다.
-> MaxRequestWorkers 값을 150에서 20으로 수정 변경 문제가 해결 되었습니다.
3. 그동안 방문자수에는 큰 변화가 없었고 최근 사이트에 SSL 을 적용한 이후 비 정기적으로 사이트 로딩이 굉장히 느려져서 다시 카페24에 문의 후 아래와 같은 답변을 받았습니다.
서버 확인 시 이전에도 동일한 apache2 메모리 과점유로 인한 메모리 부족 상태로 확인됩니다.
주기적으로 apache를 재시작 하시어 메모리를 확보하시길 바라며 과접근 등으로 인하여 추가적인 자원 확보가 필요하시다면
상위사양으로 변경을 고려 해보셔야 할 것입니다.
저의 서버 메모리 관련 부분입니다.
남은 메모리가 아파치를 재부팅 후 처음 보면 대략 640메가 정도인데 이틀정도 지나면 380메가 정도로 점점 줄어들고 있습니다.
궁금한 부분이
1. 제가 올린 현재 저의 서버에 관한 정보가 충분치 않을것 같은데요. 메모리 부족현상에 대해 혹시 적용 해볼만한 팁이 있을까요?
2. 카페24에서 답변 받은 내용 중 "과접근" 은 어디서 확인 해 볼 수 있을까요? 혹시 SSL 설치 후 검색 봇의 방문이 영향을 미칠 수 있을까요?
2. 방문자수에 큰 변화가 없는데 상위사양으로 올리는게 맞는지 그리고 아파치서버를 매일 특정시간에 재부팅하는 스크립터(?)를 검색을 해봤지만 찾을 수 가 없는데 혹시 참고 해볼만한 곳 아시면 도움 부탁드립니다.
마지막 스샷에서도 메모리는 충분히 남아 있습니다. 총 3009M 중 487M를 사용하고 2521M가 남아 있네요.
첫번째 줄의 used와 free는 보는 거 아닙니다. top에 나오는 메모리 사용량도 마찬가지로 엉터리이니 믿지 마세요.
즉 평소 아파치의 메모리 사용량에는 문제가 없는데, 갑자기 1기가 넘게 차지하면서 뻗어버리는 것 같습니다.
어딘가 메모리 누수가 있는 모양인데요, php.ini에서 memory_limit, post_max_size, upload_max_filesize 등이
너무 크게 지정되어 있는 게 아닌지 확인해 볼 필요가 있겠습니다.
서버의 메모리 사용량은 일정 수준까지 점차 증가한 후, 이후 몇 달이 지나도 비슷한 상태를 유지하는 것이 정상입니다.
주기적으로 재시작해 주는 것은 땜빵밖에 되지 않습니다. 무슨 저따위 조언을 해주는지 모르겠네요.
메모리가 충분하지 않은 가상서버에서 적용할 수 있는 최상의 팁이라면
링크하신 글에서도 잠깐 언급했듯이 아파치를 버리고 nginx로 넘어가시는 거예요^^ (아파치님 죄송...)