例 1: 多数の Thing、少数のプロパティ、低い書き込み頻度
シナリオ
例 1 のシナリオの大まかな概要
エリア全体で 100,000 個のポンプを監視しています。各ポンプは 5 分ごとに 20 個のプロパティの値を ThingWorx に報告します。ピークユーザーアクセス時には、1 時間に 1,000 人のユーザーによって、それぞれ 10 個のサービスで構成される 10 個のマッシュアップが呼び出されます。この ThingWorx 構成では Microsoft SQL Server データベースが使用されています。
要件
Thing の数 (T): 100,000 Thing
プロパティの数 (P): 20 プロパティ
書き込み頻度 (FD): 5 分ごと (1 日当り 288 回の書き込み)
ピーク使用期間 (t): 1 時間 (3600 秒)
マッシュアップの数 (M): 10 マッシュアップ
ユーザーの数 (U): 1000 ユーザー
マッシュアップ当りのサービスの数 (SM): 10 サービス
ユーザーが各マッシュアップをロードする回数 (LM): 2 回
計算
データ取得:
WPS = T × [(P1 × F1)]
= 100,000 × [(20 × 288/86400)]
≈ 6,667 writes per second
* 
この計算では、デバイスの 20 個のプロパティすべての書き込み頻度が同じなので、合計は必要ありません。
接続サーバーの値も計算することを忘れないでください。
CS = T / 100,000
= 100,000 / 100,000
= 1 Connection Server
データビジュアリゼーション:
R = [(SM + 1) × UM × LM ] / t
= [(10 + 1) × 1000 × 2 ] / 3600
≈ 6.11 requests per second
すべてのマッシュアップが同じ量のトラフィックを処理し、同じ数のサービスが含まれていることを前提としているので、ここで合計を計算するには、各マッシュアップのすべてのユーザーの HTTP リクエスト ((SM + 1) x UM) にマッシュアップの総数 (M) を掛け合わせます。したがって、以下のようになります。
R = R1 × M
≈ 6.11 × 10 ≈ 61.1 HTTP Requests per second
基準の比較
T = 100,000 -> "中規模" プラットフォーム (またはそれ以上、Microsoft SQL Server 使用)
CS = 1 -> 接続サーバーは 1 台を推奨
WPS = 6,667 -> "小規模" プラットフォーム (またはそれ以上)
R = 61 -> "中規模" プラットフォーム (またはそれ以上)
サイジング
すべての基準を満たすには "中規模" ThingWorx システムが必要ですが、ホストのタイプに基づいて、以下のサイズを検討する必要があります。
サイズ
Azure VM
AWS EC2
CPU コア
メモリ (GiB)
ThingWorx Platform: 中規模
F16s v2
C5d.4xlarge
16
32
Microsoft SQL Server DB: 中規模
F16s v2
C5d.4xlarge
16
32
ThingWorx Connection Server
F2s v2
C5d.large
2
4
接続サーバーのサイジングについては Connection Services ヘルプセンターを参照してください。ここでもこのガイドの T が使用されていますが、Edge リクエスト (WebSocket を含む)、プロパティの更新、ファイル転送、平均メッセージサイズなどの要因も考慮されています。
計算された結果と実際の結果の比較
例 1 では、接続された製品ソリューションのユースケースをシミュレーションし、さまざまなマッシュアップよりも、プラットフォームに接続されている Thing の数に注目しています。実際のシナリオでは、マッシュアップ当りのサービスの数と各マッシュアップにアクセスするユーザーの数はマッシュアップによって大きく異なります (例 2 で検討)。
インフラストラクチャの観点からは、プラットフォームの平均の CPU 使用率は 51.6 %、メモリ消費量は 5.3 GB で、パフォーマンスは良好でした。MS SQL の平均の CPU 使用率は 16.7 %、メモリは 13.9 GB でした。
プラットフォームの観点からは、HTTP リクエストレートは 1 秒当りの平均が 62 オペレーションであり、これは想定した 61 オペレーションとほぼ一致しています。値ストリームキューレートは実際に 7 k WPS 付近で安定し、前述の想定した 6.7 k WPS 以上に近い状態です。
通常のオペレーションでは、SQL Server はメモリを最大限に利用しているように見えます。これは、サーバーが専用のマシンに配置され、できるだけ多くのデータをメモリに保存することを前提としています。これは上記のメモリ使用量のチャートで確認でき、使用量はテストの終了間近になってやっと横ばいになり、オペレーティングシステム用のわずかなプールだけが残されています。
このインフラストラクチャは実行したサイジングテストの期間では安定していますが、データベースサーバーが適切にサイジングされていることを確認するため、本番環境で使用する前に、さらに長い期間のテストを実施することをお勧めします (想定されるデータ保持レベルにデータベースが達するまでが理想的)。
これは役に立ちましたか?