メモリの問題を削減するための最良事例
ThingWorx アプリケーションを開発および監視する際には、メモリによるパフォーマンスの問題を回避するため、次の最良事例を使用します。
ThingWorx アプリケーションの関数における毎日のメモリ使用量を監視します。これにより、アプリケーションが安定している状態と負荷がかかっている状態でのメモリ使用量を把握できます。
Apache JMeter や類似のユーティリティを使用して本番同等のデータに対してスケーラビリティテストを実行することで、ThingWorx アプリケーションと同時に対話する多数のユーザーとデバイスをモデリングします。
スケーラビリティテストに十分なシステムリソースが割り当てられていることを確認しなければなりません。ほとんどの生産システムには 64 GB の RAM が必要であり、そのうち 40 GB は Java ヒープに割り当てられます。
ストリームクエリーによってデータベースから多数のレコードが取得された後、JVM メモリでさらにフィルタされます。ストリームによって取得される行数を最小限にするため、適切な時間間隔を追加することをお勧めします。これは本番環境での毎日の使用でデータが累積し始める場合に特に役立ちます。
大量のメモリ内処理には、可能な場合、データベースサーバー、マイクロサービスサーバー、またはフェデレーション ThingWorx サーバーなどの外部システムを使用してください。
実行時間が長いサービスを最適化します。10 分以上実行し続けるサービスは、メモリ、データベース接続、その他のサーバーリソースを実行中にロックする可能性があります。スケジュールされているサービスも 10 分以内で実行されて完了することで、メモリリソースがシステムに返されるようにする必要があります。
本番環境での使用には高可用性クラスタを実装することを検討してください。これにより、いずれかの ThingWorx ノードでメモリの問題が発生した場合でも、アプリケーション全体としては使用可能な状態を維持します。