The default settings for the AnthillPro server tend to work well for many customers. However, in extreme cases where either the server hardware has limitations, or the server activity and user base is large, these tuning options may help.
Adding these options to the setenv.sh file (3.8.3+), or modifying your ah3server launch script to include these arguments will improve the server's usage of available resources and UI responsiveness.
The following options deal with the heap size of the server java process as well as garbage collection performance. It is recommended that users perform their own analysis, using -XX:+PrintGCDetails, -XX:+PrintGCTimeStamps, -XX:+PrintHeapAtGC, -verbose:gc, & -Xloggc:gc.log flags as well as -Xms64m -Xmx3g (32 bit) or -Xmx6g (64 bit), to determine what heap sizes and ratios work best for them.
Adding these options to the setenv.sh file (3.8.3+), or modifying your ah3server launch script to include these arguments will improve the server's usage of available resources and UI responsiveness.
The following options deal with the heap size of the server java process as well as garbage collection performance. It is recommended that users perform their own analysis, using the -verbose:gc & -Xverbosegclog<filename> flags as well as -Xms64m -Xmx3g (32 bit) or -Xmx6g (64 bit), to determine what heap sizes and ratios work best for them.
You can modify the following properties in the base.xml file to change performance to the database:
<property name="maxActive"> <value>280</value> </property>
<property name="maxIdle"> <value>280</value> </property>
<property name="minIdle"> <value>280</value> </property>
NOTE: SETTING "maxActive", "maxIdle", AND "minIdle" VALUES TOO HIGH WITHOUT SETTING UP THE DATABASE PROPERLY TO HANDLE THE HIGHER NUMBER OF CONNECTIONS CAN AND WILL FLOOD THE DATABASE, THEREBY DECREASING PERFORMANCE (POSSIBLY TO A CRAWL). ALSO, THESE VALUES MAY BE OVERWROTE UPON UPGRADE!
Modify:
<bean id="dataSource0" class="com.urbancode.anthill3.spring.DecryptPasswordDataSource" destroy-method="close"> <property name="driverClassName"> <value>${install.db.driver}</value> </property> <property name="url"> <value>${install.db.url}</value> </property> <property name="username"> <value>${install.db.user}</value> </property> <property name="password"> <value>${install.db.password}</value> </property> <property name="maxActive"> <value>280</value> </property> <property name="maxIdle"> <value>280</value> </property> <property name="minIdle"> <value>280</value> </property> <property name="defaultTransactionIsolation"> <value>2</value> </property> <property name="testOnBorrow"> <value>true</value> </property> <property name="validationQuery"> <value>${install.db.validationQuery}</value> </property> <!-- not available in our version or the database connection pool library <property name="validationQueryTimeout"> <value>10</value> </property> --> <!-- track abandoned connections. this adds a overhead. only enable if connections are being leaked. <property name="logAbandoned"> <value>true</value> </property> <property name="removeAbandonedTimeout"> <value>300</value> </property> <property name="removeAbandoned"> <value>false</value> </property> --> </bean>
These are Linux tunables for increasing the number of threads and sockets available to a process.
Limits the number of threads. The limit is system-wide and configured system-wide. The name implies this is a process limit, but Linux counts threads as processes.
Limits the number of threads. The limit is system-wide and configured system-wide.
Limits the number of memory mapped areas. The limit is per process and configured system-wide.
Memory mappings are used for thread stacks. The default value may be sufficient even if other tunables required adjustment.
Limits the number of threads. The limit is per user and configured per user. The name implies this is a process limit, but Linux counts threads a processes.
Limits the number of open files and sockets. The limit is per process and configured per user.
While every effort is made by the staff at IBM to ensure that accurate information is disseminated through this medium, IBM makes no representation about the content and suitability of this information for any purpose. The contents on this site are provided "as is" without express or implied warranty. In no event shall IBM be liable for any special indirect or consequential damages or any damages whatsoever resulting from loss of income or profits, whether in an action of contract, negligence or other tortious action, arising in connection with the use or performance of this information.
Further, IBM has provided "hypertext links" to a number of sites (both internal & external) as a service to our readers. This should NOT be taken as implying any link between us and those various organizations or individuals, nor can we be responsible for the content on their web site. IBM reserves the right to alter, amend, or delete any contents without notice. Any reproduction of information from this site in partial or full is strictly prohibited and will result in legal action unless you have prior written permission from the site owner!