두 대의 물리적 머신을 활용하여 Tigase 서버의 성능을 평가하는 테스트 환경을 구성합니다. 하나는 Tigase 서버로, 다른 하나는 Tsung 클라이언트로 사용됩니다.
- 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 서버를 시작하고 접속 대기 상태로 전환합니다.
- 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명만 성공한 경우가 발생할 수 있습니다. 이는 네트워크 지연, 서버 과부하, 또는 임시 오류 등 다양한 요인에 의해 발생하며, 일반적인 테스트 현상입니다.