무한 업그레이드중 부르르

3 min read

원래 웹이랑 디비를 가장 싫어했는데, (싼티 난다고 생각해서) 어쩌다보니 웹이랑 디비를 하는 회사에 입성한지 어언 10개월째를 바라보고 있다. 이 회사에 들어와서 지금 애인님을 만났으므로, 이 회사가 나에게 개짓을 해도 그다지 기분나쁘지 않다. 회사에 들어오게 된 계기는 이 회사는 동접 10만을 목표로 하고 있는데, 코드가 개판이라 프레임웍을 필요로 한다나.. 그런 거였다. 그 당시 동접 2,700 정도만 되면 디비도 뻗고, 웹서버들도 주르르 죽었었다.

프레임워크 일은 별거 없었다. 웹이 괜히 단순하냐. I/O 가 그토록 확실한데 내가 프레임웍 설계하고 구현할지언정 뭐 그리 좋아지겠냐. 게다가 기존 작업자가 순수한 C 코딩 스타일을 준수하는 C 범생이였기때문에, 기존 코드를 포팅하는데는 머리를 사용하지 않고 손과 눈만 사용하면 되는거였다. 자바 소스코드 500개 정도 열라리 구정연휴동안 간단한 스크립트와 노가다를 포함해 모두 적용했다.

그럼 뭐하냐, 웹서버 대당 CPU 사용률 6% 넘는꼴을 못봤다. 다 디비땜에 뒤진다. 다행히 계약당시 웹 뷰단과 DB는 신경쓰지 않겠다고 해서 계속 디비가 죽어나가도 책임을 지지는 않았다.

이놈의 회사는 오라클을 사용하는데, 내 관할 프로젝트에서 마지막으로 디비를 사용한것은 사이버이메지네이션 다닐때 사용했던 오라클 8i랑 인포믹스 7.3 이 전부다. 잘 생각해보면 그 중간중간에도 디비를 사용해본 역사가 많긴 하지만, 대강 후갈겨 쓰는 정도였다. 데이터를 준다니까 그저 select from where order by 를 했을뿐. 지가 대한민국 정치인인줄 아는 쓰레기같은 다량의 요새 프로그래머 새끼의 표현을 빌어보면 난 디비를 잘 하는 편에 속했던거 같다.

지난 1월~6월동안 10년차 이상의 DBA 2명이 다녀갔다. 첫번째 왔었던 DBA는 특별히 튜닝할 쿼리가 없다며 커널패치하고 오라클 머신 튜닝하고 메모리만 8GB 꼽고 사라졌다. 두번째 왔었던 DBA는 화만 내다가 사라졌다. 그래도 튜닝을 몇개 하고, 장비를 한 대 더 구해서, 테이블을 몇개 옮기더니 사라졌다.

어느덧 6월이 되었고, 내 자신은 DB를 신경쓰고 공부하며 살아야 한다는 환경에 굴복했다. 옆자리 앉은 동료에게 DB를 물어물어가며 커뮤니티 하나를 창조했다. 들어보기만 하고 써본적 없던 JOIN 도 써보고, 지랄 염병같은 페이징을 위해 HINT 도 써봤다. 별거 아니다. 니들도 해봐라. 규칙만 확실히 하면 어려울거 없다.

여전히 이 회사는 디비로드가 높다고 주장한다. 예전에는 동접 3천에도 디비로드가 200이 되기도 했으나 -_- 이제는 5천이 넘어도 로드가 5정도이다. 난 도무지 uptime 쳐서 나오는 load 5 min average 수치가 정확히 어떤 수치인지는 모르겠지만, load와 wait으로 서로 잘난척하며 아는척 해댄다. 실제로 물어보면 대답도 못해주면서.

애인님께서 50일전쯤 해당 사이트 아이템몰 개편을 했다. 개편하자마자 디비가 널을 뛰기 시작했다. 동접 4천이 되자 로드가 13에 가까워졌다. 사이트는 정상이였으나 곧 뒈질것만 같다. 난 예전에 비해 디비에 매우 익숙해졌으나 아직 튜닝할 레벨의 인간이 아니였다. 그렇다면 내가 여기서 로드를 줄일 수 있는 방법은 논리적인 데이터 흐름을 파악하여, 웹서버 힙에 캐시해버리는 것 뿐이다. 캐시해줬다. 로드는 다시 정상치 밑으로 내려갔다. 그 상태로 잘 살았다.

이 방법에 맛들려서 계속 사이트의 고정 데이터들을 힙에 캐시하기 시작했다. 일정 분단위별 캐시도 하고, 아예 변함이 없는 데이터는 영구캐시를 정책으로 하고, 특정 시그널을 받을때만 reload 하도록 했다. 이제 정말 많이 내려갔다. 동접 4,500 에도 로드가 3~4 수준이다.

어느날 심심한 사장과 야밤에 담화를 나누게 된다. 그는 아직도 배고파했다. 더 바라는 눈치다. 오라클 모니터링 툴들을 접하게 된다. 필요에 따라써 DBCP 레이어에 플래너를 붙이기도 해가면서 병목이 되는 쿼리를 하나둘씩 날려버린다. 한계가 왔다. 뭔가 내가 모르는게 있다. 더이상 주위 인맥들이나 가벼운 구글링으로는 발전이 없다.

99년 12월 첫 회사를 다닐당시 DBA 였던 조** 실장님과 디비를 공부하던 대부분의 사람들이 가지고 다니던 책, "대용량 데이터베이스 솔루션 I/II" 가 생각났다. 그날 1권을 서점가서 샀다. 정말 많이 읽었다. 엄청나게 많이 읽었다. 이런, 세상에!! 내가 모르고 있던것이 너무나 많았다. 새롭게 얻은 지식으로 쿼리 튜닝을 새로했다. 디비 로드는 이제 동접 4천에도 1.5을 기록한다. 책을 구입하고 읽고 튜닝하는데 소요된 시간은 단 3일이다. 이 책은 1996년도에 발행되어 아마도 디비를 공부하는 수많은 학도들이 읽었으리라 믿어의심치 않는다. 지금 내 수준도 분명히 초보 튜너 수준이라고 확신한다. 아직 1권에서 이해하지 못한 부분이 반 이상이고, 2권은 오늘 구입해서 아직 읽지도 않았다.

도대체 여태까지 디비가 이지경이 되도록 가만히 있었던 놈들이 정말로 한심하다.

쪽팔린줄 알고 분발하기 바란다. 그럴리 없겠지만.

Comments

5 thoughts shared

01

준상

카리스마 만빵 래쓰님~!!

02

염중원

꺄악

03

스카리

와아... 저 눈부신 카리스마! 래쓰님 싸랑해요 +.+b

04
R

rath

ㅎㅎ

05
R

rath

오늘 이 회사 스트레스데이했는데 동접 9,900에 디비로드 3.9 였어요 잇힝

Continue Reading

Discover more thoughts and insights