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

# FRE für Linux bei begrenzter Shared-Memory-Größe ausführen

> Konfigurieren Sie ABBYY FineReader Engine für Linux so, dass im Multiprocessing-Modus in Umgebungen mit begrenztem Shared Memory anstelle von /dev/shm ein benutzerdefinierter tmpfs-Pfad verwendet wird.

<Note>
  Dieses Thema gilt nur für Linux.
</Note>

In diesem Thema wird beschrieben, wie FineReader Engine (FRE) für Linux so konfiguriert wird, dass beim Ausführen im Multiprocessing-Modus anstelle des Standardpfads `/dev/shm` ein benutzerdefiniertes temporäres Dateisystem (tmpfs) verwendet wird.

Diese Funktion ist für Benutzer vorgesehen, die FRE in Umgebungen ausführen, in denen der standardmäßige Shared-Memory-Mount eingeschränkt oder zu klein ist und nicht geändert werden kann, z. B. in AWS Lambda, bestimmten Containern oder anderen verwalteten Linux-Umgebungen.

<div id="overview">
  ## Übersicht
</div>

Standardmäßig verwendet FRE for Linux `/dev/shm` als Speicherort für den Shared Memory, wenn es im Multiprocessing-Modus ausgeführt wird. Wenn die Größe des Mounts für den Shared Memory zu klein ist, kann dies während der Verarbeitung zu Fehlern führen. Um dieses Problem zu umgehen, können Sie FRE so konfigurieren, dass ein benutzerdefinierter tmpfs-Speicherort verwendet wird, der über ausreichend Platz verfügt und bei Bedarf vergrößert werden kann.

Verwenden Sie einen benutzerdefinierten tmpfs-Pfad, wenn:

* FRE in AWS Lambda oder ähnlichen Umgebungen ausgeführt wird
* `/dev/shm` zu klein ist und nicht vergrößert werden kann
* Multiprocessing aufgrund von Beschränkungen beim Shared Memory fehlschlägt oder instabil ist

<Note>
  Der benutzerdefinierte tmpfs-Pfad wird nur verwendet, wenn Multiprocessing aktiviert ist:

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

<div id="configuring-a-custom-location">
  ## Konfigurieren eines benutzerdefinierten Speicherorts
</div>

Es gibt zwei Möglichkeiten, einen benutzerdefinierten tmpfs-Speicherort für FRE zu konfigurieren:

* API
* INI-Datei

<div id="api-configuration">
  ### API-Konfiguration
</div>

Um über die API einen benutzerdefinierten tmpfs-Speicherort zu konfigurieren, setzen Sie die Eigenschaft `CustomTmpfsRootPath` des [MultiProcessingParams-Objekts](/de/fine-reader/engine/api-reference/parameter-objects/multiprocessingparams) auf den gewünschten Pfad und anschließend die Eigenschaft `UseCustomTmpfsRootPath` auf `TRUE`. Zum Beispiel:

```cpp theme={null}

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

```

<div id="ini-file-configuration">
  ### Konfiguration per INI-Datei
</div>

Um einen benutzerdefinierten tmpfs-Speicherort per INI-Datei zu konfigurieren, erstellen Sie eine INI-Datei und ändern Sie Ihren Quellcode so, dass `LoadMultiProcessingParamsFromProfile()` aufgerufen wird, um die Einstellungen aus der INI-Datei zu laden.

Fügen Sie die folgenden Zeilen in die INI-Datei ein:

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

Binden Sie anschließend die INI-Datei in Ihren Code ein:

```cpp theme={null}

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

```

<div id="performance-considerations">
  ## Leistungsaspekte
</div>

Das Ändern des standardmäßigen tmpfs-Pfads kann sich negativ auf die Leistung auswirken, insbesondere wenn sich der benutzerdefinierte Speicherort auf einem normalen Dateisystem und nicht auf einem tmpfs-Mount befindet. Verwenden Sie nach Möglichkeit für den benutzerdefinierten Speicherort einen tmpfs-Mount, um optimale Leistung und Sicherheit zu gewährleisten. Weitere Details zur Leistung finden Sie unten unter Wichtige Hinweise.

<div id="important-notes">
  ## Wichtige Hinweise
</div>

1. Das SDK prüft den Dateisystemtyp nicht.
   FRE verwendet den von Ihnen angegebenen Pfad, ohne zu überprüfen, ob es sich um tmpfs handelt.

   Wenn der Pfad nicht auf tmpfs verweist:

   * Dateien werden auf den Datenträger statt in den Arbeitsspeicher geschrieben
   * Die Verarbeitung wird deutlich langsamer
   * Temporäre Daten können auf dem Datenträger verbleiben

2. Sie müssen tmpfs selbst mounten und sicherstellen, dass es korrekt eingehängt ist. Die Größe des tmpfs-Mounts kann beim Einhängen mit der Option `size` angepasst werden.

   Zum Beispiel:

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

   Wenn tmpfs nicht eingehängt ist oder falsch konfiguriert wurde, wird FRE zwar weiterhin ausgeführt, verhält sich jedoch möglicherweise fehlerhaft oder ineffizient.

   <Note>
     Die Verwendung eines benutzerdefinierten tmpfs-Pfads reduziert nicht den von FRE benötigten Arbeitsspeicher.
   </Note>

3. Diese Änderung legt lediglich fest, wo Shared Memory zugewiesen wird. Speicherbeschränkungen müssen weiterhin über die Systemkonfiguration verwaltet werden.

<div id="see-also">
  ## Siehe auch
</div>

[MultiProcessingParams-Objekt (IMultiProcessingParams-Schnittstelle)](/de/fine-reader/engine/api-reference/parameter-objects/multiprocessingparams)

[LoadMultiProcessingParamsFromProfile-Methode](/de/fine-reader/engine/api-reference/engine-object-iengine-interface/supplementary-methods/loadmultiprocessingparamsfromprofile-method-of-the-engine-object)

[Parallelverarbeitung mit ABBYY FineReader Engine](/de/fine-reader/engine/guided-tour/advanced-techniques/parallel-processing/parallel-processing-in-linux)

[Arbeiten mit Eigenschaften](/de/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties)
