powered by Jive Software

How to load test the openfire server?


#1

Hi,

I am looking for a way to load test the openfire server.

But I can’'t finde any software for this.

Do you know of any software that can simulate the behaviour of 1000+ current users?

Kind regards

Hasse


#2

Tsung is a good framework to perform load test. http://tsung.erlang-projects.org/

You might want to have a look at this page:

http://wiki.igniterealtime.org/display/NINJA/Monitorloadontheserver


#3

Thank you, that will do the job.

/Hasse


#4

Can you share some of your tsung.xml examples?


#5

Hi,

I must admit that I gave up.

I was able to compile and run tsung (that was the first big problem)

and as fare as I remember I was also able to connect to openfire with the standard jabber example that came with tsung.

I’'am not of much help… sorry

/Hasse


#6

The following post is an example of a tsung.xml file that works on my local. Key notes:

The users are newuser1, newuser2 and newuser3. Their passwords are 01, 02 and 03, respectively.

The Openfire server is on IP 172.27.1.45.

Each user will connect, authenticate, set their presence to “online”, go offline and disconnect.

Sorry about the poor formatting, not sure how to do that correctly on this forum.

Message was edited by: cseibert


#7
<?xml version="1.0"?>


#8

Is there a way to quickly add a large number of generic accounts for this purpose? I would like to try and simulate a heavy load with 1000 or so sessions.

I’‘m using MySQL as the database, I’'m wondering if I could write a script with perl and dbi to add a bunch of records to the jiveUser table.


#9

I think that the tsung framework can actually add the users for you. But I have not done that.

I’‘m actually using the Openfire JDBCUserProvider and JDBCAuthProvider, so I was able to add thousands of fake users that way. It might be something to look into, as it’'s fairly easy to work with and just requires you to write some TSQL.

One note: for tsung, the users need to be named in a uniform fashion, ie user1, user2, etc. And their passwords also need to be uniform, ie password1, password2…

Tsung basically loops over an integer range and appends the integer to a static string for username/password, which you set in the tsung.xml.