Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt

Use this file to discover all available pages before exploring further.

Este tema solo se aplica a Linux.
En este tema se describe cómo configurar FineReader Engine (FRE) para Linux para que use un sistema de archivos temporal personalizado (tmpfs) en lugar de /dev/shm, que es la ubicación predeterminada, cuando se ejecuta en modo de multiprocesamiento. Esta funcionalidad está pensada para usuarios que ejecutan FRE en entornos donde el montaje predeterminado de memoria compartida está restringido o es demasiado pequeño y no se puede cambiar, como AWS Lambda, determinados contenedores u otros entornos Linux administrados.

Descripción general

De forma predeterminada, FRE para Linux usa /dev/shm como ubicación para la memoria compartida cuando se ejecuta en modo de multiprocesamiento. Si el tamaño del punto de montaje de la memoria compartida es demasiado pequeño, puede provocar errores durante el procesamiento. Para solucionar este problema, puede configurar FRE para que use una ruta de tmpfs personalizada que tenga suficiente espacio y cuyo tamaño pueda ajustarse según sea necesario. Use una ruta de tmpfs personalizada cuando:
  • Ejecute FRE en AWS Lambda o en entornos similares
  • /dev/shm sea demasiado pequeño y no pueda ampliarse
  • El multiprocesamiento falle o sea inestable debido a los límites de la memoria compartida
La ruta de tmpfs personalizada solo se usa cuando el multiprocesamiento está habilitado:MultiProcessingMode = Auto o Parallel ProcessesCount > 1

Configurar una ubicación personalizada de tmpfs

Hay dos opciones para configurar una ubicación personalizada de tmpfs para FRE:
  • API
  • Archivo INI

Configuración de la API

Para configurar una ubicación personalizada de tmpfs mediante la API, establezca la propiedad CustomTmpfsRootPath del objeto MultiProcessingParams en la ruta deseada y, a continuación, establezca la propiedad UseCustomTmpfsRootPath en TRUE. Por ejemplo:

CSafePtr<IMultiProcessingParams> multiProcessingParams;
engine->get_MultiProcessingParams( &multiProcessingParams );
multiProcessingParams->put_CustomTmpfsRootPath( "/dev/customShm" );
multiProcessingParams->put_UseCustomTmpfsRootPath( true );

Configuración del archivo INI

Para configurar una ubicación personalizada de tmpfs mediante un archivo INI, cree un archivo INI y modifique su código fuente para llamar a LoadMultiProcessingParamsFromProfile() a fin de cargar la configuración desde el archivo INI. Agregue las siguientes líneas al archivo INI:
[MultiProcessingParams]
CustomTmpfsRootPath = /dev/customShm
UseCustomTmpfsRootPath = true 
Luego, cargue el archivo INI en su código:

engine->LoadProfile( "path/to/profile.ini" );
engine->LoadMultiProcessingParamsFromProfile();

Consideraciones de rendimiento

Cambiar la ruta predeterminada de tmpfs puede afectar negativamente al rendimiento, especialmente si la ubicación personalizada se encuentra en un sistema de archivos convencional en lugar de en un montaje tmpfs. Siempre que sea posible, use un montaje tmpfs para la ubicación personalizada a fin de mantener un rendimiento y una seguridad óptimos. Consulte las Notas importantes a continuación para obtener más información sobre el rendimiento.

Notas importantes

  1. El SDK no valida el tipo de sistema de archivos. FRE usará la ruta que proporcione sin comprobar si es tmpfs. Si la ruta no es tmpfs:
    • Los archivos se escriben en disco en lugar de en memoria
    • El procesamiento se vuelve considerablemente más lento
    • Los datos temporales pueden permanecer en disco
  2. Debe montar tmpfs usted mismo y asegurarse de que esté montado correctamente. El tamaño del montaje tmpfs puede ajustarse mediante la opción size al montar. Por ejemplo:
    mount -t tmpfs -o size=1G tmpfs /dev/customShm
    
    Si el montaje no existe o está mal configurado, FRE seguirá ejecutándose, pero puede funcionar de forma incorrecta o ineficiente.
    Usar una ruta tmpfs personalizada no reduce la cantidad de memoria que requiere FRE.
  3. Este cambio solo redirige dónde se asigna la memoria compartida. Las limitaciones de memoria deben seguir gestionándose mediante la configuración del sistema.

Consulte también

Objeto MultiProcessingParams (interfaz IMultiProcessingParams) Método LoadMultiProcessingParamsFromProfile Procesamiento paralelo con ABBYY FineReader Engine Trabajo con Propiedades