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}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
3.31
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.18
4.19
4.20
4.21
4.22
4.23
4.24
4.25
4.26
4.27
4.28
4.29
4.30
5.1
5.2
5.3
5.4