簡體   English   中英

Lucee突然高Java CPU使用率

[英]Lucee sudden high Java CPU usage

在 Ubuntu 16/Java 8_181 上運行 Lucee Lucee 5.2.7.62。

幾天前,CPU 使用率開始以 50% 左右的速度運行,這似乎是由於屬於 Lucee 的兩個 Java 線程在旋轉。 重新啟動 Lucee 和 O/S 沒有任何效果——只要 Lucee 運行,旋轉行為就會開始。

深入研究 FusionReactor,問題似乎與計划任務有關。 在此錯誤之前似乎沒有對計划任務進行任何更改。 服務器位於英國時區 - 我想知道這個問題是否與本周末從格林威治標准時間切換到英國夏令時有關,盡管問題是在幾天前開始的。

當我在 Fusionreactor 中堆棧跟蹤旋轉線程時,我通常會看到如下內容:

java.util.SimpleTimeZone.getOffsets(SimpleTimeZone.java:551)
- waiting on <0x5d7f0b89> (a java.util.SimpleTimeZone held by thread 84, Thread-50)
java.util.SimpleTimeZone.getOffset(SimpleTimeZone.java:540)
sun.util.calendar.ZoneInfo.getOffsets(ZoneInfo.java:293)
sun.util.calendar.ZoneInfo.getOffsets(ZoneInfo.java:236)
java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2340)
java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2312)
java.util.Calendar.setTimeInMillis(Calendar.java:1804)
java.util.GregorianCalendar.add(GregorianCalendar.java:1076)
lucee.runtime.schedule.ScheduledTaskThread.calculateNextExecution(ScheduledTaskThread.java:219)
lucee.runtime.schedule.ScheduledTaskThread._run(ScheduledTaskThread.java:121)
lucee.runtime.schedule.ScheduledTaskThread.run(ScheduledTaskThread.java:87)


Fusionreactor 指出了 Thread Visiualizer 顯示兩個旋轉任務的計划任務的問題,堆棧跟蹤類似於以下內容。

我殺死了這些線程,旋轉停止了。 然后我可以看到我的兩個計划任務在 Lucee 管理員中標記為粉紅色永久停止。 重新啟用這些進程並重新啟動 Lucee 將問題帶回來,所以我一次又一次地殺死它們,Lucee Administrator 中的任務變成粉紅色。 他們也沒有按正常時間表運行。 其他計划任務仍然運行正常,幾個小時后一切仍然正常。

然后我刪除並重新創建了兩個似乎是問題的計划任務,然后重新啟動了 Lucee。 兩項任務如期進行。 因此,我得出結論,這兩個任務的計時信息不知何故已損壞,導致 Lucee 嘗試計算下一次運行時間時出現旋轉。 Luce 源代碼圍繞它似乎旋轉的點有一個“while(1)”循環,它似乎在增加一個日期變量——我懷疑這就是問題所在。

總之,拍攝計划任務並重新創建,您可能有一個解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM