AnsweredAssumed Answered

'Control' 4.2.e memory footprint

Question asked by vincent.ravier on Dec 18, 2013
Latest reply on Dec 26, 2013 by vincent.ravier
Hi,

Given those results after FTP vs Import methods, I tried 4.2.e. Alfresco being way less coupled to Lucene by using SOLR, things get better.

However, as we will have about 1k+ files uploaded/day, we are really concerned about server resources, and Alfresco's memory consumption. So, we would like to scale the solution and server's allocated resources, and be sure we won't run out of heap memory. After fews tests, I've figured out that the following classes have a high impact on heap memory:
- org.alfresco.repo.cache.DefaultSimpleCache
- org.alfresco.repo.cache.lookup.CacheRegionKey
- org.alfresco.repo.cache.lookup.CacheRegionKeyValue
- org.alfresco.repo.domain.node.AbstractNodeDAOImpl$ParentAssocsCache
- org.alfresco.repo.domain.node.AuditablePropertiesEntity
- org.alfresco.repo.domain.node.ChildAssocEntity
- org.alfresco.repo.domain.node.NodeEntity
- org.alfresco.repo.domain.node.NodeUpdateEntity
- org.alfresco.repo.domain.node.ParentAssocsInfo
- org.alfresco.repo.domain.node.StoreEntity
- org.alfresco.repo.domain.node.TransactionEntity
- org.alfresco.repo.lock.mem.LockState

By lowering all max cache item values in caches.properties, I've been able to reduce to 0 (or almost) the memory footprint of some classes, but those following still consume memory:
- org.alfresco.repo.domain.node.AbstractNodeDAOImpl$ParentAssocsCache
- org.alfresco.repo.domain.node.AuditablePropertiesEntity
- org.alfresco.repo.domain.node.ChildAssocEntity
- org.alfresco.repo.domain.node.NodeEntity
- org.alfresco.repo.domain.node.ParentAssocsInfo
- org.alfresco.repo.domain.node.TransactionEntity
- org.alfresco.repo.lock.mem.LockState

ServerEntity and StoreEntity still show an instance count related to uploaded document number, but the memory allocated is not a real threat.
Lowering cache max item values obviously did impact performances, but the point was only to identify which value is affecting which class instanciation.

What else can be tuned to "control" Alfresco's memory consumption, so we can determine the JVM heap memory size? Or lower some values at the price of a managed performance loss?

Outcomes