2016-06-14 12 views
1

私は何千もの小さなバイナリファイルにアクセス(読み込み)し、それらを使って計算を行うAzureクラウドサービスを持っています。ここでの重要な要件はスピードです。できるだけ速くする必要があります。私はこれらのファイルを保持するためにAzureブロブストレージを使用しようとしましたが、アクセスは遅すぎました。現在、これらのファイルはAzureクラウドサービスのローカルストレージ自体に保管しています。これは理想的ではありません。なぜなら、永続性は保証されておらず、VMインスタンス全体で共有可能ではないためです。Azureクラウドサービスはどこにファイルを保存する必要がありますか?

私はAzureプレミアムストレージ(VMに接続できるSSDドライブ)について読みました。理論的には理想的ですが、クラウドサービスに追加する方法はありません。

だから、私の質問は以下のとおりです。

  1. クラウド サービスにAzureのプレミアムストレージSSDのディスクを追加する方法はありますか、それが唯一のAzureのVMに追加することができますか?
  2. クラウドサービスから何千もの小さなバイナリファイルをすばやく読み取る必要がある場合、他のストレージメカニズムがありますか?
+0

VMではなくCSを使用する必要がありますか? –

+1

クラウドのプログラミングモデルに適合するようにコードを変更します。クラウドをローカルサーバーとして動作させないでください。イベントを処理する場合は、イベントハブまたはストリームアナリティクスを使用する必要があります。ブロブストレージはファイルの*ロット*に比例しますが、多くの小さなファイルを処理しようとすると最適ではありません。実際にデータをロードするよりもネットワークラウンドトリップに多くの費用がかかります。大きなファイルに複数のメッセージをバッチ。 Hadoopのような大規模なデータソリューションでは大きなファイルが大好きですが小さなファイルは大したものではありません。小さなファイルを分割することはできません。 –

答えて

1

ディスクを追加することは、クラウドサービスではなく、空のコンピュータのVMに行うことができます。この場合、ネットワーク共有に似たストレージを提供するAzureファイルストレージサービスを使用することができます。 https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-files/

+0

OPはすでにBLOBで必要なパフォーマンスを持っていないことを既に宣言しています。ファイルストレージはパフォーマンスが低下します。 –

+0

大丈夫です。人が参照できるパフォーマンスの比較研究はありますか? – Aravind

0

あなたの要件に応じて、Redisのを使用することができます。 https://azure.microsoft.com/en-us/services/cache/

それは非常に高速だし、Redisのサーバー上に保存されたデータは、複数のVMインスタンス間で共有することができます。

Redisはキーと値のペアストアなので、ファイルの「パス」をキーとして使用し、その内容を値として使用できます。

コストを最小限に抑えるため、Redisサーバーをサービスと同じ地域/リソースグループに配置してください。

関連する問題