- Posts: 5
- Thank you received: 1
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
- Topic Author
- Offline
- New Member
Less
More
3 years 1 month ago #214699
by limepl
Performance problem - load test for 2-3k users was created 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
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
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 11710
- Thank you received: 2756
3 years 1 month ago #214701
by holch
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
Replied by holch on topic Performance problem - load test for 2-3k users
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?
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
- Away
- LimeSurvey Community Team
Less
More
- Posts: 13714
- Thank you received: 2502
3 years 1 month ago #214707
by DenisChenu
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.
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
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
- Topic Author
- Offline
- New Member
Less
More
- Posts: 5
- Thank you received: 1
3 years 1 month ago - 3 years 1 month ago #214710
by limepl
Replied by limepl on topic Performance problem - load test for 2-3k users
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.
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 1 month ago by limepl.
The topic has been locked.
- limepl
- Topic Author
- Offline
- New Member
Less
More
- Posts: 5
- Thank you received: 1
3 years 1 month ago #214711
by limepl
Replied by limepl on topic Performance problem - load test for 2-3k users
Apache with PHP on Linux, MSSQL on Windows Server
The following user(s) said Thank You: DenisChenu
The topic has been locked.
- holch
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 11710
- Thank you received: 2756
3 years 1 month ago #214715
by holch
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.
Replied by holch on topic Performance problem - load test for 2-3k users
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.
- jelo
- Offline
- Platinum Member
Less
More
- Posts: 5036
- Thank you received: 1259
3 years 1 month ago #214722
by jelo
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
Replied by jelo on topic Performance problem - load test for 2-3k users
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.Does the situation I described means for example a configuration problem or maybe the application will not allow more?
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.
- surveySn
- Offline
- Premium Member
Less
More
- Posts: 136
- Thank you received: 4
3 years 1 month ago #214732
by surveySn
Replied by surveySn on topic Performance problem - load test for 2-3k users
The topic has been locked.
- jelo
- Offline
- Platinum Member
Less
More
- Posts: 5036
- Thank you received: 1259
3 years 1 month ago #214737
by jelo
The meaning of the word "stable" for users
www.limesurvey.org/forum/development/117...ord-stable-for-users
Replied by jelo on topic Performance problem - load test for 2-3k users
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.My server:
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.