Welcome to the LimeSurvey Community Forum

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

Scale LS to 12,000 concurrent users for cinema

  • Jaap21
  • Jaap21's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 5 months ago - 1 year 5 months ago #233864 by Jaap21
Hello,

We would like to scale LS to process 12,000 concurrent survey participants.

I work for a cinema that has 15 branches with approximately 10 movie rooms per branch. Maximum capacity is 500 visitors per room. Everyday, 6 movies are presented in each room.

A simple calculation suggests that every day, hypothetically, 75,000 visitors could participate in a short survey. During typical opening hours (from 1800 to 2400), this translates to roughly 12,000 participants per hour. (In practice, between 1900 and 2100 are busy hours).

Indeed, we nudge visitors to participate in the survey before the movie starts, during a break and after the show is over. These 12,000 participants are thus not spread evenly but have strong peaks.

In practice, we expect a lower level of participation, even though we highly reward participants. We want to be able to handle peak load.

Filling in the questionnaire takes roughly 8 minutes. Visitors scan a qr code with their phone (no emails are sent) and members receive a link via the website.  There are 35 questions split over 10 pages.

So, each participant generates 10 page requests. At a peak load of 12,000 participants, this means 120,000 page requests per hour, where there will be strong peaks in certain 5 minute time windows (indeed, shows start 1800, 1815, 1830, etc).


Could anyone share their experiences with these massive workloads that are concentrated on very small time windows? What kind of CPU would be relevant? Can we perform benchmarks?

At the moment, we run a dedicated machine with an 8 core AMD Ryzen 7 Pro 3600X CPU with 64 GB RAM and 920 GB NVMe SSD with an 1Gbps uplink.

Also, is LimeSurvey stateless, in the sense that we can host multiple dedicated machines behind a load balancer, or should the same participant for all page requests end up at the same server? Is there a difference in file based or data based sessions?

To summarize, what hardware configuration do you suggest for 12,000 concurrent participants that generate a total of 120,000 page requests, and can we benchmark peak performance using software?

Thanks!
Last edit: 1 year 5 months ago by Jaap21.

Please Log in to join the conversation.

More
1 year 5 months ago #233865 by jelo

At the moment, we run a dedicated machine with an 8 core AMD Ryzen 7 Pro 3600X CPU with 64 GB RAM and 920 GB NVMe SSD with an 1Gbps uplink.
 
You don't mention what kind of OS and webstack you're running on that machine. Unusual CPU for an server. Is that a custom build server? Or what kind of machine is that?
What kind of uplink is providing 1 Gbps?
Not sure you really want to plan to cope with 12000 survey visitors at the same time. You write in one hour, but you are looking for a peak in one second.
The bottleneck is the bandwidth. A 1Gbps means 125 MB (in reality it often a bit less) per second. If you divide the 125MB with your concurrent users, you can see how big an HTMLpage can be transported per user. Depending on your webstack the ram usage is different with rising amount of users.

NVMe will allows you to handle session via file. Ever new visitor will cause the creation of a session file. That can be a burden cause the session file size is insanely high.
So that is another bottleneck when a lot of users visit. And since you need to extend the session file to prevent timeouts these sessions file wills stay longer on the SSD:
Are you already conducting surveys that way? With QR-Code and heavy incentive?  I'm asking cause this scenario is begging for a lot of people scanning die QR and starting to fill out the survey before the film starts. Then stop and try to continue after the film. The session will be lost and people need to start again.

Depending on the LimeSurvey version (LS3 is fine, but LS5), the amount of database connections is currently higher than needed. If you e.g place database and webserver on different machines.

The meaning of the word "stable" for users
www.limesurvey.org/forum/development/117...ord-stable-for-users

Please Log in to join the conversation.

  • Jaap21
  • Jaap21's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 5 months ago #233866 by Jaap21
Hello Jelo,

Thanks for your reply. We run Ubuntu Server 22.04 LTS. On top of that, we run Plesk Web Host as the control panel. Our server is from ionos.de (look at AMD dedicated server with NVMe)

Could we artificially stress test limesurvey somehow?

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 5 months ago #233918 by holch
Do you have any connections with user David1231? Because your requests are very similar. If so, maybe it make sense to concentrate everything in one request.

(look at AMD dedicated server with NVMe


I could only find XEON based dedicated server, but maybe I am looking at the wrong place.

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

Please Log in to join the conversation.

Lime-years ahead

Online-surveys for every purse and purpose