メインコンテンツへスキップ

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.

このトピックは Linux のみを対象としています。
このトピックでは、Linux 用 FineReader Engine (FRE) をマルチプロセッシング モードで実行する際に、既定の /dev/shm ではなく、カスタムの一時ファイルシステム (tmpfs) を使用するように設定する方法を説明します。 この機能は、既定の共有メモリのマウントポイントに制限がある、または容量が小さすぎるうえ変更もできない環境で FRE を実行するユーザー向けです。たとえば、AWS Lambda、特定のコンテナ、その他のマネージド Linux 環境などが該当します。

概要

デフォルトでは、FRE for Linux は、マルチプロセッシング モードで実行される際の共有メモリの格納先として /dev/shm を使用します。共有メモリのマウント サイズが小さすぎると、処理中にエラーが発生することがあります。この問題を回避するには、十分な空き容量があり、必要に応じてサイズを変更できるカスタム tmpfs パスを使用するように FRE を設定できます。 次のような場合は、カスタム tmpfs パスを使用します。
  • AWS Lambda または同様の環境で FRE を実行する場合
  • /dev/shm のサイズが小さすぎ、増やせない場合
  • 共有メモリの制限により、マルチプロセッシングが失敗する、または不安定になる場合
カスタム tmpfs パスは、マルチプロセッシングが有効な場合にのみ使用されます。MultiProcessingMode = Auto or Parallel ProcessesCount > 1

カスタム tmpfs パスの設定

FRE のカスタム tmpfs パスを設定する方法は、次の 2 つです。
  • API
  • INI ファイル

API の構成

API を使用してカスタム tmpfs パスを設定するには、MultiProcessingParams オブジェクトCustomTmpfsRootPath プロパティを目的のパスに設定し、次に UseCustomTmpfsRootPath プロパティを TRUE に設定します。例:

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

INI ファイルの設定

INI ファイルを使用してカスタム tmpfs パスを設定するには、INI ファイルを作成し、INI ファイルから設定をロードするために LoadMultiProcessingParamsFromProfile() を呼び出すようソースコードを変更します。 INI ファイルに次の行を追加します。
[MultiProcessingParams]
CustomTmpfsRootPath = /dev/customShm
UseCustomTmpfsRootPath = true 
次に、コード内で INI ファイルをロードします:

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

パフォーマンスに関する考慮事項

デフォルトの tmpfs パスを変更すると、特にカスタム tmpfs パスが tmpfs マウントではなく通常のファイルシステム上にある場合、パフォーマンスに悪影響が生じる可能性があります。最適なパフォーマンスとセキュリティを維持するため、カスタム tmpfs パスには可能な限り tmpfs マウントを使用してください。追加のパフォーマンスに関する詳細については、以下の「重要な注意事項」を参照してください。

重要な注意事項

  1. SDK はファイルシステムの種類を検証しません。 FRE は、tmpfs かどうかを確認せずに、指定されたパスをそのまま使用します。 パスが tmpfs でない場合:
    • ファイルはメモリではなくディスクに書き込まれます
    • 処理速度が大幅に低下します
    • 一時データがディスク上に残る可能性があります
  2. tmpfs は自分でマウントし、正しくマウントされていることを確認する必要があります。tmpfs マウントのサイズは、マウント時に size オプションを使用して調整できます。 例:
    mount -t tmpfs -o size=1G tmpfs /dev/customShm
    
    マウントされていない場合や設定に不備がある場合でも、FRE は実行されますが、正しく動作しなかったり、非効率になったりする可能性があります。
    カスタム tmpfs パスを使用しても、FRE に必要なメモリ量は減りません。
  3. この変更で変わるのは、共有メモリの割り当て先だけです。メモリ制限については、引き続きシステム構成で管理する必要があります。

関連項目

MultiProcessingParams オブジェクト (IMultiProcessingParams インターフェイス) LoadMultiProcessingParamsFromProfile メソッド ABBYY FineReader Engine での並列処理 Properties の操作