본문 바로가기

리눅스

Siege를 설치 및 사용하는 방법

728x90

Siege를 설치 및 사용하는 방법

Siege는 웹 사이트 및 웹 애플리케이션의 성능 및 부하 테스트를 수행하는 데 사용되는 명령 줄 도구입니다. 이를 사용하여 다양한 웹 사이트 또는 웹 애플리케이션의 부하 테스트를 수행할 수 있습니다.

이번에는 Siege의 설치 방법과 사용 방법을 설명하겠습니다.

Siege 설치 방법

  • MacOS
brew install siege
  • Debian
apt-get update
sudo apt-get install -y siege
  • RedHat
yum install -y epel-release
sudo yum install -y siege

Siege 사용 방법

기본 사용법

siege -c [concurrent users] -t [time in seconds] [url]

위 명령에서 -c 옵션은 동시 사용자 수를 설정하고 -r 옵션은 요청을 반복하는 횟수를 설정합니다. [URL]은 부하 테스트를 수행할 웹 사이트나 애플리케이션의 URL입니다.

  • 옵션: Siege의 다양한 옵션을 지정할 수 있으며, 아래에서 주요 옵션을 설명합니다.
  • URL: 테스트할 웹 서버의 URL을 지정합니다.

주요 옵션

  • -c, --concurrent=X: 동시에 실행할 사용자 수를 지정합니다.
  • -r, --reps=X: 각 사용자의 반복 횟수를 지정합니다.
  • -t, --time=X: 테스트를 지정된 시간(초) 동안 실행합니다.
  • -d, --delay=X: 각 요청 간의 지연 시간을 설정합니다 (초).
  • -v, --verbose: 자세한 출력을 활성화합니다.
  • -q, --quiet: 최소한의 출력으로 실행합니다.
728x90

사용 예시

1. 10명의 동시 사용자가 30초 동안 서버를 부하 테스트하고 결과를 자세하게 출력합니다.

siege -c 10 -t 30s -v http://example.com

2. 20명의 사용자가 각각 3번 요청을 보내고 각 요청 사이에 1초 지연을 가진 후 결과를 출력합니다.

siege -c 20 -r 3 -d 1s http://example.com

3. 시뮬레이션을 실행하면서 출력을 최소화합니다.

siege -c 5 -t 60s -q http://example.com

4. 10개의 동시 사용자가 5번 요청을 반복하는 부하 테스트를 수행하려면 다음과 같은 명령을 사용할 수 있습니다.

siege -c 10 -r 5 https://www.google.com
$ siege -c 10 -r 5 https://www.google.com
New configuration template added to /root/.siege
Run siege -C to view the current settings in that file

{	"transactions":			         100,
	"availability":			      100.00,
	"elapsed_time":			        0.91,
	"data_transferred":		       12.23,
	"response_time":		        0.08,
	"transaction_rate":		      109.89,
	"throughput":			       13.44,
	"concurrency":			        9.20,
	"successful_transactions":	         100,
	"failed_transactions":		           0,
	"longest_transaction":		        0.17,
	"shortest_transaction":		        0.02
}

결과 확인

부하 테스트가 완료되면 Siege는 결과를 출력합니다. Siege는 다음과 같은 정보를 제공합니다.

  • transactions: 총 요청 횟수
  • availability: 성공한 요청의 비율 (100%는 모든 요청이 성공한 것을 의미)
  • elapsed_time: 총 소요된 시간 (초)
  • data_transferred: 전송된 데이터 양 (KB)
  • response_time: 평균 응답 시간 (초)
  • transaction_rate: 초당 요청 처리량 (TPS, Transactions Per Second)
  • throughput: 초당 전송 데이터 양 (KB/s)
  • concurrency: 동시 접속자 수
  • successful_transactions: 성공한 요청 횟수
  • failed_transactions: 실패한 요청 횟수
  • longest_transaction: 가장 오래 걸린 요청의 처리 시간 (초)
  • shortest_transaction: 가장 짧게 걸린 요청의 처리 시간 (초)

위 결과에서는 모든 요청이 성공하였으므로 availability 값이 100%입니다. transaction_rate 값은 초당 109.89개의 요청이 처리되었으며, response_time 값은 평균 0.08초로 응답이 빠른 것을 알 수 있습니다. concurrency 값은 9.20으로, 10명의 동시 사용자 중 9명은 항상 요청을 처리하는 상태였음을 의미합니다.

 

Siege를 사용하여 웹 서버 부하 테스트를 수행하면 서버의 성능을 평가하고 병목 현상을 식별하는 데 도움이 됩니다. 다양한 옵션을 사용하여 원하는 테스트 시나리오를 설정할 수 있으며, 결과 보고서를 통해 성능에 대한 정보를 얻을 수 있습니다.

 

728x90