Zum Hauptinhalt springen

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.

Dieses Thema gilt nur für Linux.
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.

Übersicht

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
Der benutzerdefinierte tmpfs-Pfad wird nur verwendet, wenn Multiprocessing aktiviert ist:MultiProcessingMode = Auto or Parallel ProcessesCount > 1

Konfigurieren eines benutzerdefinierten Speicherorts

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

API-Konfiguration

Um über die API einen benutzerdefinierten tmpfs-Speicherort zu konfigurieren, setzen Sie die Eigenschaft CustomTmpfsRootPath des MultiProcessingParams-Objekts auf den gewünschten Pfad und anschließend die Eigenschaft UseCustomTmpfsRootPath auf TRUE. Zum Beispiel:

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

Konfiguration per INI-Datei

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:
[MultiProcessingParams]
CustomTmpfsRootPath = /dev/customShm
UseCustomTmpfsRootPath = true 
Binden Sie anschließend die INI-Datei in Ihren Code ein:

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

Leistungsaspekte

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.

Wichtige Hinweise

  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:
    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.
    Die Verwendung eines benutzerdefinierten tmpfs-Pfads reduziert nicht den von FRE benötigten Arbeitsspeicher.
  3. Diese Änderung legt lediglich fest, wo Shared Memory zugewiesen wird. Speicherbeschränkungen müssen weiterhin über die Systemkonfiguration verwaltet werden.

Siehe auch

MultiProcessingParams-Objekt (IMultiProcessingParams-Schnittstelle) LoadMultiProcessingParamsFromProfile-Methode Parallelverarbeitung mit ABBYY FineReader Engine Arbeiten mit Eigenschaften