> ## 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.

# Exécution de FRE sous Linux avec des limitations de taille de la mémoire partagée

> Configurez ABBYY FineReader Engine pour Linux afin d’utiliser un chemin tmpfs personnalisé au lieu de /dev/shm lors de l’exécution en mode multiprocessing dans des environnements où la mémoire partagée est limitée.

<Note>
  Cette rubrique s’applique uniquement à Linux.
</Note>

Cette rubrique explique comment configurer FineReader Engine (FRE) pour Linux afin d’utiliser un système de fichiers temporaire personnalisé (tmpfs) au lieu de l’emplacement par défaut `/dev/shm` lors de l’exécution en mode multiprocessing.

Cette fonctionnalité est destinée aux utilisateurs qui exécutent FRE dans des environnements où le point de montage de la mémoire partagée par défaut est limité ou trop petit et ne peut pas être modifié, comme AWS Lambda, certains conteneurs ou d’autres environnements Linux gérés.

<div id="overview">
  ## Vue d’ensemble
</div>

Par défaut, FRE pour Linux utilise `/dev/shm` comme emplacement de mémoire partagée lorsqu’il s’exécute en mode multiprocessing. Si la taille du point de montage de la mémoire partagée est trop faible, cela peut entraîner des erreurs lors du traitement. Pour contourner ce problème, vous pouvez configurer FRE pour utiliser un chemin tmpfs personnalisé offrant suffisamment d’espace et pouvant être redimensionné selon les besoins.

Utilisez un chemin tmpfs personnalisé lorsque :

* Vous exécutez FRE dans AWS Lambda ou dans des environnements similaires
* `/dev/shm` est trop petit et ne peut pas être augmenté
* Le multiprocessing échoue ou est instable en raison des limites de mémoire partagée

<Note>
  Le chemin tmpfs personnalisé n’est utilisé que lorsque le multiprocessing est activé :

  MultiProcessingMode = `Auto` or `Parallel`
  ProcessesCount > 1
</Note>

<div id="configuring-a-custom-location">
  ## Configuration d’un emplacement personnalisé
</div>

Il existe deux façons de configurer un emplacement tmpfs personnalisé pour FRE :

* API
* Fichier INI

<div id="api-configuration">
  ### Configuration de l’API
</div>

Pour configurer un emplacement tmpfs personnalisé à l’aide de l’API, définissez la propriété `CustomTmpfsRootPath` de l’[objet MultiProcessingParams](/fr/fine-reader/engine/api-reference/parameter-objects/multiprocessingparams) en lui attribuant le chemin souhaité, puis définissez la propriété `UseCustomTmpfsRootPath` sur `TRUE`. Par exemple :

```cpp theme={null}

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

```

<div id="ini-file-configuration">
  ### Configuration du fichier INI
</div>

Pour configurer un emplacement tmpfs personnalisé à l’aide d’un fichier INI, créez un fichier INI et modifiez votre code source pour appeler `LoadMultiProcessingParamsFromProfile()` afin de charger les paramètres à partir du fichier INI.

Ajoutez les lignes suivantes au fichier INI :

```ini theme={null}
[MultiProcessingParams]
CustomTmpfsRootPath = /dev/customShm
UseCustomTmpfsRootPath = true 
```

Ensuite, chargez le fichier INI dans votre code :

```cpp theme={null}

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

```

<div id="performance-considerations">
  ## Considérations relatives aux performances
</div>

La modification du chemin tmpfs par défaut peut avoir un impact négatif sur les performances, en particulier si l’emplacement personnalisé se trouve sur un système de fichiers standard plutôt que sur un montage tmpfs. Utilisez autant que possible un montage tmpfs pour l’emplacement personnalisé afin de préserver des performances et un niveau de sécurité optimaux. Voir les remarques importantes ci-dessous pour plus d’informations sur les performances.

<div id="important-notes">
  ## Notes importantes
</div>

1. Le SDK ne vérifie pas le type de système de fichiers.
   FRE utilisera le chemin que vous fournissez sans vérifier s’il s’agit d’un tmpfs.

   Si le chemin n’est pas un tmpfs :

   * Les fichiers sont écrits sur le disque plutôt qu’en mémoire
   * Le Processing devient nettement plus lent
   * Les données temporaires peuvent rester sur le disque

2. Vous devez monter tmpfs vous-même et vous assurer qu’il est correctement monté. La taille du montage tmpfs peut être ajustée à l’aide de l’option `size` lors du montage.

   Par exemple :

   ```bash theme={null}
   mount -t tmpfs -o size=1G tmpfs /dev/customShm
   ```

   Si le montage est absent ou mal configuré, FRE continuera à s’exécuter, mais son fonctionnement risque d’être incorrect ou inefficace.

   <Note>
     L’utilisation d’un chemin tmpfs personnalisé ne réduit pas la quantité de mémoire nécessaire à FRE.
   </Note>

3. Cette modification redirige uniquement l’emplacement d’allocation de la mémoire partagée. Les limites de mémoire doivent toujours être gérées via la configuration du système.

<div id="see-also">
  ## Voir aussi
</div>

[Objet MultiProcessingParams (interface IMultiProcessingParams)](/fr/fine-reader/engine/api-reference/parameter-objects/multiprocessingparams)

[Méthode LoadMultiProcessingParamsFromProfile](/fr/fine-reader/engine/api-reference/engine-object-iengine-interface/supplementary-methods/loadmultiprocessingparamsfromprofile-method-of-the-engine-object)

[Traitement parallèle avec ABBYY FineReader Engine](/fr/fine-reader/engine/guided-tour/advanced-techniques/parallel-processing/parallel-processing-in-linux)

[Travail avec Properties](/fr/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties)
