0

基本的にrecommended cloud architectureを使用します。ソースイメージはAzure Blobストレージに保存され、imageresizerはAzure App Serviceで、Azure CDNはCDNレイヤーで実行されます。ImageResizerのImageCacheにAzure Blob Storageを使用することができます

ImageResizer v3、Azure App Service deployment slots、およびDiskCacheの問題が発生しています。

私たちはAzure App Serviceのステージングスロットを使用して中断を防ぎます。 DiskCacheプラグインも使用します。設定がなければ、imagecacheはスロット固有のD:\ home \ site \ wwwroot \ imagecache \に書き込まれます。我々が使用されているのImageCacheが古いとイメージの多くが失われますスロットをスワップすると

  1. これは二つの問題を発生させます。

  2. 私たちはApp Service Planでdiskspaceを使用していますが、MicrosoftのアドバイザーはDiskCacheの仮想ローカルファイルシステムの代わりにBlob Storageを使用することを推奨しています。

BlobCachePluginまたはS3CachePluginが存在しないことに気がつきましたが、それには正当な理由があるかどうか疑問に思っていました。

私の質問は以下のとおりです。

  1. 命令キャッシュ・インタフェースを実装するカスタムBlobStorageCachePluginを使用してAzureブロブストレージ内のImageCacheを保存しない理由はありますか?
  2. 理由がある場合は、展開スロットの問題を回避するためにどのような代替アーキテクチャをアドバイスしますか?

答えて

2

キャッシュは低レイテンシである必要があります。 Blobストレージにキャッシュを置くと、キャッシュヒットのパフォーマンスもひどくなり、要求ごとに800-1800msが追加される可能性があります。 Redisサーバーが利用可能な場合は、この方法を改善する方法がありますが、低レイテンシのストレージを使用するだけでなく、それでも機能しません。冷たいキャッシュの問題に

ソリューション:

  1. (それはまた、非IRキャッシュをウォームアップするので、理想的な状況を)そこに実世界の要求を複製して、ステージングスロットをウォームアップ。
  2. これが可能でない場合は、ファイルを「追加のみ」する各サーバー上のimagecacheフォルダの間に何らかの種類のスケジュールされたコピーがあると考えるかもしれません。アクティブに処理されているファイルやディレクトリを変更または削除しないでください。
  3. 低レイテンシの分散ファイルシステムまたは低レイテンシの共有ネットワークドライブを使用します。ただし、サーバー間のネットワーク接続が良好でないと問題が発生するため、レイテンシを測定してください。キャッシングに使用するのに十分速いブロブストアがありますが、通常は低いレイテンシを保証するために自分で管理する場合にのみ使用します。

これは、autoCleanを有効にしてキャッシュエントリを自動的に消去できないことを意味します。ディスク使用量の監視を設定します。

+0

http://www.azurespeed.com/によると、BlobStorageのレイテンシは実際にはそれほど悪くありません(約40ms、場合によっては400msのピーク)。特に、私たちのApp ServiceはBlobStorageと同じデータセンター/地域にあります。そうでないことを示唆する実践的な経験はありますか? – Wilgert

+0

私は40msのレイテンシー、良い日の100msを見たことがありません。あなたが良いレイテンシを持っているなら、これについて第三者のナゲットパッケージを見ることができます。しかし、キャッシュヒットの場合でも40msも大丈夫ですか? –

0

Webアプリケーションの前にCDNがある場合は、DiskCacheプラグイン(または要求されたBLOBストレージのキャッシュ)がまったく必要ですか?

イメージがWebアプリケーションによって処理されると、イメージはCDNエッジサーバーの1つによってキャッシュされるため、Web App/Blobストレージにキャッシュする目的は何ですか?

+0

世界各地のユーザーに、複数のサイズで300.000を超える可能性のある画像があります。私たちのCDNキャッシュのヒット率は、頼りになるほど高くはありません。さらに、画像のサイズ変更は非常に遅く(秒単位で)、サイズ変更されたバージョンもローカルキャッシュに保存します。 p.s.あなたが気付いているかどうかわかりませんが、何らかのエッジサーバーのキャッシュに何かがある場合、それは他のエッジサーバーの元からロードされています。 – Wilgert

関連する問題