利用率サブシステムを使用した実行速度が遅いサービスの監視
利用率サブシステムを有効にした場合、サービスの実行時間に関する詳細な判定基準が取得されます。このサブシステムではサービスを使用して次の詳細情報が取得されます。
サービスの実行完了までにかかった時間 (最小、最大、平均時間)
サービスが実行された回数
統計は、サーバーが最後に再起動された時点からミリ秒単位で記録されますが、「統計永続を有効化」オプションを有効にすることで永続化できます。これらの統計が含まれている CSV ファイルを作成するには、WriteStatisticsReport サービスを使用します。CSV ファイルは ThingworxStorage フォルダ内に作成されます。
判定基準はサービスが完了した後でのみ収集されます。サービスが無限ループで実行していて最終的にサーバーがダウンした場合、そのサービスの時間は記録されません。
利用率サブシステムからデータをエクスポートして分析することで、実行時間が長いサービスを特定することをお勧めします。遅いサービスを特定した場合、ログの行を出力するようにサービスを更新します。これらのログにはオペレーションの所要時間が記録されています。特定のパラメータセットや特定のクエリーが遅い動作の原因になっていることがあります。スクリプトにパラメータのログを記録することで、このデータを簡単かつ確実に取り込むことができます。次のスクリプトを拡張して、30 秒以上かかったオペレーションに関する詳細情報を出力できます。このスクリプトをさらに更新することで、必要に応じてサービスパラメータやその他のデータを出力できます。
var startTime= new Date();
// potentially slow operation
var endTime = new Date();
//calculate difference in seconds and print details only if operation takes over 30 seconds
var diff = (endTime.getTime() - startTime.getTime) / 1000 % 60;
if (diff > 30) logger.error("+++Slow operation: " + diff + "seconds "); // add any parameters or queries