The following is a comprehensive but not extensive information guide regarding the server requirements for hosting SSI Web surveys. Specific instructions on configuring a server for different versions of SSI Web may be found here: http://www.sawtoothsoftware.com/serversetup.
Linux Server Software
Linux is a computer operating system that was originally developed as a free operating system for personal computers. It has since been ported to more computer hardware platforms than any other operating system. Some recommended Linux web servers include Nginx, Apache, and Lighttpd.
You will want to configure the Linux software (or have your hosting provider do it for you) so that it can handle high amounts of traffic. Usually this means changing a configuration key such as
simultaneous_connections to be higher than the default settings.
For SSI Web 8 and newer, you will also need to alter the configuration of the database settings. For example, MySQL has
max_connections set to a default value of 100. Setting this to something higher like 500 or 1000 would be better. For SSI Web 8, MySQL 5.0 or newer is required.
In order to handle more requests, you may also want to install the
mod_perl module for Apache, at least version 2.0. It embeds a Perl interpreter into the Apache server so that dynamic content produced by Perl scripts can be served faster than relaunching the Perl interpreter for each request.
FastCGI, a variation of the Common Gateway Interface (CGI) is also available for all web servers and helps reduce the overhead associated with interfacing the web server and CGI programs so that a server can handle more web page requests at once. Use at least version 1.5.
Finally, 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 Server Software
If you are using a Microsoft Internet Information Services (IIS) web server 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 (www.strawberryperl.com) or ActiveState's ActivePerl (www.activestate.com/activeperl). Use version 5.7 or newer.
All Server Software
Regardless of the operating system of your server software, SSI Web 8 (and later) users will need to add in 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 (1.6 or newer) and
DBD-mysql (4.02 or newer) on Windows and
DBD::mysql on Linux for MySQL database servers or
DBD::ODBC for Microsoft database servers (1.4.3 or newer).
Hardware requirements vary depending on how many respondents you believe will 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 them all to take the survey at roughly the same time, you should have at least 2GB of memory, a 3.2Ghz dual core processor, and 10 Gbps network throughput.
Furthermore, 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.
We recommend at least 4GB of memory (8GB 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 SSI Web 8, 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 the following links for additional information: https://www.owasp.org
Finally, plan on using more memory and central processing unit (CPU) cycles if you include a secure sockets layer (SSL) protocol for your study.