스트레스 테스트 어떻게 하십니까?

geekforum의 이미지

모 회사의 IT실에서 근무하고 있습니다. 본명을 안 쓴 이유는 혹시라도 팀 사람들이 볼까봐... ^^;

최근, WAS의 사용이 많이 늘면서 관련 서비스에 대한 검증이 필요하게 되었습니다.

팀이 하는 일은 하드웨어나 OS의 Capacity를 산정하고 집행하는 일인데, 적당한 시스템을 구입하여 원하는 성능이 나오는가를 검증하기 위해 팀에서는 1억 정도 돈을 들여 스트레스 테스트 툴을 구입해 서비스를 검증하고 있습니다.

그런데 제가 보기엔 그런 돈 들여서 테스트할 필요가 있는가 싶더군요. 돈 값을 하는 결과를 보여준다거나 테스트 플랜 설계가 Open Source인 툴들보다 편하다거나 한 것도 아니거든요.

뭐, 돈 1억이 어떻게 보면 큰 돈이지만 팀에서 집행하는 비용으로서는 상당히 작은 액수니 쓸데 없는 돈 썼다고 배 아파할 이유는 없고, 또 제가 테스트에 관여한 것도 아니니 상관할 이유는 없지만 조금 아쉬움이 남아서 이렇게 글을 올렸습니다.

이 글을 읽는 분들 중에서 테스트를 해보신 적이 있는 분들이나 관심 있는 분들은 어떤 방법으로 어떤 결과를 얻는지 알고 싶네요.

그리고, 제가 생각하기엔 아래의 사항 정도를 체크하는게 적당한 것 같은데 방법이 잘못됐다거나 추가해야 하는 내용이 있으면 말씀해 주시기 바랍니다.

1) 테스트를 통해 얻고자 하는 것
2) 테스트를 위해 필요한 것
3) 테스트 방법

저희 팀의 경우

1) 동시 사용자 1000명 정도일 때, 각 페이지의 response time이 적정한가; 로드가 많이 걸리는 모듈이나 servlet은 어떤 것인가; 서비스 수행 시 시스템 리소스는 적당히 사용하는가.

2) 성능 좋은 client PC 2대(1대는 page request, 1대는 WAS log 수집); 테스트 프로그램; 테스트 하고자 하는 서버와 서비스

3) 동시 사용자 수를 100명부터 100단위로 증가시켜 (response time을 얻는다 | request timeout의 증가 추이를 얻는다 | 시스템 리소스 사용량 변화 추이를 얻는다)

추가로, 전에 IBM 내부적으로 쓰이는 AKTool과 Apache Project의 JMeter를 써봤는데, 이 제품들에 대해서 어떻게 생각하십니까?

댓글

익명 사용자의 이미지

스트레스테스트 땜에 스트레스 받는구만......

익명 사용자의 이미지

저는 최근에 30억짜리 프로젝트 하면서 스트레스 테스트 툴이라고 장사꾼들(주로 미국산 제품의 한국 에이젼트들)이 와서 한번 해보자고 법석을 떨다가 도망을 간적이 있습니다.
툴 이름은 잘 모르겠네요... 몇개 업체가 왔다갔다 했는데 별로 관심이 없어서... 그런데 테스트 방법이라는게 정말 엉성하기 그지 없고 현실을 제대로 반영하지 못하더군요... 그래서 우리는 PC를 한 10대 정도 마련해서, 우리가 만든 스트레스 테스트 프로그램으로 돌렸습니다.
장사꾼들이 들고 다시는 테스팅 도구중에 유용한 것이 별로 없다는 것이 SI업계의 평가입니다.

익명 사용자의 이미지

툴만 좋으면 뭐합니까. 테스트할 줄 아는 사람이 있어야지.

툴이야 어느 정도만 되면 대부분의 병목지점은 알아낼 수 있습니다. 적어도 자기가 만든게 어떻게 돌아가는지 아는 개발자라면.

근데 문제는 시스템이 어떻게 돌아가는지도 전혀 모르면서 비싼 GUI 테스팅가지고 앉아서 깔짝거리는 사람들이죠. 요즘 이것땜시 상당히 열받고 있습니다.

익명 사용자의 이미지

개발한 사람이 테스트에 참가하는 경우도 있지만(작은 회사라면) 대부분 만든 놈과 테스트 하는 놈은 다릅니다. 게다가 GUI호 깔짝거리는 놈도 있지만 날카롭게 볼 수 있는 사람들도 많습니다. 문제는 문제가되는 문제를 찾았을때의 반응들이지요...

익명 사용자의 이미지

투덜대기만 하고 주제와는 관련없늘 글만 적은 것 같네요. :)
결국 제 생각은... 시스템(하드웨어, OS, WAS, DB등의 플랫폼)의 성능만을 단순히 측정하는데는 특별히 좋은 툴이 필요없다는 것 입니다.

단 어플리케이션의 성능을 측정하고 해결하려면 좋은 프로파일링툴은 많은 도움이 되겠죠.

근데 웹환경에서는 성능의 기준을 잡기가 상당히 넘 어렵습니다. 기준을 실제와 어느정도로 근접하게 잡느냐가 가장 중요할 것 같습니다.

익명 사용자의 이미지

IBM제품을 사용하고 계신다면 웹스피어 퍼포먼스 애널라이저를 사용하시면 될껍니다. 이놈은 원하시는 어플리케이션에서의 병목 같은 것들을 찾아 줍니다. 물론 단일 컨트롤러로 디스패칭하는 스타일일 경우(Turbine같은)에는 조금 수정을 하셔야 합니다만...

조기태의 이미지

JMeter같은 경우는 리퀘스트(스트레스)를 발생시키는 쪽에만 관여하기 때문에 실제로 병목지점이나 메모리 사용을 체크하려면 좋은 프로파일러가 필요하다고 생각합니다.

실제 써본건 JProbe 밖에 없는데 막강하더군요. 비슷한 기능을 지닌 오픈소스 프로젝트가 있었으면 정말 좋겠습니다.

박준상의 이미지

움..;;
좀 노가다가 필요해서 그렇지
전 과정이 자동화하여 분석해주는것이 필요하다면;
ZdWebBench로도 충분할듯 합니다 :)

마소 사이트에서도 웹스트레스테스트 툴을 제공하더군요
.NET에는 아예 들어가있던데;

박준상의 이미지

전 과정이 자동화하여 분석해주는것이 필요하다면;
->
전 과정이 자동화하여 분석해주는것이 필요"없"다면;

수정합니다 -_-;;

우겨_의 이미지

APACHE_HOME/bin/ab

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.