180bpm

DB Connection이 꽉 차서 처리 자체를 못하는 경우에 꼼수 본문

Develop/Web ETC

DB Connection이 꽉 차서 처리 자체를 못하는 경우에 꼼수

powdersnow 2015. 8. 4. 15:18

1. 서론

게임이 오픈을 하고 하하호호 웃으면서 있다가,

다음날 사전등록 쿠폰이 발송되고 30초만에 서버 다운.

1주일 넘게 원인을 찾아본 결과, 일단 내 판단으로는

'db connection이 꽉 차면 queue에 쌓지도 않고 그냥 바로 드랍시킴. 게다가 서버의 max db connetion 수치도 다 못채운 채로..;;'


우선, 셋팅값을 바꿔보기도 하고 이래저래 고민을 하고 있는데.. 잘 안된다

그러다가 어제 컨택되셨던분이 전화를 해주셔서 꼼수를 알려주셨는데..!



2. 내용

간단하다.

클라가 서버의 API를 호출 했을때, 서버는 현재 처리중인 process list 갯수를 체크해서 지정된 값보다 많으면 클라이언트에게 '대기하라' 라는 응답값을 내려주는것.

클라이언트는 그 응답값을 받으면 우선 기다렸다가 보내던가 하는 식으로 처리.



3. 적용

은 ...


processList를 카운팅하는 함수가 있을줄 알았는데 검색으로 해도 없다.

그래서 다시 한번 연락 드렸더니 API 시작부분에서 전역변수 ++, 끝나면 -- 하는 식으로 처리하면 간단하게 끝난다고 하셨다.


사실, 저 방법밖에 없었는데 저 방법을 추천해주셨으니 허허.

Comments