Dynamics CRM 2011 ネットワークパフォーマンス考察 - WCF パケットの圧縮
みなさん、こんにちは。
とても寒い日が続いていますが、いかがお過ごしでしょうか。気温が低く
日照時間も短いため気分も落ち込みがちですが、せめてブログの記事だけでも
エキサイティングな内容になるよう努めてまいります。
今回は、US の Dynamics CRM プレミアフィールドエンジニアリングチームが
公開しているブログより、パフォーマンスに関する記事を紹介します。
パフォーマンスを聞くだけでエキサイティングですね!!
元記事 : Enable WCF Compression to Improve CRM 2011 Network Performance
今までに一度でもネットワークトラフィックを解析したことがある方は既にお気づきだと
思いますが、Internet Information Service (IIS) は、画像や JScript ファイル、CSS や
HTML ページなど、様々なコンテンツを圧縮してからネットワークに送信しています。
圧縮を利用することで、データのサイズだけでなく全体の通信回数も削減できるため
サーバー、クライアント間のネットワークパフォーマンスの向上が期待できます。
Microsoft Office Outlook 用 Microsoft Dynamics CRM 2011 クライアントは、サーバー
との通信を行い際、Windows Communication Foundation (WCF) を利用しますが、
既定では IIS は WCF で利用する 'application/soap+xml;charset=utf-8' の mineType
を圧縮しないため、Dynamics CRM 4.0 と比較してネットワークトラフィックの増加や
パフォーマンスの低下が発生することがあります。
一般的な利用環境では、圧縮を有効にすることでパケットサイズが 30 - 40 % 程度減少
しますが、SSL を利用している環境では、80 - 90 % 程度パケットサイズが削減されることも
あります。
以下の表は IIS での圧縮を行う前と後の比較を行っています。このデータはカスタマイズを
一切行っていない Dynamics CRM 2011 環境で、データもサンプルデータのみの場合です。
こちらの結果より Outlook で複数のビューを参照した場合のパフォーマンスが向上している
ことが確認できます。
ビュー |
圧縮なし |
圧縮あり |
SSL 環境で圧縮あり |
||||||
活動 |
|
|
|
||||||
取引先企業 |
|
|
|
||||||
取引先担当者 |
|
|
|
||||||
潜在顧客 |
|
|
|
※補足 : IIS で圧縮を有効にしているため、クライアントからの送信は圧縮の有り無しでは
影響が見られません。SSL の場合には、非 SSL 環境より通信サイズが少ないのは、WCF で
利用しているバインディングとデータの暗号化が影響しているためです。
圧縮の設定方法
圧縮の設定は、コマンドラインまたは config ファイルを修正することで変更可能です。
注意: 圧縮を利用することでネットワーク帯域は節約できますが、CPU 使用率が上がります。
必要に応じて CPU 利用率の監視をお勧めします。
コマンドラインを利用した設定方法
a. Dynamics CRM サーバー上でコマンドプロンプトを開きます。
b. 以下のコマンドを実行します。Run the following command:
%SYSTEMROOT%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/soap%u002bxml; charset=utf-8',enabled='true']" /commit:apphost
c. IISRESET を実行します。
ApplicationHost.Config を編集する方法
a. Dynamics CRM サーバー上で、以下のファイルをメモ帳で開きます。
C:\Windows\System32\Inetsrv\Config\applicationHost.config
b. 次のセクションを探します : “<httpCompression directory=”
上記セクション配下に以下のような項目があります。
<add mimeType="application/x-javascript" enabled="true" />
c. 一番下に、以下の内容を付け足します。
<add mimeType="application/soap+xml; charset=utf-8" enabled="true" />
d. ファイルを保存して、IIRESET を実行します。
参考 : IIS を利用した HTTP 圧縮の追加情報は以下のリンクをご覧ください。
https://technet.microsoft.com/en-us/library/cc771003(WS.10).aspx
参考:英語のドキュメントですが、以下の文書でも、パフォーマンスの最適化に関する
情報が提供されています。
Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure
まとめ
IIS の圧縮を利用する場合、CPU 負荷とネットワーク負荷のバランスを
取ることが重要にはなりますが、是非一度検証環境等でお試しください。
- Dynamics CRM サポート 中村 憲一郎