갑자기 서버에 부하가 많이 걸리네요.. > 그누3질답

그누3질답

갑자기 서버에 부하가 많이 걸리네요.. 정보

그누보드 갑자기 서버에 부하가 많이 걸리네요..

본문

안녕하세요 그누보드의 index.php을 로딩하는 순간...

위 이미지에서 보시는 바와 같이... mysql쪽으로 부하가 엄청나게 걸립니다.

결국은 DB연결 실패까지 나오네요...

전에도 한번 이런적이 있어 mysql데몬을 재가동 후에 겨우 정상을 찾았던 것같은데...

또 이런일이 생겼습니다.

무슨 문제인지 조언좀 부탁드립니다...ㅠㅠ
  • 복사

댓글 전체

그런데 이상한 점은 위 쿼리가 왜 늘 부하를 주는것이 아니고 특정한(?) 경우... (그러니까 가끔..)
부하가 왕창 걸렸던것일까요? 참말로 이상하네요...
^^
정말 어렵네요... 서버관리를 좀 할줄 알아야 하는데..ㅠㅠ

일단 이것 저것 뒤져가며 원인을 찾고 있습니다만 root님과 관리자님이 말씀하신 근본적인 문제에다가...
head.php 속에 예전에 사용한던 코드를 주석으로 막아 놓았던 것이 mysql 부하의 주 원인입니다.
코딩하면서 나중에 필요할까봐 정리하지 않고 주석으로 막아 놓았던 것들이 문제가 되었습니다.

php스크립트에 주석을 막아 놓았어야 하는데..ㅠㅠ
무식하게도 앞뒤에  html에다 html 주석으로 막아 놓아 버렸더군요..
코드는 계속 실행된 상태로 화면에 보여지지만 않았던 것입니다.
그런데 그게 엄청난 부하의 쿼리를 날리고 있을 줄이야..ㅠㅠ
앞으로는 정리 잘해야 겠네요...ㅠㅠ

<!--
<?
$sql = " select count(*) from $cfg[table_member] where mb_level > 1 and  mb_leave_date < 1 and mb_intercept_date  < 1 ";
$row = sql_fetch($sql);
$total_member = $row[0];

$sql = " select count(*) from $cfg[table_member]
  where TO_DAYS(CURDATE()) - TO_DAYS(mb_datetime) = 0 ";
$row = sql_fetch($sql);
$today_member = $row[0];
?>
<table width=100% cellpadding=2 cellspacing=0>
<tr><td width=60% align=right>전체&nbsp;</td><td width=40% align=right><?=number_format($total_member)?>명&nbsp;</td></tr>
<tr><td width=60% align=right>오늘&nbsp;</td><td width=40% align=right><?=number_format($today_member)?>명&nbsp;</td></tr>
</table>
-->


^^
음.. 만약 관리자님께서 추측하신 시간을 많이 잡아먹는 몇몇 쿼리를 찾아내지 못한다면 사용자들이 많아서 그런것으로 예상할수도 있겠군요.
그렇다면 현재 그누보드3의 기본구도인 사용자가 클릭할때 마다 index.php가 호출되는 방법으로는 피해가기 힘들듯해봅입니다.
이를 피해가기 위해서는 db쪽 성능을 빠방하게 올려주거나...
사용자의 쿼리를 분산할수있는 방식인 g4로의 업그레이드를 생각해보실것을 건의 드립니다.

만약 몇몇쿼리에서 발생하는 문제라면 g4로 업그레이드해도 문제가 해결되지 않을수 있습니다.
이때는 그 쿼리를 분석해서 쿼리를 튜닝해야 할것입니다.
mysql log 를 남기는 방법을 찾아보시기 바랍니다.

/etc/my.cnf 와 관련이 있었던것 같은데요.

실행시간이 몇초 이상되는 쿼리만 남긴다던지 하는 옵션이 있었던걸로 기억됩니다.

지금은 다 까먹었습니다. ㅡㅡa
index.php 에서 mysql에 얼마나 접근을 하는지, 동시사용자가 얼마나 되는지....
사이트 튜닝을 좀 해야 할듯 하군요.

아.. 사이트 튜닝외에 mysql 튜닝도 필요할수도 있겠군요.
제가 mysql은 설정해서 사용해본적은 없습니다만 많은 db 들이 db쪽에서 사용하는 메모리를 할당해서 처리하는것으로 알고있습니다.
장비에 os쪽 외에 db쪽 전용으로 메모리를 할당하여 db 서버의 성능을 튜닝하는것도 하나의 방법이 될것 같습니다.
© SIRSOFT
현재 페이지 제일 처음으로