使用使用率子系統監視緩慢執行的服務
當您啟用使用率子系統時,它會取得有關服務執行持續時間的詳細指標。下列詳細資訊可使用此子系統中的服務擷取:
服務花在完成執行上的時間 (最小、最大與平均時間)
服務執行的次數
統計資訊會從上次重新啟動伺服器時開始記錄,但可以啟用「啟用統計資訊持續性」選項進行持續記錄 (以毫秒計)。使用 WriteStatisticsReport 服務來建立包含這些統計資訊的 CSV 檔案。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