Configuring Thread Stack Size
About Thread Stack Size
Thread stack size is the amount of memory allocated to a single Java Virtual Machine (JVM) thread. The ZCS application can specify JVM thread stack size using zmlocalconfig. If you are running ZCS 4.5.10 or 5.0, the default thread stack size is 256k. If you are running an earlier version of ZCS, the default thread stack size varies depending on your server.
Systems running a large number of thread stacks may need to set a smaller the thread stack size in order to improve performance. For optimal performance, Zimbra recommends configuring your thread stack size to 256k.
Important: The thread stack size should never be smaller than 128k. Setting the thread stack size smaller than this can result in a failure to allocate threads.
Configuring your Thread Stack Size
Configuring Thread Stack Size Using the CLI
To configure this parameter, you must change the thread stack size key using zmlocalconfig. If you are using ZCS 4.5.10, the key is tomcat_thread_stack_size. If you are using ZCS 5.0, the key is mailboxd_thread_stack_size.
For example, in ZCS 4.5.10, the following command will change the threadstack size to 256k:
$ zmlocalconfig -e tomcat_thread_stack_size=256k
In ZCS 5.0:
$ zmlocalconfig -e mailboxd_thread_stack_size=256k
Configuring Thread Stack Size Using Java Options
You can also configure this parameter by adding the –Xss option to tomcat_java_options. For ZCS 5.0 or later, this option is added to mailboxd_java_options.
Note:If you add the -Xss flag to java options, then the thread_stack_size key will be ignored.
The syntax of this parameter is:
-Xss<value>
For example, in order to set the thread stack size to 256k:
zmlocalconfig -e mailboxd_java_options = -client -Xss256k -verbose:gc -XX:+PrintGCDetails
Note: There is no space between the parameter designation and its value.
Monitoring for Thread Stack Size Errors
It is good practice to monitor /opt/zimbra/log/mailbox.log for errors after changing the thread stack size. If you are getting errors such as java.lang.StackOverflowError, your thread stack size is too large.
Related Articles
- Performance Tuning Guidelines for Large Deployments: Java Settings for Tomcat
- CLI zmlocalconfig (Local Configuration)