[jdev] RE: Client load and stress test simulator? (Roberto Della Pasqua)
Brijesh
brijesh at india.hp.com
Wed Apr 6 09:20:35 CDT 2005
>>>>>
Hello kind list,
I like proceed with massive loadstress simulator for XMPP server, does exist
already built tools for simulate massive load stress test in a LAN? So to
obtain number of I/O bytes, latency, number of concurrent users...
Thank you very much for any help and best regards.
>>>>>
Hi Roberto,
Performance test can be done using JabSimul open source tool. JabSimul
generates N number of connections, simulates common user actions (connection
status, messages, roster management). Currently JabSimul doesnt support
TC/JUD/Client-Server locking/SSL encryption. This tool can be downloaded
from http://www.jabberstudio.org/cgi-bin/viewcvs.cgi/jabsimul/jab_simul/.
!!!!Note : Use Jabber Test Suite to create users in your database/flat file
etc....
Here is the steps:
-Building JabSimul
1. Download the code from sourceforge.net.
cvs -z3 -d:pserver:anonymous at jabberstudio.org:/home/cvs co jabsimul
2. Go to jabsimul directory
cd jabsimul/jab_simul/
3. copy example makefile
cp jab_simul.xml.example jab_simul.xml
4. copy example makefile & make.
cp jab_simul.xml.example jab_simul.xmlmake
5. Edit namespace_pars.y and add a new line after line 27:
%token VARIABLE
6. Edit Makefile and replace 'byacc' with 'yacc'. Compile it. It will
create a jabsimul binary.
./configure
make
7. Edit jab_simul.xml according to requirement.
<dpsm>
<user_properities>
<filter><name>test_.*</name></filter>
<properities>
<fullname>test_%(num*2:u)-%(3+num%12000/(1+3)+7:u)</fullname>
<password>passwd%(num:u)</password>
<resource>Tester</resource>
<Xhost>yourjabberhostname.xxx</Xhost>
<sniff>/tmp</sniff>
<!--how often a login is done à
<event>
<name>connect</name>
<frequency>3000</frequency><counter>6000</counter>
</event>
<!-- add_roster: add a contact to the user roster every 'frequency' until
'max_roster_count' is reached -->
<event>
<name>add_roster</name><frequency>6000</frequency>
<user><range><from>1</from><to>5</to></range></user>
<max_roster_count>5</max_roster_count>
</event>
<!-- del_roster: removes a contact from the roster after given frequency -->
<event>
<name>del_roster</name><frequency>3000</frequency>
</event>
<!--send a message à
<event>
<name>send_message</name><frequency>3000</frequency>
<!-- users that will receive messagesà
<user><range><from>1</from><to>5</to></range></user>
<prepend_with_debug_info/>
<!-- Xfile: file with the content of the message à
<Xfile>wiadomosc.txt</Xfile>
<text>Welcome</text>
</event>
<event>
<name>change_status</name><frequency>6000</frequency>
</event>
<Xevent>
<name>logout</name><frequency>3000</frequency>
</Xevent>
<Xevent>
<name>kill_connection</name><frequency>1500</frequency>
</Xevent>
<Xevent>
<name>send_raw_bytes</name><frequency>3000</frequency>
<random_stream len="1000"/>
</Xevent>
</properities>
</user_properities>
</dpsm>
-How to use JabSimul
-------------------
1. Create 10k users in oracle database using Jabber test Suite
userreg command.
./userreg -h jabber.org -u 10000
2. Execute the Jabsimul binary from different boxes (depends on m/c
limitations)
./jab_simul
Result:
----------
The results will come in the following format(can be stored in file):
00:00.12
Conn stat: conns: total: 7 estabilished: 7
kills: total: 0 unexpected: 0
Messages: tot.sent: 39 tot.rcvd: 35
rcvd.offline: 1 rcvd.admin: 0
rcvd.normal: 34 fwd: 17 avg.time: 44 [ms]
diff check: 4 stability: 3
Roster: tot.adds: 8 avg.time: 50 [ms]
tot.dels: 15 avg.time: 63 [ms] glob_rost: 4
Presences: tot.sent: 18 tot.rcvd: 29
Packets: created: 127 sent: 127
canceled: 0 in queues: 0
--------------
>From the above results few parameters are important to note down:
Connection Status
------------------
- cons: Number of users connected
- established: Total number of concurrent users
- kills: Dropped connections
- unexpected: abnormal termination
Message Status
--------------
- tot.sent: Total number of message sent
- tot.rcvd: Total number of message received
- rcvd.offline: Total number of offline message received
- rcvd.admin: Total number of message received by admin
Roster Status
--------------
- tot.adds: Total roster added to various accounts
- tot.dels: Total roster deleted from various accounts
_____
<< ella for Spam Control >> has removed 10974 Spam messages and set aside
2923 Newsletters for me
You can use it too - and it's FREE! www.ellaforspam.com
More information about the JDev
mailing list