Dynamics CRM 2016 Service Pack 1 on Azure IaaS パフォーマンス ベンチマークに関するホワイトペーパーが公開されました!

みなさん、こんにちは。

先日、ダウンロードセンターに、Dynamics CRM 2016 Service Pack 1 (SP1) on Azure Infrastructure as a Service (IaaS) に関する
パフォーマンスベンチマークテストの資料が公開されました。重要な内容のため、文書の内容を紹介していきたいと思います。

Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM 2016 Performance and Scalability Documentation(英語):
https://www.microsoft.com/en-us/download/details.aspx?id=45905

上記のリンク内の文書のうち、「Microsoft Dynamics CRM 2016 SP1 Performance Benchmark on Azure IaaS」(12/05/2016 現在)の
内容を対象にしています。この文書は Dynamics CRM 2016 Service Pack 1 を対象とした内容です。
Dynamics CRM Online に関するベンチマーク結果は、こちらの記事を参照ください。

本文書の概要、目的

本文書の目的は、以下の 2 点です。

- Dynamics CRM 2016 SP1 のパフォーマンス ベンチマークの提供
- 標準的な Azure Virtual Machines (VM) による Dynamics CRM 2016 SP1 の検証

テスト結果の概要

パフォーマンステストは、Microsoft Dynamics CRM 2016 SP1 にて実施しました。
Windows Server 2012 R2 Datacenter および Microsoft SQL Server 2012 Service Pack 2 を使用しています。
標準の Azure 仮想マシン上で実行され、米国西部地域でホストされています。
パフォーマンスをベンチマークテストして、44,670 人の同時ユーザーにサービスを提供し、10 分の思考時間でタスクを実行しました。
この環境では、Dynamics CRM 2016 Server SP1 は次のパフォーマンス結果となりました。

image

注意点

- これらの結果は、特定のテスト環境および特定の Dynamics CRM 2016 SP1 で検証された結果です
- この結果は、カスタマイズ、ユーザーの地理などの要因に影響するため、実装ごとに異なります
- サーバー側のパフォーマンスとメトリックに重点を置いた結果です
- Response Time は、ネットワーク(待ち時間、帯域幅)の制約とクライアント側のレンダリング時間のない
テスト環境のクライアントに対するものです。実際にブラウザでレンダリングしたときの応答時間を示すものではありません。

テスト環境の構成

Azure にホストされた 4 台のクライアント端末(Azure VM)を利用することで、同時接続負荷テストを実行しました。

image

Microsoft Dynamics CRM Server

Dynamics CRM Server は、16 コアと 112 GBのメモリで構成された Azure DS14 仮想マシンに導入されました。

image

Microsoft SQL Server

SQL Server は、32 コアと 448 GBのメモリで構成された Azure GS5 仮想マシンに導入されました。

image

テストシナリオ

今回のテストには、顧客に近い状況で負荷テストを実行するために Performance Tollkit を用いて実施しました。

セットアップ

– 44,670 ユーザーが同時に CRUD 処理を実行するためのバッチを実行した
– 各クライアントがすべてのユーザーをロードするために 33 分かかった
– パフォーマンスデータを 5 秒ごとに集計した
– 各テストケースの間には、10 分の待ち時間を設定した(現実世界に近づけるため)
– すべてのテストは、認証がキャッシュされた状態で実行した
– すべてのテストは、一人のユーザーのテストケースがすべて順番に実行してから次のテスト実行に移るようにした
- テストで利用されたネットワークは LAN 接続のみ
– ページのレンダリングには Internet Explorer 11 を利用した
- SQL Server は、ベストプラクティスに従いすべてのデータとログドライブは SSD ドライブで構成した
- Dynamics CRMフロントエンドサーバーには、インターネットインフォメーションサービス (IIS) の最小構成コンポーネント以外のサービスはない

チューニング、最適化

- データベースのインデックが断片化されていないこと、統計情報が最新であることを確認済みの環境でテストを実施した
詳細は Dynamics 365 組織データベース インデックス を参照ください。
- SkipGettingRecordCountForPaging などのパフォーマンスの最適化オプションは有効化した
詳細は OrgDBOrgSettings tool for Microsoft Dynamics CRM を参照ください。
- インデックスは、テストの実行前に作成した
- 16 個の TempDB ファイル構成および、最大並列処理(Max Degree of Parallelism) 1 に設定した
- トランザクション分離レベルは Read committed snapshot isolation を有効にした
- SQL Server の FILL FACTOR は 80 %に設定した
- Dynamics CRMの管理設定で全文検索を無効にした
- Dynamics CRM の SLA テーブルのインデックに修正を適用した
この修正プログラムは、今後リリースされる Microsoft Dynamics CRM 2016 Service Pack 1.1 にて提供されます。

テスト実行結果の詳細 image

プロセッサ利用率 image

メモリ利用量 image

データロード

顧客の構成に近しい状況にするため、同時接続 44,670 ユーザーを想定するテストモデルにしました。
組織データベースのサイズは、4.97 TB です。

部署(Bisiness Unit)の構成

141 セクター( 1セクターごとに 4 部署)全 564 部署という複雑な部署構成を作成しました。
現実的な方法でパフォーマンスをテストするために、各部署には異なるセキュリティロールのユーザーを割り当てました。

9 つのセキュリティロールのうち、8 つは既定で用意されているセキュリティロールです。
残りの 1 つは “Sales Associate” という名前のカスタムセキュリティロールです。

– System Administrator
– Sales Manager
– Marketing Manager
– Customer Service Representative Manager
– Scheduler
– Marketing Professional
– Salesperson
– Customer Service Representative
– Sales Associate

image

カスタマイズ

現実的な企業のモデルにするため、4 つのエンティティに対して、
それぞれにカスタムフィールドを入れ、フィールドレベルセキュリティを有効にしました。

– Account
– Contact
– Lead
– Task

ユーザーデータ量

各ユーザーに現実的なデータセットが割り当てました。 割り当てたデータ量は、ユーザーの役割に基づいています。
テストの前の組織データベースの合計データは 4.9 TB、31 億件以上のビジネスレコードが含まれていました。
以下は、10 万レコードを超えるエンティティの一覧です。Top 7 のエンティティを示しています。
(文書の中には、10 万レコードを超えるエンティティの一覧がすべて記載されています)

image

まとめ

このベンチマーク結果は、あくまで特定の条件のものに実行された結果のため、
参考情報としてご活用頂ければと思います。

– プレミアフィールドエンジニアリング 河野 高也