Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Performance problem - load test for 2-3k users

  • limepl
  • limepl's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 2 weeks ago #214699 by limepl
Hello,

LimeSurvey: 3.25.20
2 x apache 2.4 (Linux), php 7.4.16 (php-fpm) - 4 CPU, 8 GB RAM
MSSQL 2019 ("15.00.2080") on Windows - 8 CPU, 8 GB RAM
"DriverName": "libmsodbcsql-17.7.so.1.1", "DriverODBCVer": "03.52"
Redis cluster stores users session.
LAN environment
APC + Opcache

Load test simulating total 1k users completes survey. 10 user starting per 1 sec. Database with only one survey. Average user time = 5 sec.
Test for 2k users looks terrible. Average time grows to 30 sec. CPU on Apache and MSSQL machines keeps 100% CPU.
Looks than bottleneck is the database. There aren't long running queries at all but database server is overload. Many and very heavy queries for CPU are
Code:
SELECT k.column_name field_name FROM [INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] (@P1 nvarchar(4000),@P2 nvarchar(4000)) SELECT k.column_name field_name FROM [INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] k LEFT JOIN [INFORMATION_SCHEMA].[TABLE_CONSTRAINTS] c ON k.table_name = c.table_name AND k.constraint_name = c.constraint_name WHERE c.constraint_type ='PRIMARY KEY' AND k.table_name = @P1 AND k.table_schema = @P2
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 2 weeks ago #214701 by holch
How likely is ist that in a survey with 1000 participants every second 10 users start? I mean, this scenary would be more likely in a survey where you invite 100k or more at the same time (which you never do, you spread the invitations out over a long period of time).

So what is your real expected scenario? You really think that you'll have 10 respondents starting every second? This means you would have 600 participants within the first minute, in 10 minutes you would have 6000?

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 2 weeks ago #214707 by DenisChenu
Replied by DenisChenu on topic Performance problem - load test for 2-3k users
PHP on windows + MSSQL ?

My opinion : for performance : go to a LAMP

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • limepl
  • limepl's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 2 weeks ago - 3 years 2 weeks ago #214710 by limepl
I would prefer not to talk about test assumptions. It may not be a completely realistic scenario, but such requirements I have to meet.
I would like to know opinion of people who maintain similar environments. Does the situation I described means for example a configuration problem or maybe the application will not allow more?
Please suggest how can I improve performance.
Last edit: 3 years 2 weeks ago by limepl.
The topic has been locked.
  • limepl
  • limepl's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 2 weeks ago #214711 by limepl
Apache with PHP on Linux, MSSQL on Windows Server
The following user(s) said Thank You: DenisChenu
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 2 weeks ago #214715 by holch

I would prefer not to talk about test assumptions.


OK, OK, I am quiet... ;-)

I am no server expert and surely not in Windows enviroments (I understand that you run Limesurvey under Linux, but the database under Windows - maybe the connection between the two servers.... ahhhh, no, I promissed to be quiet...)

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
More
3 years 2 weeks ago #214722 by jelo

Does the situation I described means for example a configuration problem or maybe the application will not allow more?

Looks more like a resource/config issue. But there are too many little things which can cause high loads. LimeSurvey is not the limit here, even though it might runs unoptimized SQL-queries and code. But Apache with only 8 GB RAM will be a bottleneck when trying to handle thousands of users at once.Even if you have two Apaches.And 8 GB RAM for a databaseserver is low too.

What tool is used for loadtesting? What is the maximum  of concurrent requests your setup can handle without issues?
Are you testing with both apaches as loadbalancer?
What is your test survey? Can you test with just an simple survey (welcome page, 1 group, 1 displayquestion)?
What does "LAN environment" mean in technical terms? What LinuxOS is used? What Windows OS is used?

I'm not so sure about the bottleneck being the SQLServer. But have to admit I don't use LimeSurvey with SQLServer.
LimeSurvey is developed and tested mostly on LAMP. Apache is sometimes replaced with NGINX.
 

The meaning of the word "stable" for users
www.limesurvey.org/forum/development/117...ord-stable-for-users
The topic has been locked.
More
3 years 1 week ago #214732 by surveySn
Replied by surveySn on topic Performance problem - load test for 2-3k users
My server:
CentOS 7.7.1908
cpu and memory

MySQL takes up 200% of CPU

I don't have the money to update a higher configuration server.
 
The topic has been locked.
More
3 years 1 week ago #214737 by jelo

My server:
 
What is the relation of your post and the post of the thread-starter? For me it looks like your post is non related to the post of the user limepl.
 

The meaning of the word "stable" for users
www.limesurvey.org/forum/development/117...ord-stable-for-users
The following user(s) said Thank You: DenisChenu
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose