サイジング
本番環境のサイジング
MDMサービスのハードウェア要件はソースマスター上のマスターデータのレコード数や更新頻度、ターゲットマスターの数、マッピングの複雑さなどに大きく影響されます。また、接続先のマスターデータがデータベースに格納されているのか、ファイルなのか、あるいはデータベースがどこにあるのかによっても異なります。このため、MDMサービスのサイジングを行うには実際のマスターデータと同様のデータにアクセスしてみて、実際の運用データに近い処理を行った上で性能データを取得し、実際の運用機の選定を行うことをお勧めします。
- プロセッサ
-
MDMサービスはマルチスレッドに対応していますが、実際のジョブの実行はシングルスレッドで行われます。このためマルチコアやマルチプロセッサの環境で実行しても、同時に複数のスケジュールが実行されない限りはあまり効果がありません。
逆に、CPUスピードに関しては処理内容に大きく依存しますので、マスターデータの同期にかかる時間をリクエスト詳細画面で計測しながら要件を満たすCPUを選定してください。 - メモリ
-
メモリ容量の算定は、運用で想定される最大サイズのマスターデータを実際に同期してみることが重要です。すべてのデータをメモリに展開することはありませんが、同期するデータが大量になる場合は十分な容量を確保しなければなりません。余裕を持ったメモリ容量を指定することで安定した運用ができるようになります。
MDMサービスで使用しているヒープメモリのサイズは、マスターポータルのサーバーモニターやmdmmonツールで確認することができます。
また、MDMサービスはJava仮想マシン(以降JavaVMと呼びます)の上で実行されています。JavaVMではガベージコレクションという仕組みによりメモリが開放されますので、上記ツールで使用中のメモリは実際に使用されているメモリのサイズとは異なります。使用中のメモリが確保中のメモリの一定量を超えるとガベージコレクションの処理が実行され、メモリが開放されます。このため、グラフはのこぎり型のようになるのが一般的です。JavaVMのメモリ管理については、Sun Microsystems社や各種Webサイトで解説されていますので参考にすることをお勧めします。
また、HSQLDBはメモリを多く使用するためソースマスターのレコード量が多い場合にセンターリポジトリにInternalDataStorageを利用するとメモリ容量が足りなくなります。閾値はマスターデータのスキーマ構造に依存しますが、目安として10000件を超えるようなテーブルであれば外部データベースを利用することを推奨します。 - HDD
-
マスターデータ同期時にはさまざまなファイルが作成されます。MDMサービスで出力するデータに関しては、「メンテナンス」や「バックアップ」で説明されていますので、実際の運用に近いデータでマスターデータの同期をおこなってサイズを測定し、ログの保存期間などを考慮した上で算出してください。
また、センターリポジトリにはマスターデータを格納するテーブルの他にも差分検出用のテーブル等も作成されます。通常、最大でソースマスター上のマスターテーブルの(4 + ターゲットマスター数)倍の容量が必要になります。詳しくは、こちらを参照してください。