MySQL에서 Writing to net 때문에 Locked 가 생기는 상황

MySQL에서 Writing to net 때문에 Locked 가 생기는 상황

#. 현상

1. 웹서버 1대와 DB서버는 1대만 운영중(no-replication)
2. Writing to net 의 십여개 쿼리가 생기면서  Locked 가 계속 생긴다.

#. 현상 재현

1. 통계 페이지가 15초 걸림
2. 통계페이지에서 F5를 계속 누르면 현상이 재현됨

#. 원인

1. 통계페이지에서 select * from X 처럼 데이터를 가져와서 php에서 루프돌려 통계를 만든다.
2. 이때 select * from X 의 전송량이 
 49068(row수)*1895(평균row길이) =  92,983,860 byte = 88MB 
-> 비슷한걸 몇번 더 가져온다.
3. 네트워크 장비는 1Gbps (100MB/s)
즉, DB서버에서 웹서버로 데이터 전송하는데 100MB/s 이상의 네트워크 트래픽이 발생됨 
-> 이후 데이터 전송은 트래픽 대역폭이 확보 될 때까지 기다림 
-> Select 쿼리는 Writing to net 로 계속 추가되고(얼마까지만, 이후엔 locked로 추가되더라), 
update나 insert는 myIsam이라서 locked 상태로 기다림
즉, 데이터를 전부 다 전송하지 않는 이상 안 끝남.

#. 해결

1. 통계페이지니깐, 주기적으로 페이지를 만들던지, 캐싱을하던지 하면 된다.
2. 물론 쿼리 자체가 문제니깐(select * from 을 왜써!), 쿼리를 고쳐야하는데, 내 페이지도 아니고, 시간도 애매하고 해서...
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자