[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 doesn’t 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