繁体   English   中英

Azure 上的 Lucee/Java 的 CPU 使用率为 100%

[英]Lucee/Java on Azure Pegged At 100% CPU Usage

在此处输入图片说明 今天的wtf剧集正在进行中......

过去几天我们一直在遇到的问题。 出于某种原因,Java 被 100% 的 CPU 使用率盯上了。 如果我们禁用 lucee 服务,cpu 使用率会下降到正常水平。 一旦我们启用它,cpu 使用率会立即飙升至 100%。

完整路径是

/opt/lucee/jdk/jre/bin/java -Djava.util.logging.config.file=/opt/lucee/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

我们运行 Lucee 的其他服务器显示此过程通常具有大约 1-3% 的 CPU 使用率。

  1. 我们已经多次重新启动 Ubuntu 无济于事。
  2. 我们已经禁用了所有端口,以防出现一些奇怪的流量导致问题,再次无济于事。
  3. 我们已经验证没有正在运行的 lucee 脚本任务。
  4. 我们确实有一个与 Microsoft 一起运行的单独 SQL 服务实例,它没有显示任何奇怪的数据库使用情况。 我们还有大约 5 台其他服务器可以访问同一个数据库并且没有遇到此问题。
  5. 我已经将 Lucee 从 5.3.4.80 降级到 5.2.9.3,再次没有运气

服务器的其他信息

OS      Linux (4.4.0-174-generic) 64bit
Servlet Container   Apache Tomcat/8.5.6
Java    1.8.0_112 (Oracle Corporation) 64bit

这最初发生在我们大约两周前。 我们于 2 月 24 日星期一进来,到美国中部时间上午 9 点左右,我们的一台服务器开始遇到此问题。 我们设置了一个单独的 Azure VM 并复制了我们所有的文件,然后一切正常并运行良好。 现在,两周后另外两台服务器开始出现同样的问题。

感谢你们提供的任何帮助。

我在运行 Ubuntu 和 Java 8_181 的 AWS 服务器上遇到了同样的问题。 它在半夜突然开始。 Top 显示 2 个 CPU 满载,就像你的一样。 重新启动 Lucee/Tomcat 并重新启动没有任何效果。

Fusionreactor 指出了 Thread Visiualizer 显示两个旋转任务的计划任务的问题,堆栈跟踪类似于以下内容。

我杀死了这些线程,旋转停止了。 然后我可以看到我的两个计划任务在 Lucee 管理员中标记为粉红色永久停止。 重新启用这些进程并重新启动 Lucee 将问题带回来,所以我一次又一次地杀死它们,Lucee Administrator 中的任务变成粉红色。 他们也没有按正常时间表运行。 其他计划任务仍然运行正常,几个小时后一切仍然正常。

然后我删除并重新创建了两个似乎是问题的计划任务,然后重新启动了 Lucee。 两项任务如期进行。 因此,我得出结论,这两个任务的计时信息不知何故已损坏,当 Lucee 试图计算下一次运行时间时,这导致了自旋。 Luce 源代码围绕它似乎旋转的点有一个“while(1)”循环,它似乎在增加一个日期变量——我怀疑这就是问题所在。

总之,拍摄计划任务并重新创建,您可能有一个解决方法。

java.util.SimpleTimeZone.getOffsets(SimpleTimeZone.java:551) - 锁定 <0x5d7f0b89>(一个 java.util.SimpleTimeZone) 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM