powered by Jive Software

1000 user connection limit?

Hi all,

I need to perform tests on openfire for my job and I’ve got a problem of number of client connected.

The test platform is installed on a VM running Windows 2003 SP2 with 2Go of memory and 2CPUs. SQL Server 2005 is also installed. I installed openfire to use a SQL database and to use my active directory test domain.

One of my collegue as installed Tsung on a linux server to perform client load tests connections on openfire. The test is simple : user tries to connect. And we wanted to perform a test on 3000 user which should be easy to manage for openfire according to the doc…

Unfortunately each time tsung starts ; we start to have connections errors when about 1000 users are connected and no one is able to connect anymore.

I searched in the forums and the web and try to modify theses parameters with no results :

Windows Registry

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems

SharedSection=1024,3072,3072 (from SharedSection=1024,3072,512)


MaxFreeTcbs = 2000 (decimal value)

MaxHashTableSize = 2000 (decimal value)

MaxUserPort = 50000

I allocated 1Go of memory to the JVM which should be enough for my small load test…

I event try with the embedded BDD and my SQL BDD on another server…

But nothing… I still have connecting errors when I reach 1000 users connected.

Is anyone have an idea ?

Openfire itself supports far more than 100,000 users. See also Openfire Requirements.

However, there is a limit in Active Directory. I’m not sure, but I think there was some kind of workaround. Try to search in this forum.


You’re talking about the MaxPageSize parameter in active directory set to 1000 by default (can be modified with NTDSUTIL). But I’m afraid it is not that. This paramter is only used when you make an LDAP query that returns more than 1000 results. Openfire performs a query for each user connection (according to the debug mode) with a filter on the username so the LDAP query returns one result each time.

Anyway, I have already modified this parameter to 5000 to be able to manage my users lists and groups in openfire and I still have connections issues.

Thx anyway… Any other idea ?

Exact error text might be useful, logs even. I know yu say the limit in AD was increased to 5K but it still smells.

can you provide Tsung with a filter for user selection? perhaps two instances of Tsung, one with sAMAccountName=a*, another with b*, if that works, your problem is Tsung/AD not openfire…

When I activate the debug on openfire I don’t seem to have any errors… I’m still trying to find clues in the files and to make java and openfire more verbose… Windows don’t show anything in the event log but I’m going to try to analyse LDAP activity.

I joigned the tsung.xml to show you how my collegue as configured tsung. It normally only tries to perform connections to openfire with 2000 users. To perform the connections we use an OU in our Active Directory dedicated to Tsung tests. It contains 50000 user account with username = password.

And as you proposed we are going to try to launch another instance of tsung with a different IP adress. It will help us to determine if there is a control made on the number of requests made from one same IP.

If you find any misconfiguration the tsung config file don’t hesitate. It will surely help us.

tsung.xml (8449 Bytes)


We’ve implemented another Tsung instance to perform our tests with a different IP address and everything went well !! We reached 2000 connections without any problem.

(tsung working config file part)

<?xml version="1.0"?>

So if we want to test 10 000 users… We will have to create 10 clients for tsung… That’s not a big deal.

Anyway, I’ve talked with a friend who’s developping in Java. He told ma that this issue could be caused by Semaphore account limitation. He also told me that this parameter could be modified under linux. But under windows ?..

So anyone heard about that problem ?

does someone know if there is a windows registry parameter for the semaphore limit ? (I haven’t found anything yet on the web for the moment. Only for hard coding.)