글쓴이: 익명 사용자 / 작성시간: 금, 2022/09/16 - 10:09오후
안녕하세요
조그만한 커뮤니티를 운영중에 있습니다
동접자수는 50~60명 사이구요
AWS에서 4core 램16gb VPS를 사용중인데
50명만 되도 그냥 cpu가 100% 차버리면서 사이트 접속이 안되버립니다
램 usage 는 20~30%정도로 안정적이고
디스크 I/O 도 정상
네트워크도 정상
MySQL도 정상으로 보입니다
어떤것을 점검해봐야할까요?
prefork 를 worker로 변경해야할까요
CPU 100% 라는 건 많은 의미를 내포 합니다.
CPU 100% 라는 건 많은 의미를 내포 합니다.
sys가 100% 라면 cpu 연산이 엄청 많다는 거고, usr 가 100% 이면 application 영역의 job 이 많다는 얘기이며, io wait 이 100% 면 I/O 작업 때문에 cpu 가 block 이 걸린다는 얘기 입니다.
이런 류의 문제는 뭘 살펴 봐서 확인할 방법은 없습니다. 예를 들어 CPU 사용면에서도 httpd 가 문제인지 mysqld 가 문제인지를 파악할 수 있는 능력이 있어야 하는데, 단순히 CPU를 많이써 memory 를 많이 사용해 이런 지표로 해결을 할 수는 없다는 얘기이죠. 어떤 프로세스가 어떻게 영향을 미치는지 분석을 할 수 있는 능력이 필요한 거라서 딱히 문제를 해결하는데 도움을 줄 수 있는 조언은 드리기 힘이 듭니다.
주위의 트러블 슈팅을 할 수 있는 능력자에게 요청을 하셔야 하지 않을까 싶네요.
그리고, 일단 그냥 제 직감으로는 resource 가 그리 busy 하지 않게 보인다면.. 아마도 db query 에서 lock 이 걸려서 query 수행 속도가 느려지면서 CPU 쪽 block 이 걸리는 것이 아닐까 싶기는 하네요.
보통 이런 구조에서는 db query 가 무겁게 만들어져 있어 발생하는 경우가 많습니다.
mysql 의 slow query 비율을 한번 살펴 보세요. slow query 가 많이 발생한다면 sql query 가 너무 무거워 지연이 된다는 얘기이고, 그렇다면 application logic 을 변경해야 할 수도 있습니다.
댓글 달기