測井公司表示,此行具體地,殺害我們的CPU爲什麼應用洞察性能計數器收集造成CPU佔用率過高
Microsoft.AI.PerfCounterCollector!Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.Implementation .PerformanceCounterUtility.ExpandInstanceName()
一種理論是用來識別庫Perf Counters的正則表達式的遞歸是
https://adtmag.com/blogs/dev-watch/2016/07/stack-overflow-crash.aspx
我檢查過Perf Counter的名字,沒有什麼看起來特別出奇的名字和正則表達式應該沒有麻煩咀嚼它們。當然,很長一段時間沒有任何問題。
現在我已經打開的應用程序,試圖觀察問題的見解診斷日誌記錄(在測試環境中)
有沒有其他人看到這一點,我們如何才能減輕呢?
我們已確保DeveloperMode未設置爲打開。
有沒有人注意到了這一點 - >我沒有 –
你專門收集了哪些計數器?它只是默認設置,還是你配置了一些自定義? ExpandInstanceNames做了很多工作來確定與應用程序進程有關的計數器實例,所以如果您配置了自定義計數器,您可以通過避免「實例佔位符」(例如APP_WIN32_PROC)來加快速度。並指定具體的實例名稱。 另外,你看到的CPU使用模式是什麼?它一直很高,還是有尖峯?只應每5分鐘調用一次ExpandInstanceNames。 – ZakiMa
@ZakiMa,是的,我們有一堆NServiceBus自定義計數器。 CPU使用率非常好,然後一個盒子上的4/8個核心會發生100%的瘋狂,這種方法看起來就像是一個小人物。但它似乎不可恢復。在我們即將進入高峯期時,這是一個值得關注的問題,而這正在發生的錫需要大量的空間。 – brumScouse