Have an idea?

Visit Sawtooth Software Feedback to share your ideas on how we can improve our products.

Server requirements for hosting Sawtooth Software Surveys

This is not a direct question but a common question that I get doing support.

The following is hopefully a comprehensive but not extensive information guide for server requirements for hosting SSI Web surveys.

Linux Software:
For web-server software, try to configure it or have your hosting provider do so, such that it can handle high amounts of traffic.  Usually this means changing a configuration key such as max_connections or simultaneous_connections to be higher than the default settings.

Some recommended web servers are nginx, apache, lighttpd.  Another feature to use for handling more requests can be mod perl for apache.  FastCGI is also available for all web servers

For V8 and newer,  the same thing can be set for the database settings.  MySql for example has max_connections set to a default value of 100. Setting this to something higher like 500 or 1000 would be better. MySQL 5.0 or newer is required.

On Linux servers, make sure the kernel setting for the maximum number of open files / file descriptors (FD) is a high number as well.  All I/O operations and processes in Linux use FDs.
This includes not only your user FD limits but the system-wide FD limits.

Windows Software:
If you are using IIS then most of the default settings are sufficient.  Apache also works for windows, please see the previous section for more details on apache settings.

Windows does not come with a perl interpreter by default so you may install any one that you like such as: strawberry perl or Activestate.

All OS's software:
V8 users will need to add the database interface and database driver perl modules.  Activestate has a perl package manager that allows you to add them very easily on windows.  They are "DBI" and "DBD-mysql" on windows and "DBD::mysql" on linux for Mysql database servers or "DBD::ODBC" for microsoft database servers.

Server hardware:
Hardware requirement vary depending how many respondents you plan to take the study at the same time.  A given number of respondents over a period of time can greatly affect your needs.
The more simultaneous respondents at a time the more server hardware you should have.  For example, if you plan on sending an email blast of 10000 and expect about that many to take the survey at the same time, you should have at least 4 GB of memory, a 3.2Ghz dual core processor, and 10 Gbps network throughput.  The apache web server consumes more memory per connection than either nginx and lighttpd, so double your memory requirements if you are using that software.  I personally recommend at least 8GB of memory 16GB preferred for high traffic studies.  If you are planning on collecting 10000 respondents over a 3 months then of course the requirements can be relaxed.  

For V8 you can also put the database server on a separate machine to help balance the server workload.  This can help relax the memory requirements as well.  For security reasons, this setup is preferred.  See https://www.owasp.org/index.php/OWASP_Backend_Security_Project_MySQL_Hardening
and
http://benchmarks.cisecurity.org/en-us/?route=downloads.browse.category.benchmarks.servers.database.mysql
http://benchmarks.cisecurity.org/en-us/?route=downloads.browse.category.benchmarks.servers.database.mssql

Plan on using more memory and cpu cycles if you include SSL for your study.
asked Jul 6, 2012 by Mike Lodder Gold (23,410 points)
edited Sep 3, 2014 by Mike Lodder
So does this mean that you can have MySQL running on one server and then have multiple load balanced web servers to handle the end users?
Yes provided the web servers each share the same survey files.

Your answer

Please only use this to answer the original question. Otherwise please use comments.
Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:

To avoid this verification in future, please log in or register.
...