我們正在努力尋找XSL轉換的原因,這些轉換偶爾會在很長一段時間內偶爾執行。在Lucee中找到糟糕的XSLT性能的原因
到目前爲止,我們沒有什麼可以作爲一個真正的原因,因爲它可以在重負載下發生,但也可以在服務器基本閒置時發生。附帶的例子發生在15分鐘內有158個請求。所以,根本沒有提到的負載。
我們懷疑在轉換中使用的一些外部XML文檔,但這似乎也不是問題,因爲它們通常在毫秒內加載,有時可能是秒,但沒有任何內容可以解釋200+秒請求發生了。
當我們稍後嘗試檢查是否存在問題時,相同的轉換運行良好。
我們正在運行Fusion Reactor來監視我們的服務器,但也沒什麼不尋常的。在昨天的例子中,CPU負載並不高,也沒有其他不尋常的東西。
我附上了Fusion Reactor分析器的屏幕截圖,在這裏你可以看到所花費的時間,如果我們正確地解釋結果,它似乎總是佔用99.x%時間的「scanDocument」部分。
有什麼方法可以找出是什麼原因導致延遲?
我們目前正在運行的版本是:
Ubuntu的:14.04.5 LTS 的Java:1.8.0_45 Lucee:4.5.4.017最終
嗯,這聽起來像我們最初的懷疑,但我們看不到任何在那段時間緩慢的傳出請求。我們運行squid作爲代理,記錄所有非https請求,並且所涉及的轉換沒有包含任何我們看不到的https文檔。 這也可能是Lucee或Java內部的一些內部通信問題嗎? – korguell
@korguell:爲什麼不運行所有需要的XML和XSLT文件的本地副本的實驗? – kjhughes
@korguell緩慢是在傳入的流我懷疑,也許你可以運行wireshark或一些UL/DL速度儀工具來監視你的網絡連接? – RobAu