Hello,
I’m completely stuck and don’t know where to turn anymore. The official documentation doesn’t provide any details for Hippo CMS version 12 (I’m currently running Hippo CMS 12.6.8).
I inherited this project from the previous team, and it hasn’t been updated since 2017. Content managers are constantly complaining that Hippo is extremely slow and keeps freezing, with pages taking a long time to load.
I’ve allocated 56 GB of RAM to the system, but performance issues persist. I can share all of my configuration files if needed. Could you please advise me on what steps I can take to improve the performance of Hippo CMS?
I’m also willing to pay for professional help. If possible, I’d be glad to arrange a call to go through this together.
Thank you in advance!
env:
- name: "JAVA_OPTS"
value: "-Xms20g -Xmx40g -Duser.language=en -Duser.region=EN -Drepo.bootstrap=false
-Dspring.profiles.active=default,covid,ext_auth -DSITE_PROPERTIES=file:/config/site.properties
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/dumps/oom.bin"
<?xml version='1.0' encoding='utf-8'?>
<!-- Disable session persistence across Tomcat restarts -->
<Manager pathname="" />
<Resource
name="jdbc/repositoryDS" auth="Container" type="javax.sql.DataSource"
maxTotal="200" maxIdle="50" initialSize="10" maxWaitMillis="10000"
testWhileIdle="true" testOnBorrow="false" validationQuery="SELECT 1"
timeBetweenEvictionRunsMillis="10000"
minEvictableIdleTimeMillis="60000"
username=«admin» password=«admin»
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://192.168.1.1:5432/site» />
<Parameter name="repository-config" value="file:/config/repository.xml" override="false"/>
<Parameter name="repository-directory" value="/work/storage" override="false"/>
<Resources cachingAllowed="true" cacheMaxSize="1000000" />
<CookieProcessor className = "org.apache.tomcat.util.http.LegacyCookieProcessor" />
<?xml version="1.0" encoding="UTF-8"?>
<DataSources>
<DataSource name="repositoryDS">
<param name="driver" value="javax.naming.InitialContext"/>
<param name="url" value="java:comp/env/jdbc/repositoryDS"/>
<param name="databaseType" value="postgresql"/>
</DataSource>
</DataSources>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_"/>
</FileSystem>
<Security appName="Jackrabbit">
<SecurityManager class="org.hippoecm.repository.security.SecurityManager"/>
<AccessManager class="org.hippoecm.repository.security.HippoAccessManager"/>
<LoginModule class="org.hippoecm.repository.security.HippoLoginModule"/>
</Security>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
<Workspace name="${wsp.name}">
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
<param name="bundleCacheSize" value="16384"/>
</PersistenceManager>
<SearchIndex class="org.hippoecm.repository.FacetedNavigationEngineImpl">
<param name="indexingConfiguration" value="indexing_configuration.xml"/>
<param name="indexingConfigurationClass" value="org.hippoecm.repository.query.lucene.ServicingIndexingConfigurationImpl"/>
<param name="path" value="${wsp.home}/index"/>
<param name="useSimpleFSDirectory" value="true"/>
<param name="useCompoundFile" value="true"/>
<param name="minMergeDocs" value="2000"/>
<param name="volatileIdleTime" value="10"/>
<param name="maxMergeDocs" value="50000"/>
<param name="mergeFactor" value="20"/>
<param name="maxFieldLength" value="20000"/>
<param name="bufferSize" value="8192"/>
<param name="cacheSize" value="12000"/>
<param name="onWorkspaceInconsistency" value="log"/>
<param name="forceConsistencyCheck" value="false"/>
<param name="enableConsistencyCheck" value="false"/>
<param name="autoRepair" value="true"/>
<param name="analyzer" value="org.hippoecm.repository.query.lucene.StandardHippoAnalyzer"/>
<param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/>
<param name="respectDocumentOrder" value="false"/>
<param name="resultFetchSize" value="5000"/>
<param name="extractorTimeout" value="200"/>
<param name="extractorBackLogSize" value="200"/>
<param name="excerptProviderClass" value="org.apache.jackrabbit.core.query.lucene.DefaultHTMLExcerpt"/>
<param name="supportSimilarityOnStrings" value="true"/>
<param name="supportSimilarityOnBinaries" value="false"/>
</SearchIndex>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="version_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="version_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
<param name="bundleCacheSize" value="2048"/>
</PersistenceManager>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
</Versioning>
<Cluster>
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="dataSourceName" value="repositoryDS"/>
<param name="databaseType" value="postgresql"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="revision" value="${rep.home}/revision.log"/>
</Journal>
</Cluster>
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="dataSourceName" value="repositoryDS"/>
<param name="minRecordLength" value="1024"/>
<param name="maxConnections" value="200"/>
<param name="copyWhenReading" value="true"/>
</DataStore>