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"
<!-- 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" />
<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>