Performance considerations
If you expect heavy load, consider the following performance recommendations:
All proxy instances that use the MySQLSessionStoreServlet with the same connect string should have the same master. The connect string is set in the ConnectString parameter of the MySQLSessionStoreServlet.
If a nevisProxy instance uses more than one web.xml file, enable session reaping in only one of these web.xml files. If the respective web.xml file contains several MySQLSessionStoreServlets using the same connect string, enable session reaping for only one of the servlets with the same connect string.
Disabling session reaping helps avoid deadlock or lock wait timeout errors (depending on the configuration). Such errors slow down the DB and replication, with the risk of session inconsistency. However, make sure that at least one MySQLSessionStoreServlet is reaping, to prevent the database from being filled up.
Set the parameter TimeOut of the MySQLSessionStoreServlet to "10" (default is 3600 s).
Set the parameter UpdateTimeStampMinInterval of the SessionManagementFilter to "60" (one minute).
Optimize your database. We got the best results with these settings:
Parameter | Recomended Setting |
---|---|
innodb_buffer_pool_size | As a rule of thumb, take 80 percent of the RAM size for the buffer pool size. Typical values are:5-6 GB (8 GB RAM) 20-25 GB (32 GB RAM) * 100-120 GB (128 GB RAM) |
innodb_log_file_size | Take 25 to 50 percent of the buffer pool size for the size of the log file. The buffer pool size is set in the parameter innodb_buffer_pool_size. |
thread_pool_size | The number of CPU cores. |
innodb_deadlock_detect | 0 (To make sure that the sync process does not stop after a deadlock.) |
innodb_print_all_deadlocks | 1 (To make sure that deadlocks are printed.) |