サイジングに関して記載をする。むずかしいテーマであるため、
Tipsという軽いカテゴリーに位置づけてみた。
Dynamics CRMにおいてサイジング何をどのように検討し、どうすればよいのであろうか。
困ったときはまず実装ガイド(http://www.microsoft.com/ja-jp/download/details.aspx?id=40322)を参照する。
「Microsoft Dynamics CRM 2013 のシステム要件と必須テクノロジ」の章に以下のような記述がある。
①Microsoft Dynamics CRM Server 2013 のハードウェア要件
プロセッサ:クアッドコア x64 アーキテクチャの 2 GHz CPU 以上
メモリ:8 GB 以上の RAM
ハード ディスク:40 GB 以上のディスク空き容量
②Microsoft Dynamics CRM Server 2013 の Microsoft SQL Server ハードウェア要件
プロセッサ:クアッドコア x64 アーキテクチャの 2 GHz CPU 以上
メモリ:16GB 以上の RAM
ハード ディスク:SAS RAID 5 または RAID 10 ハード ディスク アレイ
※いずれも推奨要件
※ユーザー数 320 人の場合のロード シミュレーション テストを前提
細かい記述がないのでどう解釈するかに答えはないが、私は以下のように解釈している。
「320人が利用した場合(※1)、CRMAPサーバとCRMDBサーバを構築し(※2)、
上記のリソースを割り当てた場合動作する(※3)。」
解釈と共に3点の疑問が発生する。
※1 どのような利用をした場合か。例はないのか。利用頻度が少なければ500人でも大丈夫なのか
※2 1台のケースはないのか。単純にリソースの足し算でよいものなのか
※3 どの程度動作するのか
※1に関してはDynamics CRMのサイジングに関するホワイトペーパーの
前提と同じと考えてよいのではないかと思ってる。
Dynamics CRMの性能測定に全く異なる前提を置くことは考え難いと思われるからである。
http://technet.microsoft.com/ja-jp/crm/gg712381#crm2013
・BladeSymphony と Hitachi Storage Solutions を利用した Microsoft Dynamics CRM 4.0 with SQL Server 2005 EE
パフォーマンス・サイジング検証
・Microsoft Dynamics CRM 2011 スケーラビリティとパフォーマンス
上記2つが有益と考えている。残念ながら最新の2013に関するものは存在しない。
2011のものに関しても同時15万ユーザーでの利用というものであり、実践的なケースでは大きすぎる想定である。
結果としては類似的なサイジングとなっているため、この程度と考えてよいと思う。
また、上記を踏まえるならば、320というユーザー数は目安であり、ポイントはトランザクション数であることが分かる。
※2に関しては記述が存在しないが、サポートされるサーバ構成である。
コストをかけられない小規模展開ではよく発生する構成ある。
誤解を恐れず私見を述べると、1台構成は100ユーザー程度までがよいのではないかと考える。
経験則ではこの程度まで環境ではパフォーマンスに問題が発生したことがほぼない。
100ユーザーというのはせいぜい2、3部門(モジュール)が小規模で利用し、
データとしても数万件から数十万件を扱うというケースがほとんどである。
仮に問題が発生した場合としても、メモリやCPUの追加で回避が可能な範囲と思われる。
最後に※3である。
ホワイトペーパーP.11にはサーバでの平均応答時間が記載され、ミリ秒の単位で応答していることが分かる。
つまり、上述の前提とサイジングであれば、平均1秒もかからずにサーバサイドでは応答を行えるということがわかる。
逆に言うとこれ以外はサーバではなく、クライアント等その他の要素の性能に依存するというように理解できる。
以上。数回推敲したが、あまりよいまとめにならなかった。とりあえず参考までにしてもらいたい。
最後にパフォーマンスに問題が発生した場合の回避案を記載しておく。
■クライアントPCでの描画に関する問題。
・最新のブラウザバージョンを利用する
・他ブラウザを検討する(IEならChromeなどへ)
■データの抽出に時間がかかる問題。
・インデックスの追加(ホワイトペーパーP.30以降)
・そもそも取得方法変更する(対象データを変更。テーブルにクエリを実行し、JOINを減らすなど)
経験則であるが、この程度のことを実施しないと大概は改善しない。
ちょうどインデックスをつけることが可能なのか調べようとしていたところ、「・インデックスの追加(ホワイトペーパーP.30以降)」との記載を見つけました。
ここでいう、ホワイトペーパーというのはどの資料を指しているのでしょうか?
CRM2013PerformanceBenchmark150KreportやCRMIGv6_AdministrationGuideなどを見てみましたが、それらしき該当箇所が見つかりませんでした。
以上、よろしくお願いいたします。
クリックしてCRM40WP_Perf_v1.0.pdfにアクセス
こちらのことです。
インデックスの作成方法ではなく、インデックスによってパフォーマンスを上げることができる場合があるというものです。
ありがとうございました。