블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


 
 

어제, 네이버D2에서 열린, NHN nGrinder 개발자인 윤준호님의 성능 강의를 듣고 왔습니다.

몇가지 얻은 인사이트가 있어서 기록해놓습니다.





아마존의 T2 인스턴스 타입


- 서버의 부하에 따라서 컴퓨팅 파워를 높였다 낮췄다가 함.

- 크레딧이란 개념을 써서, 부하가 낮을때는 크레딕을 저축해놓고, 부하가 높아지면 모아놓은 크레딧을 소모하는 방식


성능 테스트시 주의 사항


- 외부 OPEN API등을 사용할때, 성능 테스트시, OPEN API가 성능 테스트를 DDoS 공격으로 인식해서 차단될 수 있음


대용량 파일 (동영상등)에 대한 부하 테스트


- 네트워크 대역폭을 많이 소모하여 운영 시스템 장애로 발전할 수 있음

- 비용도 많이 소모됨

- 이를 방지 하기 위해서 초기 1000 바이트 정도만 읽어들이고, 해당 커넥션 스트림을 닫아 버리는 방법이 있음

- 이렇게 해도 실제 DB나 내부 오퍼레이션에 대한 코드는 테스트가 가능하다. 


성능 테스트시 서버에 대한 모니터링 툴


- pinpoint 등 APM이 있지만, 인프라 모니터링으로 netdata (https://github.com/firehol/netdata) 추천.

데모를 봤는데, 사용법이 매우 쉬운데 반해서 상당히 디테일한 모니터링이 가능




부하테스트 툴 검토 결과

성능과 튜닝 | 2012.10.29 22:47 | Posted by 조대협

항상 성능 테스트를 준비할때 마다, 어떤 부하 테스트툴을 쓰느냐가 고민이다.

어느정도 틀이 갖춰진 조직이나, 예산이 충분한 경우에는 뒤도 안돌아보고 파트너 불러다가 Load Runner돌린다.


1. Load Runner

국내 인력도 많고, 다양한 시나리오에 대한 부하 테스트를 안정적으로 할 수 있어서 언제나 #1 옵션이지만, 비용이 살인적이다.


2. 기타 오픈소스

그래서 오픈소스를 검토해봤는데,

Apache JMeter의 경우 예전에 하도 실패를 많이 했고, 테스트 중 GC 발생도 그렇고, 툴 자체가 매우 세밀하게 사용을 해야 한다. 부하 테스트 툴이라기 보다는 부하테스트 프레임웍 정도로 보는게 맞지 않을까?

그 다음으로 예전에 Multimechnizer라는 툴을 고민했었는데, Erlang기반이고 Python으로 스크립트를 짠다. Erlang기반이라서 분산 환경을 기반으로한 대규모 부하테스트가 가능하고 신뢰성도 있었으나, Learning Curve가 커서 접어야 했던 제품

근래에 툴들을 리서치 해보니,

Grinder를 기반으로 해서, NHN이 Curbrid를 DB로 바꾸고, WEB UI를 사용한 nGrinder라는 제품을 국내에서는 꽤 많이 쓰는듯 하다. 오픈소스이긴 한데, 글로벌 개발팀(해외에 개발팀이 있는 경우)에는 기술 지원이나 자료 부족등의 이유 때문에 망설여지는 툴

다음으로 LoadUI라는 도구다. 라이센스가 대략 10,000USD정도 하는데, SOAPUI를 만들었던 회사의 제품이다. UI나 저작 도구가 매우매우 특이하다. Mashup 제품을 보는 느낌이라고 할까?

일단 기술 지원이 가능하니 심각하게 고려하고 있는 제품


이외에, 국내 블로그를 찾아보니 Apache AP나 HP HTTPerf(근래에 구글에 인수됨)이 있는데, 이 제품들은 웹서버에 성능 테스트에 최적화 되어 있다. 즉, 대규모의 HTTP 부하를 날리 수 는 있지만, HTTP message를 programatic하게 생성한다던가 (ID를 로직에 따라서 생성). HTTP Response를 비교하는 등의 기능이 없다. 단순하게 부하만 생성해서 날려 주는 거라서, 말 그대로 웹서버의 성능 측정은 가능할지 몰라도, 애플리케이션 로직에 대한 부하 테스트는 불가능 한것으로 보인다.