show processlist; 아시는 회원님 도움요청드려요 > 자유게시판

자유게시판

show processlist; 아시는 회원님 도움요청드려요 정보

show processlist; 아시는 회원님 도움요청드려요

본문

ㅜㅜ 어제 오후에한번 저녁에 한번 MYSQL 이 다운되는 현상이 발생되더라구요...
그래서.. 이상하다.. 이상하다 하고 호스팅업체에 문의해보니...
정확한 원인파악은 힘들지만... MYSQL 에서 show processlist; 를 치면 sleep 되어 있는게 너무 많아서 문제가 생길수도 있다고 하시네요..
시작은했는데 끝을내지 못한경우라고 하더라구요.. time에서 시간도 오래 지체되었다구하시구요
서버사용하시는 회원님들은? 어느정도 sleep이 나오시나요?
그리고 이 문제를 해결하는 방법아시는 회원님 헬프미 ~

추천
0

댓글 4개

sleep 은 쿼리가 완료되었지만, 연결상태는 아직 남아있는 경우입니다.
php 코드에서 하단에  mysql_close() 를 꼭 호출해 주시구요.
connection_timeout 값을 낮춰보세요.

apache 프로세스(PHP) 가 mysql connection 을 잡고 있는 경우에 위와 같은 상황이 나올수 있습니다.
즉, 응답없음 페이지가 많이 발생하는 경우, httpd 에 좀비 프로세스가 많은경우..
여러가지 이유가 있을수 있겠죠.


아... lock이 걸린 경우도 위와 같은 상태가 됩니다.
<?php 
define('MAX_SLEEP_TIME',  120); 
   
$hostname  =  "localhost"; 
$username  =  "root"; 
$password  =  "password"; 
   
$connect  =  mysql_connect($hostname,  $username,  $password); 
$result  =  mysql_query("SHOW  PROCESSLIST",  $connect); 
while  ($proc  =  mysql_fetch_assoc($result))  { 
        if  ($proc["Command"]  ==  "Sleep"  &&  $proc["Time"]  >  MAX_SLEEP_TIME)  { 
                @mysql_query("KILL  "  .  $proc["Id"],  $connect); 
        } 

mysql_close($connect); 
?>

이런게 있길래 임시로 adm 에다가 sleep_kill.php 라고 만들어놓긴했는데요 이게 도움이 되겠죠?
위코드는 임시 방편이겠네요.
후에 DB접속량이 많아지면 더 많은 sleep가 걸릴텐데요 ^^
mysql_close()를 생활화 하시구  찾아보시는게.
그리고 slow query 로그를 남겨서 느린 쿼리가 있는지도 체크 보시는것도 좋구요 ^^
전체 39 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT