Tigase 서버 성능 테스트를 위한 Tsung 설정 및 실행 방법

두 대의 물리적 머신을 활용하여 Tigase 서버의 성능을 평가하는 테스트 환경을 구성합니다. 하나는 Tigase 서버로, 다른 하나는 Tsung 클라이언트로 사용됩니다.

  1. Tigase 서버 구성

Tigase의 기본 설정 파일인 tigase.conf에 다음과 같은 내용을 추가합니다:

TIGASE_OPTIONS=" --property-file etc/init.properties --test "

--test 옵션은 두 가지 주요 효과를 제공합니다:

  • 오프라인 메시지 플러그인 로드 제거 → 테스트 중 부담 감소
  • 기본 인증 레벨을 낮춤 → 시스템 리소스 절약

또한 init.properties 파일에서는 다음과 같이 서버 구성 정보를 정의합니다:

config-type=--gen-config-def
--admins=admin@tsung213
--virt-hosts=tsung213
--debug=server
--monitoring=jmx:9050,http:9080,snmp:9060
--auth-db=tigase-auth
--user-db=mysql
--user-db-uri=jdbc:mysql://localhost:3306/tigase_db?user=tigase_user&password=123456&useUnicode=true&characterEncoding=UTF-8&autoCreateUser=true
--user-repo-pool-size=12
--comp-name-1=muc
--comp-class-1=tigase.muc.MUCComponent
--comp-name-2=pubsub
--comp-class-2=tigase.pubsub.PubSubComponent

설정 완료 후, Tigase 서버를 시작하고 접속 대기 상태로 전환합니다.

  1. Tsung 테스트 환경 설정

테스트용 XML 구성 파일 jabber_register.xml 예시입니다. 이 파일은 사용자 등록 기능의 동시 처리 능력을 측정하기 위해 작성되었습니다.

<?xml version="1.0"?>

<tsung loglevel="notice" dumptraffic="false" version="1.0">

  <!-- Tsung 클라이언트 설정 -->
  <clients>
    <client host="localhost" use_controller_vm="true"></client>
  </clients>

  <!-- Tigase 서버 연결 정보 -->
  <servers>
    <server host="10.3.93.213" port="5222" type="tcp"/>
  </servers>

  <!-- 테스트 로드 프로파일 -->
  <load>
    <arrivalphase phase="1" duration="5" unit="minute">
      <users maxnumber="20" interarrival="10" unit="second"></users>
    </arrivalphase>
  </load>

  <!-- 테스트 변수 설정 -->
  <options>
    <option type="ts_jabber" name="global_number" value="20"/>
    <option type="ts_jabber" name="userid_max" value="20"/>
    <option type="ts_jabber" name="domain" value="tsung213"/>
    <option type="ts_jabber" name="username" value="tsung"/>
    <option type="ts_jabber" name="passwd" value="tsung"/>
  </options>

  <!-- 세션 정의 -->
  <sessions>
    <session probability="100" name="jabber-register" type="ts_jabber">
      <request>
        <jabber type="connect" ack="local"></jabber>
      </request>
      <request>
        <match do="abort" when="match">error</match>
        <jabber type="register" ack="local" id="new"></jabber>
      </request>
      <request>
        <jabber type="close" ack="local"></jabber>
      </request>
    </session>
  </sessions>
</tsung>

설정 파일을 저장한 후, 다음 명령어로 테스트를 시작합니다:

/usr/local/tsung/bin/tsung -f /usr/local/tsung/share/doc/tsung/examples/jabber_register.xml start

테스트 종료 후, 결과 로그 디렉터리로 이동하여 보고서 생성:

cd /root/.tsung/log/20140827-1500
/usr/local/tsung/lib/tsung/bin/tsung_stats.pl

생성된 결과 파일은 Windows 머신으로 복사해 브라우저에서 열람 가능합니다.

최종적으로, Tigase 서버와 연결된 MySQL 데이터베이스에 접속하여 확인하면, 설정상 20명의 사용자가 등록되도록 되어 있지만 실제로는 6명만 성공한 경우가 발생할 수 있습니다. 이는 네트워크 지연, 서버 과부하, 또는 임시 오류 등 다양한 요인에 의해 발생하며, 일반적인 테스트 현상입니다.

태그: Tsung Tigase XMPP Performance-Testing Load-Testing

7월 19일 20:03에 게시됨