Azure初心者です。
オンプレミスで動いているSQL ServerをAzureに動かしたいので、ディスク速度を計測しています。
残念ながら、SQL Databaseは使えそうないシステムです。
Azureを契約後、CrystalDiskMarkでベンチマークを取ってみました。
最大IPSが16000だったので強そうだなーと期待して仮想マシンを作ったのですが、ベンチマーク結果は残念でした。
Azureのディスク速度は普通に考えて遅いと思うのですが、クラウドのディスク速度はこんなものなのでしょうか。
どうにかして、ディスク速度を早くできませんか?
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答4件
1
Azure で、表記されている IO パフォーマンスを出すには、下記の対応が必要です。
- Premium Disk (要は SSD ディスク) を使用する。
- 複数のディスクをマウントする。
- マウントした複数ディスクを論理的にまとめる。(Windows なら記憶域スペース)
今回のように、最大16ディスクマウントできる VM で 16,000 IOPS を出すには、P15 (256GB) のディスクを16本マウントし、16本すべてで記憶域スペースを構成してもらう必要があります。
ディスクの IO は↓をご参照ください。
https://azure.microsoft.com/ja-jp/pricing/details/managed-disks/
また、SQL Server を稼働させるのであれば、TempDB を D ドライブに構成することでパフォーマンスが改善されます。
Azure では D ドライブは、Hyper-V のローカル SSD ディスクを使用した揮発性ディスク(再起動により失われる可能性がある)となり、パフォーマンスに優れています。
TempDB は絶えず読み書きが発生するため、これによりパフォーマンス改善が見込めます。
また TempDB は SQL Server サービスが起動時に再作成されるため問題ないかと思います。
投稿2018/07/18 08:02
総合スコア20
0
ファイルIOが遅いのはMicrosoft Azureに限らず、仮想OSに共通する欠点です。仮想OS上でシステムを動かす場合、その欠点を踏まえて如何にして遅いファイルシステム上で動作させるのかが、設計の肝になります。
ファイルIOを改善しようとするなら、最終的にはスケールアウトを選択することになります。No SQLが広く使われる理由がココにあります。従来のDBMSではスケールアウトによってパフォーマンスを改善することが困難だからです。
したがって、解決策としては
1.可能ならNoSQLを用いてスケールアウト出来るように設計する。
2.どうしてもSQL Serverに相当する機能が必要なら、Azure用に最適化されたSQL Azureを使用する。
3.SQL Azureでパフォーマンスに無理があるなら、オンプレミスを選択する。
・・・って事になります。
またクラウドではファイルIOの遅さを補うために揮発性(仮想OSを停止するとデータが失われる)のファイルシステムが提供されています。デフォルトのままだとテンポラリ領域やスワップ領域として使われています。高速な揮発性領域を上手く活用する事を検討してみて下さい。
投稿2018/03/12 09:34
総合スコア472
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
0
どの位性能向上するか分かりませんが、ソフトウェアRAIDでRAID0(ストライピング)にするというのはどうでしょうか。
参考(Azure VM に大容量ディスクを作ってみる)
投稿2018/03/12 06:38
総合スコア24666
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
0
ベンチマークだけでは実際にデータベースを稼働させて要求されているレスポンスが得られるかはわからないことが多いです。実際に、クラウドではAWSの次にAzure を使っているユーザーが多いですし。
Azure SQL DatabaseのサービスレベルをBasicで契約していたら、StandardかPremiumでベンチマークを試すとか、パフォーマンス・チューニング関係のツールを使う、Azureのパフォーマンス・チューニングの熟練者を雇う、といったことも考えられます。
投稿2018/03/12 05:25
総合スコア16284
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
関連した質問
意見交換
クローズ
直接ディスクとやりとりするようなデータベースは存在するのか
回答13
クリップ0
更新
2023/03/22
意見交換
受付中
正規表現ライブラリの機能比較とベンチマーク
回答4
クリップ1
更新
2023/04/01
意見交換
受付中
プログラミングの設計が分からない
回答24
クリップ10
更新
2023/03/17
意見交換
受付中
EntityFrameworkでの親子関係保証および重複回避の実現方法
回答6
クリップ0
更新
2023/03/21
Q&A
受付中
JavaでSQL文を条件に合わせて結合したい
回答1
クリップ0
更新
2023/04/02
意見交換
受付中
データベースの負荷を下げたい
回答29
クリップ0
更新
2023/03/28
Q&A
解決済
jsonファイルからipynbファイルへのインポートに関して【Jupyter lab】
回答2
クリップ0
更新
2023/03/21
Q&A
受付中
入力フォームから送られてきたidレコードがテーブルに存在したらupdate、存在していなかったら何が間違っているかメッセージで出力する方法。
回答2
クリップ0
更新
2023/03/17
同じタグがついた質問を見る
Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。