인수시험이 끝났다. 피드백은 있지만 대부분 디자인 깨짐이나 문구 수정등의 소소한것들이다.
뭐 치명적인건.... 없었다. 그냥 말 그대로 간단간단한것 들 뿐이었어.
이제 남은건 부하테스트야 ..
툴은 JMeter를 이용했고, 10개의 페이지에 select만 하도록 했지 ...
별도의 login -> 게시물 작성 -> 게시물 뷰 -> 게시물 삭제 -> 로그아웃
같은 매크로성은 없었어. 그러니 어렵지 않을꺼라 믿었지.
게다가 ecache까지 앞단에 있었기 때문에 자신있었어.
조금 불안했던 부분은... wiki시스템이기 때문에 파싱하는 시간이 오래걸리면 어쩌지 .. 하는건데 ... 그래도 믿었지 ..
사건1
테스트를 처음에 30thread를 시작했고, 얘들이 10개의 페이지 랜덤으로 계속 호출하는거야. 20개의 thread가 다 뜨니까 트래픽은 한 50메가쯤 되는거 같았어.
시작한지 1분만에 에러가 뜨더니 주루루룩 죽어나가기 시작.
원인은 커넥션 풀.... mysql의 커넥션을 늘려서 해결했어.
사건2
다시 테스트 햇지만 잠시 후 다시 500에러 뿜어대며 사망하심. 이번에 한 2분 버텼나 .. 다시 사망하심...
이번에도 커넥션 풀인데 .. 원인을 못찾겠어.
참고로 커넥션 풀은 자체적으로 만든걸 썻어. 내가만든건 아니구 오픈소스였어. 오픈소스 안에 있는걸 썻는데 .. 실제로 어느놈이 커넥션을 안벹는지 모르겠어
처음엔 코드를의심했지. 가장 흔하니까 .. 관련코드 아이서치로 분석했지만 문제없었어.
결국 톰켓 jndi로 커넥션을 바꾸자 문제 안생겼어.
사건3
문서 파싱 도중 에러가 났어. 음 이때 한 40개의 thread를 사용했고 오래걸리지 않아 오류를 간간히 뿜어냈지.
코드엔 문제가 없었어. 내용은 arrayindexexceptiion이었는데 .. 도대체 왜그럴까 곰곰히 고민해봤지 ..
결국 시간이 너무 흘러서 부하테스트 미뤄졌어.
한참을 코드를 살펴봤지만 문제는 없었고, 결국 야근까지하며 찾았지만 오류를 다시 확인할수도 없었어.
그러게 다음날 혹시나 해서 동기화문제를 의심했지. 역시나 동기화문제더라고 --; 이거 오픈소스고 올해도 버전업이 좀 되었거든 ? 근데 왜그런지 모르겠지만.. 동기화이슈가 있더라 --;
결국 최소한 필요한 부분만 동기화 걸었어.
미뤄졌던 부하테스트 다시 시작한 날
사건4
시작한지 몇분 지나 다시 커넥션 이슈 발생....
이젠 도저히 이유를 모르겠다 싶어서 살펴봤는데 ...
아 .. 그전에 서버 구성상태를 알려줄께.
2대의 서버가 있어. 서로 독립되어있고 각 서버당 web was db가 구성되어 있지.
파일은 rsync를 이용해 동기화 하기로 되어있고
db는 1번서버에 일단 붙어있고, replication으로 2번서버엔 계속 복제를 해
그러다 1번서버 db가 사망하면 2번으로 붙게 되어있어. failoverhost로 구성되어 있는거야 ...
그런데 이번 커넥션은 좀 병신같은게 .. 2번서버가 1번서버에 커넥션을 개같이 물고있는거야.
일단 2번서버 db는 호출이 안되거든 ? 1번서버db 살아있으니 아에 호출 안되고 replication으로 연결된 커넥션만 살아있을 뿐이었어 ..
jndi의 커넥션수는 200이고 db는 500개까지 허용하게 했는데 .. 500개를 다 쓰고 죽어버리더라 --;;
어이없었찌.. db pool이 200개인데 500까지 먹다니 ..
톰켓 모니터링을 통해 봤는데 .. 커넥션은 제대로 반환되었다고 하네 .. 200개 모두 쓰지도 않았다그러고 ...
결국 한참 헤딩하다 원인을 못찾고 다시 미뤄졌어..
그러다 오늘 pm이 원인을 찾았다...
mysql connecor/j 문제더라 .... -- mysql은 5.0인데 플젝 시작할때 최신버젼 받았거든 ? 그래서 문제가 생긴거야 --;
그래서 pm이 5.0용으로 다시 받았는데 문제 없이 잘 돌아가 --; 왜 그런지 몰라 .. 어쨋든 상위버젼 쓰니 문제가 생긴거더라구 ..
에휴 ... 난 이런 시스템적인거 잘 모르는데 ... 이번에 많이 공부하기도 했지만.. jdbc가 문제 생긴게 .. 그것도 상위버젼이라 문제 생긴게 너무 어이없더라구..
혹시나 횽들도 이런 문제 생김 .. 참고해 ....
ps : 그냥 억울해서 써봤어 ..TT
ㄷㄷㄷ, 그쪽 분야 일을 안해봐서 뭐라 할 말은 없네요.
예전에 나도 이런 비슷한 문제가 있었는데.. 버전 확인은 필수인듯. 전 개발자 recommnad에 이 버전 이후버전은 쓰지마라고 되어있었는데 최신 stable 받아서 특정 작업에서 cpu 부하가 비정상적으로 올라가던 문제가 있었음..
자바는 커넥션 하는게 너무 지랄 같은거 같음.