Recommended tuning settings for CRX 2.2 with updated hot fix pack (2.2.0.70, for example)
Always use the latest CRX hot fix pack (currently, 2.2.0.70 is available on package share; 2.2.0.71 on request).
Also, consider some tuning parameters for your JVM, repository.xml, and workspace.xml.
Following are possible parameters that can help for performance and consistency:
1: workspace.xml
for Tar Persistence Manager:
- bundleCacheSize = suggested setting is 512 (improve cache hitting ratio)
- optimizeCount = 1000 (not yet set, help to improve optimization of the tar processing time)
- indexInMemory -> true (if you have enough memory to store the index in memory x2, that improve repository access time, and tar optimization process)
- autoOptimizeAt -> if not set, the default is applied. If it is OK, either disable it or set it to finish before or after your backups.
- optimizeSleep -> 0.00001 (to speed up the tar optimization)
for Search:
- search supportHighlighting -> false (if you are not using search excerpt then disable it, so that when content is indexed it doesn't store the highlighting information in the lucene index to save space)
- search maxVolatileIndexSize -> 52428800 (also help to reduce the number of files as it keeps more in memory first)
- search mergeFactor -> 2 (can help reduce the number of files generated in a folder)
- search resultFetchSize -> 50 (already set with CQ 5.5)
- search cacheSize -> 100000 (good to increase especially as you have enough JVM memory).
- search indexing configuration to ignore cq:AuditEvent nodes for reducing index size. (check http://wiki.apache.org/jackrabbit/Search -> indexingConfiguration, original indexing_config.xml is located in the CRX bundle jar launchpad/felix/bundleXX/version1.1/bundle.jar/crx-core-2.x.xx.jar/com/day/crx/query/lucene)
2: repository.xml
- version bundlecachesize = 256 (or more if you have large heap size)
- search configuration of the system to apply similar as for the workspace.xml
3: JVM parameters
It would be good to add the following one if not yet present:
- DmemoryMaxUsage=98
- Dcrx.memoryMinStdev=1 both to avoid some "automatic" shutdown of the repository due to wrong detection of a possible memory issue.
or as currently -Dcrx.memoryCheckDisabled=true - Dorg.apache.jackrabbit.core.state.validatehierarchy=true
- Dcom.day.crx.persistence.tar.IndexMergeDelay=0 (force to have tar index merging synchronized)
- Dcom.day.crx.persistence.tar.MinIdle=15 (can help to speed up tar optimization)
Check your JVM settings and parameters to see if you are missing any of the parameters above. And, increase JVM heap size according to the cache sizes you are using (two times for indexInMemory if you use it based on the size of the index on the file system).
(1) http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/store/SimpleFSDirectory.html