FAQs and Support Center

Server configuration recommendations

When building and preparing your server for a self-hosted Maple T.A. installation, you will need to perform a few post-installation configuration modifications to the system settings to optimize your software for the hardware that it is using.


Hardware requirements

The minimum system requirements for Maple T.A. are described here. While these are good guidelines, real usage requirements may vary heavily depending on the complexity of the content and the number of simultaneous users.

For example, we recommend using a machine with at least 16 CPU cores to support 200+ concurrent students, and machine with at least 32 CPU cores for 400+ concurrent students. These numbers are based on ensuring the server can handle the listed number of student with almost any type of assignment.

To budget your computing requirements, if X is the number of CPU cores on the server then
  • 60*X concurrent users will be supported on average load.
  • 15*X concurrent users will be supported on peak load.
For example, with short multiple-choice tests with a few Maple-graded questions, a 4-core machine may be able to handle 200 students. It will not support 200 students performing a complex, algorithm-heavy test (or using Math Apps) at the same time – that would require 16 CPU cores and 64 GB of memory.


Post-installation Settings - Postgres configuration

The maxActive property should not be set to more than 2 to 4 times the number of CPUs of the machine running the PostgreSQL server (64 to 128 for 32 CPUs). This setting is the maximum number of database connections and queries running at any given moment, and not the number of users that can login into Maple TA at the same time. In order to prevent errors, when there are too many active users and database connections are saturated, the maxWait property should be set to higher values, such as 120000 (2 minutes).


Post-installation Settings - Tomcat configuration

By default, the JAVA_HOME setting is set correctly to point to the location of the JRE or JDK folders that is included in the installation of Maple T.A., however if you wish to change the version of Java that Tomcat uses, you may do so in the following location:

Linux: The JAVA_HOME settings can be found in the <Maple TA>/bin/startup.sh file.
Windows: The Java installation folder path is set in the Configure Tomcat application's Java tab.

The JAVA_OPTS startup settings will need to be adjusted based on your server hardware to ensure that Tomcat can access all of the RAM. Depending on if you are using Windows or Linux, the location of these settings may differ.

Linux: The JAVA_OPTS settings can be found in the <Maple TA>/bin/catalina.sh file.
Windows: The Java options are found in the Configure Tomcat application's Java tab.

Similarity, if you are running Tomcat as a service in Linux versus the regular Maple T.A. startup script, you may need to add a few lines to your startup.sh file.

Here are the recommended guidelines:
  • -Xms = The initial amount of RAM to reserve for the Java Virtual Machine on startup. The system will use at least 1GB to start up, so it is best to reserve more than this. If system has less than 16GB of RAM, set the same as Xmx, otherwise set to 8GB. 
  • -Xmx = The maximum amount of RAM the Java VM is allowed to use. Set it to 3/4 of total system RAM as a general rule. You can adjust this as needed after running load tests on the system.
  • -PermSize = Set the same as MaxPermSize.
  • -MaxPermSize = Should not be set higher than 8GB. Otherwise, use these values as a guideline:
    Physical Server RAM MaxPermSize setting
    6 GB 1G
    8 GB 2G
    12 GB 4G
    16 GB 5G
    24 GB 6G
    32+ GB 8G

JAVA_OPTS Examples

For a 16GB server, you would use the following JAVA_OPTS declaration:
JAVA_OPTS="-Dfile.encoding=UTF-8 -Duser.language=en -Xms8G -Xmx12G -XX:PermSize=5G -XX:MaxPermSize=5G"
For a 64GB server:
JAVA_OPTS="-Dfile.encoding=UTF-8 -Duser.language=en -Xms8G -Xmx48G -XX:PermSize=8G -XX:MaxPermSize=8G"

Did you find this article helpful?

© Maplesoft, a division of Waterloo Maple Inc. 2017.   • Terms of Use | Privacy | Trademarks | Site Map