Azure Virtual Machineのディスクパフォ​​ーマンスが遅い


9

さて、まず第一に、私は運用担当者ではなく開発者であると言っておきます。なので、ここで少し未知の土地に行きますので、ご容赦ください。

Azure仮想マシンを使用して、1.9 GBのzipファイルから50 GBのXMLファイルを抽出したいと思います。したがって、私はAzureでどのインスタンスサイズを使用して、必要以上のコストをかけずに優れたパフォーマンスを実現するかをテストしてきました。

ただし、Azure VMのディスクパフォ​​ーマンスは驚くべきものではありません。何か問題を起こしているのが私なのか、それとも期待どおりの結果が得られるのかを知りたいのですが。

まず第一に、私は何をテストしてきましたか?カスタムの.NETコンソールアプリケーションがあり、それはzipファイルを引数として取り、すぐにzipファイルが存在する同じディレクトリにzipファイルの抽出を開始します。抽出の進行中に、アプリケーションはメガバイト数を計算しますアプリケーションは1秒あたりのターゲットファイルに書き込み、それを出力します。

私のローカル開発マシンでは、このアプリケーション(160〜210 MB /秒の書き込み)でかなり良いパフォーマンスを得ています。したがって、抽出プロセス全体には約8分かかります。私のローカルマシンの仕様は、Intel Core i7 950、3 GHz、4コア(8論理)、12 GB RAM、Samsung SSD 830シリーズ250 GBです。

さて、私はさまざまなインスタンスサイズのテストを始めました、そしてここに私の結果があります。

  • Windows Server 2012 Datacenter R2(8コア、14 GB RAM)を備えたA4インスタンスで、同じストレージアカウントを使用する4つの仮想ディスクのストライプRAIDを使用し、ホストキャッシュを使用しない場合、30〜35 MB /秒で安定しました。抽出には24分48秒かかりました。ホストキャッシングを有効にすることも試みましたが、実際には違いはありませんでした。
  • Windows Server 2012 Datacenter(8コア、28 GB RAM、500 GBローカルSSDディスク)を備えたD4インスタンスで、最初の数分間は本当に良いパフォーマンス(150+ MB /秒)を達成し、ピーク時は200 MB /でパフォーマンスを変化させました9 MB /秒の谷と谷。平均パフォーマンスは70〜100 MB / sでした。抽出には9分40秒かかりました。
  • Windows Server 2012 Datacenter(4コア、14 GB RAM、250 GBローカルSSDディスク)を備えたD3インスタンスでは、最初の1分間で本当に優れたパフォーマンス(150+ MB /秒)が得られましたが、その後、パフォーマンスは20〜40 MBまで低下しました。 / s、抽出プロセスに21分49秒かかります。

D2およびD1インスタンスでは、ディスクのパフォーマンスはD3よりも劣ります。

そして、これは私を本当に驚かせます。ローカルSSDディスクは、D1、D2、およびD3インスタンスの場合と同様に、どのようにパフォーマンスが悪いのでしょうか。また、ディスクパフォ​​ーマンスがD1とD4で大きく異なる理由を誰かが知っていますか?メモリの問題ですか?抽出が進行しているときにタスクマネージャーを見ると、メモリ使用量が急増しています。Windowsが書き込まれたデータをキャッシュしているためだと思いますが、メモリが不足すると、データをディスクにフラッシュする必要があります。これが発生すると、ディスクのパフォーマンスが低下します。しかし、これは私のローカルマシンでは発生しないので、なぜこれらのVMでこのような積極的なキャッシュが必要なのでしょうか。

ローカルマシンとAzureでホストされている仮想マシンに違いがあることはわかっていますが、実際に発生しているディスクパフォ​​ーマンスは期待どおりですか?

(原因は自分のアプリケーションであると疑ったので、元々Stackoverflow質問を投稿しました。しかし、もうはっきりしていません)

回答:


7

ここのパーティーには少し遅れますが、Azureに「接続された」SSDの価値があるのは、マシンサイズに基づいてIOPが抑制されているためです。価格のどこにも記載されていませんでしたが、以下のブログ投稿を紹介していただいたときに、テクニカルサポートのチケットとしてこの問題を提起しました。

このリンクを参照してください:http : //azure.microsoft.com/blog/2014/10/06/d-series-performance-expectations/


素晴らしい情報、リチャードに感謝!スロットルに関係しているのではないかと思っていましたが、その時点では具体的な情報を見つけることができませんでした。そのブログ投稿は私の質問に答えます。
ルネ

紺碧の制限ディスクio ..一体何をgoogle.cloudに切り替えます..彼らはこれを制限せず、価格ははるかに安いです。
tyan

4

多分それは記憶とは関係ありません。Azureの「物理」ディスクは、Blobストレージと呼ばれるものを使用するため、同様のハードウェアを使用しても、パフォーマンスがローカルコンピューターと同じではありません。詳細については、このリンクをご覧ください。これは、ディスクパフォ​​ーマンスに大きく依存しているSQL Serverコミュニティでは一般的な問題のようです。私が見つけた記事を引用します

Azure VMでのSQL Serverのパフォーマンスガイダンスに関するホワイトペーパーでは、Azure VMではストレージスペースを使用してSQL Serverワークロードのストレージパフォーマンスを向上できると述べています(15および26ページ)。

記憶域スペースはWindows Server 2012の組み込み機能であり、複数の物理ディスクを使用して単一の仮想ディスクを作成できるため、VMディスク自体のI / O制限の回避策として機能します。もう一度引用:

多くの(最大16)物理ディスクをサポートする大規模なVMでは、ストレージパフォーマンスの大幅な向上が可能です。これにより、単一のAzureディスクのI / Oパフォーマンスによる制約が多すぎるSQLワークロードの実行可能なプラットフォームとしてAzureを有効にすることができます。

この記事では、ストレージスペースを作成する手順について説明します。

最初にこれを試してください。ストレージサービスはインスタンス自体とは別のサービスであるため、おそらくより小さなインスタンスを使用することもできます。


Azureの標準ディスクが実際にBlob Storageを使用しているのは正しいですが、SSDディスクの場合はそうではないと思います。私のマイクロソフトからの情報によると、これらはローカルの物理SSDディスクです。その場合、Dインスタンスのサイズによってパフォーマンスが大きく異なるのは奇妙だと思います。記憶域スペースについて:私はこれを調査していくつかのテストを行いましたが、残念ながら実際には目立ったパフォーマンスの向上はありませんでした。最後に、このタスクにはより大きなインスタンスサイズを使用する必要があることを受け入れなければならないという結論に達しました。
ルネ

1
@René新しいAzure Storage Premiumをテストする機会はありましたか?この古いトピックにぶつかって申し訳ありませんが、この新しいストレージが環境でどのように機能するかを知りたいと思っています。
Bruno Faria 2015年

私の返事が遅れて申し訳ありません。Azure Storage Premiumに関するすばらしいヒント。私の地域ではまだ利用できないため、まだ試していません。しかし、私はそれを監視します。再度、感謝します!
ルネ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.