nGrinder 하드웨어 요구사항 문의

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

nGrinder 하드웨어 요구사항 문의

김지호
안녕하세요!

Http 성능테스트 툴을 고민하다 nGrinder 를 보고 이용해보고자 합니다.

그에 따라 몇가지 문의드릴 것이 있습니다.

1. nGrinder 를 이용한 대용량 웹서비스 테스트 진행 시 테스트를 진행하는 PC 가 몇대가 필요한지요?
ex) 10만 이상의 유저의 동시접속을 성능테스트 진행
ex) 최적의 하드웨어 사양 (Local PC 기준 / 서버 기준)

2. Jmeter 나 Jmeter Perf 를 사용했을 때, PC 1대에서 테스트 할때 동시 Thread 생성의 한계가 있어서,
실제로 많은 문제가 되었습니다.

3. 추후 해당 오픈소스의 상용화를 진행하실 예정인지요?
아래 글을 읽다보니 웹서비스 부하 테스트를 제공하는 곳이 많지 않은 것 같습니다.
하드웨어의 수급문제등이 있을 것 같은데, 스크립트만 올려서 테스트 할 수 있도록, 서비스 전환 계획등은 없는지요?
http://junoyoon.tistory.com/entry/nGrinder-Performance-Driven-Development
Reply | Threaded
Open this post in threaded view
|

Re: nGrinder 하드웨어 요구사항 문의

junoyoon
Administrator
답변 드립니다.

1. PC 몇대나 필요?
   저희 테스트 결과, 2Core 4GRam VM 에서 Groovy로 단순 HTTP Call을 sleep time 없이 때리는 테스트의 경우 약 6000 가상유저까지 15분가량 1개의 에이전트가 동작 가능합니다.
   실제 유저 행위를 시뮬레이션하여 10초씩 thinktime을 주신다면, 에이전트 1개당 1만 thread 까지는 견딜 겁니다.
   메모리가 가장 중요한 이슈이기 때문에, 저희는 에이전트당 4G 이상의 Ram 을 가진 머신을 권장 드립니다.
   따라서 10만 vuser 라면.. 에이전트가 10대 정도는 필요합니다.
   컨트롤러는 가장 싼거 쓰셔도 됩니다. 2G 면 됩니다.

2. 상용 서비스화?
   원래는 상용 서비스 계획이 있었읍니다만.. 워낙에 경쟁자가 많아.. 하지 않기로 하였습니다.
   nGrinder 는 VM에서도 잘 동작하기 때문에, 기존 클라우드 서비스를 사용하셔서 서버를 마련하시는 것이 나을 것 같습니다.
   그런데 이와 같은 성능 테스트 도구는 네트웍 트래픽을 많이 사용하는데, HW 비용보다 네트웍 트래픽 비용이 더 많이들 수도 있습니다.
   현재 어디에서 서버를 운용중이신지요?

   
Reply | Threaded
Open this post in threaded view
|

Re: nGrinder 하드웨어 요구사항 문의

msseo
안녕하세요.
nGrinder를 적용하여 사용한지 한달 정도 지났습니다.

1. agent 성능을 최적화 하기 위한 메모리 설정 및 os tuning point는 어떤 것들이 있을까요?
    . 현재 2g의 heap memory를 할당하여 사용하고 있습니다.

2. controller의 embedded db를 cubrid로 변경했을 경우 성능 향상을 기대할 수 있을까요?

사용환경은 아마존 입니다.
Reply | Threaded
Open this post in threaded view
|

Re: nGrinder 하드웨어 요구사항 문의

junoyoon
Administrator
1. ngrinder 는 최대한도 OS설정과 독립적으로 운영되도록 구현되어 있습니다. 따라서 OS 튜닝 포인트를 제안드릴만 건은 많치 않습니다만...

몇가지만 든다면..
- ulimit 파일 오픈 가능 카운트를 1만 이상을 유지할 것
  성능 테스트시 소켓을 많이 열수 있기 때문입니다.
- OS영역 제외하고, 3G 정도의 Free 메모리를 유지할 것
- socket linger option 설정을 조정하여, 소켓이 사용후 바로 반납 되도록 할 것

정도 입니다.

2. cubrid 사용은 전혀 성능을 개선시키지 않습니다. 오히려 더 느려질 겁니다. cubrid 는 NHN과 같은 clustered 형태로 ngrinder 를 구성할 때만 사용합니다.
Reply | Threaded
Open this post in threaded view
|

Re: nGrinder 하드웨어 요구사항 문의

msseo
답변 감사드립니다.

추가적으로 질문드립니다.

1. OS영역 제외하고, 3G 정도의 Free 메모리를 유지할 것
    -> 그렇다면 Agent에 Heap Memory를 할당하고 OS가 사용하는 것을 제외하고 3G 정도의 Free Memory가 필요하다는 말씀이신가요?

2. socket linger option 설정을 조정하여, 소켓이 사용후 바로 반납 되도록 할 것
    -> 이 설정은 OS TCP 설정을 말씀하시는건가요?
        아니면 스크립트에 socket linger 설정을 해야한다는 말씀이신가요?
        스크립트에 설정한다면 Sample이 있다면 알려주시면 감사하겠습니다.
Reply | Threaded
Open this post in threaded view
|

Re: nGrinder 하드웨어 요구사항 문의

junoyoon
Administrator

1. OS영역 제외하고, 3G 정도의 Free 메모리를 유지할 것
    -> 그렇다면 Agent에 Heap Memory를 할당하고 OS가 사용하는 것을 제외하고 3G 정도의 Free Memory가 필요하다는 말씀이신가요?
   ==> 혹시 Agent에 Heap Memory를 할당한다는 것이 무슨 의미인가요? 혹시 JAVA 커멘드에 무슨 옵션을 추가로 주시나요? 절대 그러시면 않됩니다. 그냥 OS에 Free Memory를 항상 일정 수준 이상 유지하도록 하시면 됩니다.

2. socket linger option 설정을 조정하여, 소켓이 사용후 바로 반납 되도록 할 것
    -> 이 설정은 OS TCP 설정을 말씀하시는건가요?
        아니면 스크립트에 socket linger 설정을 해야한다는 말씀이신가요?
        스크립트에 설정한다면 Sample이 있다면 알려주시면 감사하겠습니다.
    ==> 스크립트에 설정을 안하면 OS TCP 설정을 따르죠. 둘중 하나를 선택하시면 될듯 합니다.
    ==> jython socket 패키지를 사용할 경우 스크립트상에 다음과 같이 설정하면 됩니다.
        - clientsock.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', l_onoff, l_linger))