...
For production deployments, you may want to install the web application server, e.g., Apache Tomcat, as a service. Please refer to the documentation on the relevant operating system to do so. A guide to install Tomcat as a Windows service is available at Installing Joget as a Windows Service.
Java VM Configuration
Java VM Tuning
An important configuration would be the JVM memory allocation. If this is too low, the system will run out of memory. However if the setting is too high, there might be quite a large overhead in garbage collection. To get an optimum setting might require a bit of trial and error sometimes, depending on the usage environment.
Here are the steps to get started. You may want to start with a 1GB max heap setting and increase if the need arises.
1. Stop Joget.
...
2. Open and edit [KB:Joget Installation Directory]/joget-start.bat.
3. Modify
Modify set JAVACode Block set JAVA
on line 13 to to_OPTS=-XX:MaxPermSize=128m -Xmx512M -Dwflow.home=./wflow/
.Code Block set JAVA_OPTS=-XX:MaxPermSize=256m -Xmx1024M -Dwflow.home=./wflow/
-XX:+UseConcMarkSweepGC
4. Save and start Joget.
NOTE:
Please take note should you encounter any of the following OutOfMemory errors:
java.lang.OutOfMemoryError: Java heap space | Increase the maximum heap size -Xmx |
java.lang.OutOfMemoryError: PermGen space | Increase the maximum permgen size -XX:MaxPermSize |
java.lang.OutOfMemoryError: GC overhead limit exceeded | Enable the concurrent garbage collector -XX:+UseConcMarkSweepGC |
There are many online resources for further tuning, e.g., http://www.oracle.com/technetwork/java/performance-138178.html.
Web Application Server Configuration
Apache Tomcat Configuration
For Apache Tomcat, try setting the maxThreads Connector thread pool settings based on the estimated request load. For example, to set the maximum number of threads to 1000, edit tomcat_directory/conf/server.xml. Locate the line
...
There are many resources available online, e.g., http://www.itworld.com/networking/83035/tomcat-performance-tuning-tips.
Linux Configuration
Linux / Unix systems have a limit on the number of files that can be concurrently opened by a process. When the limit is reached, there will be an exception "Too many open files". The default for most distributions is 1024, which will not be enough for high traffic deployments. In Linux, increasing the ulimit
...
works as a workaround but this is only valid for the session. For permanent configuration, please refer to documentation for the specific distribution, e.g., http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/.
Database Configuration
Database Indexing
Form data tables generated and managed by Joget are prefixed with app_fd. By default, primary keys and foreign keys are automatically generated for these tables where necessary.
However, in more complex apps, there would be more complex database queries that make use of these tables. As such, it is recommended for indexes to be added manually into table columns when required.
MySQL Configuration
When using InnoDB in MySQL, setting an appropriate InnoDB Buffer Pool is important for large-scale performance. Details can be found here: http://dev.mysql.com/doc/refman/5.0/en/innodb-buffer-pool.html.
...
The more information provided, the faster an issue can be identified and resolved.
Backup and Restore
Backup Data
To backup an installation:
- Backup all configuration files and uploaded data files stored in joget_directory/wflow.
- Backup the database. e.g., in MySQL you can use the mysqldump utility.
Restoring Data
To restore data to an installation:
...