I’m completely stuck. Help please!

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>

Hi,

<param name="bundleCacheSize" value="16384"/>

that value is very high, but I am not sure if it is also applied: changing the value and restarting a server with an existing index/repository, will not change the value, see:

You’ll need to remove workspace.xml from the index to be regenerated.
For the other things I would enable diagnostics, that might give you some more info about the problem:

Hi there,

Please reach out to me directly at william.borgbarthet@bloomreach.com. We can have a quick call to discuss how we can help you most effectively.

Thanks

William