⚠️ これは 非公式の翻訳サイトです。ImageMagick Studio LLC とは無関係です。正確な情報は 原文(https://imagemagick.org/distribute-pixel-cache/) を参照してください。

分散ピクセルキャッシュ

分散ピクセルキャッシュは、単一ホストで利用できる従来のピクセルキャッシュの拡張です。分散ピクセルキャッシュは複数のサーバーにまたがれるため、非常に大きな画像や大きな画像シーケンスをサポートするよう、サイズとトランザクション容量を拡大できます。1 つ以上のホストでピクセルキャッシュサーバーを起動します。画像を読み込んだり操作したりする際にローカルのピクセルキャッシュリソースが尽きると、ImageMagick はこれらのリモートピクセルサーバーの 1 つ以上に接続してピクセルを格納・取得します。

本当に大きな画像や大きな画像シーケンスの場合、またはホストのリソースが限られている場合、1 つ以上のリモートホスト上の分散ピクセルキャッシュを利用できます。まず、policy.xml セキュリティポリシー設定ファイルで共有シークレットを設定します:

<policy domain="cache" name="shared-secret" value="_passphrase_ " stealth="true"/>

ここでは分散ピクセルキャッシュサービスを作成し、デスクトップから利用します:

magick -distribute-cache 6668 &  # localhost で起動
magick -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \
  -define registry:cache:hosts=localhost:6668 \
  myhugeimage.jpg -sharpen 5x2 myhugeimage.png

ここでは 2 つの分散ピクセルキャッシュを作成し、デスクトップから利用します:

magick -distribute-cache 6668 &  # 192.168.100.50 で起動
magick -distribute-cache 6668 &  # 192.168.100.51 で起動
magick -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \
  -define registry:cache:hosts=192.168.100.50:6668,192.168.100.51:6668 \
  myhugeimage.jpg -sharpen 5x2 myhugeimage.png

大きな画像シーケンスの場合、サーバーはラウンドロビン方式で接続され、複数の分散ピクセルキャッシュに負荷が分散されます(単一ホストではなくホストリストがある場合)。この例では、-limit オプションで定義されたとおり、デスクトップにいくらかのリソースがあります。小さい画像は、指定した上限までデスクトップに確保されます。

分散ピクセルキャッシュを利用すると、ネットワーク越しにクライアントとサーバー間でピクセルをやり取りするため、画像処理タスクは遅くなる可能性が高いです。仮想ピクセルにアクセスするアルゴリズム(-sharpen など)は、ネットワークトラフィックの増加により、本物のピクセルのみにアクセスするアルゴリズム(-negate など)より明らかに遅く、最大 3 倍遅くなります。

クライアントは互換性のある分散ピクセルキャッシュサーバーにのみ接続できます。互換性には、同じ ImageMagick ライブラリインターフェース、量子深度、HDRI 状態、OS のワードサイズ、エンディアン、パスフレーズが必要です。分散ピクセルキャッシュはこれらの属性を確認し、これらの要件が満たされない場合は例外をスローします。