cancel
Showing results for 
Search instead for 
Did you mean: 

Performance of Transform ant Thumbnails Alfresco Community 7.2

marcog
Confirmed Champ
Confirmed Champ

Hello everybody.

I'm using Alfresco 7.2 Community on an on-premise server with the following architecture:
- CPU (6 cores)
model name: Intel(R) Xeon(R) Platinum 8260 CPU @ 2.40GHz
- Memory:
40 GiB on the host
alfresco container: 10GiB
solr6 container: 16GiB
container transform: 16GiB
- ONLY:
LSB Version: :core-4.1-amd64:core-4.1-noarch
Description: CentOS Stream release 8

We have a volume with approximately 6 Tb of .bin files.

We have an installation using docker-compose.yml by default, only the memory data of the containers changed (as above).

When we do a massive load of documents, we saw that the transform-core-aio Container (micro-service) stops working. The others remain in the air, but it starts a very large slowdown in accesses and indexing.

The error that is generated in the log is:
transform-core-aio_1 | 2022-09-02 19:46:10.751 ERROR 1 --- [o-8090-exec-984] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space] with root cause
transform-core-aio_1 |
transform-core-aio_1 | java.lang.OutOfMemoryError: Java heap space

There is access through Share and external application. We are also making the default Workspace available for use.

We are also wanting to avoid the html to pdf transform. We've already added the following lines to alfresco-global.properties:
content.transformer.OpenOffice.extensions.html.pdf.supported=false
content.transformer.OpenOffice.extensions.html.pdf.maxSourceSizeKBytes=0
content.transformer.OpenOffice.extensions.html.txt.supported=false
content.transformer.OpenOffice.extensions.html.txt.maxSourceSizeKBytes=0
system.thumbnail.mimetype.maxSourceSizeKBytes.html=0

Has anyone encountered this scenario? We would like some help to improve the performance of this scenario.

Thank you all.

3 REPLIES 3

4535992
Star Collaborator
Star Collaborator

The old porperties on  "alfresco-global.properties" are no longer valid.

You must override the file "0100-basePipelines.json" like explained here https://github.com/Alfresco/acs-packaging/blob/release/6.2.N/docs/custom-transforms-and-renditions.m...

and remove these two pipelines form the file "alfresco-community-repo-720\repository\src\main\resources\alfresco\transforms\0100-basePipelines.json":

    {
      "transformerName": "htmlToPdfViaTXT",
      "transformerPipeline" : [
        {"transformerName": "string", "targetMediaType": "text/plain"},
        {"transformerName": "libreoffice"}
      ],
      "supportedSourceAndTargetList": [
        {"sourceMediaType": "text/html",                             "targetMediaType": "application/pdf" }
      ],
      "transformOptions": [
      ]
    },
    {
      "transformerName": "htmlToImageViaTXT",
      "transformerPipeline" : [
        {"transformerName": "string", "targetMediaType": "text/plain"},
        {"transformerName": "textToImageViaPdf"}
      ],
      "supportedSourceAndTargetList": [
        {"sourceMediaType": "text/html",                             "targetMediaType": "image/png" }
      ],
      "transformOptions": [
        "pdfRendererOptions",
        "imageMagickOptions"
      ]
    }

marcog
Confirmed Champ
Confirmed Champ

Thanks

but how do I apply these removals in docker environment.

I currently use a dockcer-compose.yml based installation.

Marco Gianini

cesarista
World-Class Innovator
World-Class Innovator

Hi Marco:

To find the json file inside alfresco.war, you may find a jar in WEB-INF/lib/alfresco-repository-14.145.jar 

Inside this jar, you can find the json file under alfresco/transforms/

Then, you may have several options for deployment:

  • One is to create a modified version of the file under /usr/local/tomcat/shared/alfresco/extension/pipelines and restart the docker image of the repo.
  • Other possibility is to define a volume to manage configuration under some folder of shared/alfresco, in this case you can do it with pipelines directory, but you may use it for other config files. This may be not an orthodox practice, but it is useful when using docker compose installations.

Other point is that your AIO process is having an OOM error, so probably, you need first to increase heap memory settings for this image. Normally in the docker compose:

  • java.lang.OutOfMemoryError: Java heap space

https://github.com/AlfrescoArchive/acs-community-deployment/blob/master/docker-compose/docker-compos...

transform-core-aio:
 image: alfresco/alfresco-transform-core-aio:2.3.5
 mem_limit: 1536m
 environment:
 JAVA_OPTS: " -Xms256m -Xmx1536m"
 ports:
 - 8090:8090

Regards.

--C.