밤 12시가 되면 mysql이 죽습니다(사이트 로딩 속도 멈춤)
본문
사이트에 동시 접속자가 많은 편인데
매일 밤 12시만 되면 mysql에 과부하가 걸려서 사이트 로딩이 안되다가 bad gateway 502가 뜨고 그럽니다.
찾아보니 db_table_optimize.php 가 문제인거 같네요.
Q1) 그래서 OPTIMIZE TABLE 기능을 모두 주석처리로 비활성화시킬까 했는데, 그래도 문제가 없을까요?
(접속자로그, 쪽지, 인기검색어 모두 쓰지 않는 기능이라 필요가 없는데, 주석처리를 해버리면 쓰레기 로그나 데이터가 계속 쌓일거 같아서...)
Q2) 아님 새벽 4~5시에 변경해서 돌릴까 해서 아래와 같이 코드를 짰는데, 만약 db_table_optimize.php 의 호출이 자정 12시에만 되는거라면 아래 코드는 무용지물일것 같습니다. 그럼 어떻게 수정을 해야 할까요?
(db_table_optimize.php 코드 최상단에)
$now = date("His");
$ckTime1 = "040000";
$ckTime2 = "050000";
$changeTime1 = date("His", strtotime($ckTime1))
$changeTime2 = date("His", strtotime($ckTime2))
if($now < $ckTime1 or $now > $ckTime2)
return;
조언 부탁드려요
!-->답변 2
1. 별도의 백그라운드 프로세스로 동작하는 형태가 아니라면 동작 방법을 그렇게 변경해야 하지만, 동작 방법을 변경한다 해도 동접자가 많은 상태라면 db_table_optimize.php 의 쿼리들은 다른 접속자 프로세스에 부담을 주는 쿼리입니다.
2. 새벽 5~6 시에 동접자가 급격히 많아지지 않는다는 보장도 없으므로 근본적인 해결책이 아닙니다.
3. 데이터를 쌓는 부분을 방지하기 힘든 상황이라면 주석처리로 운영중에는 동작하지 않도록 하고, 적당한 시간에 점검시간을 잡아 공지하고 그때 수행하는 플랜을 세우거나
4. 필요없는 데이터라면 애초에 쌓이지 않도록 프로그램을 수정해야 합니다.
음. 어떤 사이트 운영 중이시길래 회원님들이 밤 12시부터 접속을 만땅으로 하시는 건지...매일 밤이 무섭겠는데요. 클라우드가 답이 아닐까 생각이 듭니다.