繁体   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