Lucee неожиданно высокая загрузка ЦП Java

Запуск Lucee Lucee 5.2.7.62 на Ubuntu 16/Java 8_181.

Пару дней назад загрузка ЦП начала составлять около 50%, что, по-видимому, связано с вращением двух потоков Java, принадлежащих Lucee. Перезапуск Lucee и O/S не имеют никакого эффекта - поведение вращения начинается, как только Lucee работает.

При анализе FusionReactor проблема, похоже, связана с запланированными задачами. Похоже, до этой ошибки не было никаких изменений в запланированных задачах. Сервер находится в часовом поясе Великобритании - мне интересно, связана ли проблема с переключением с GMT на BST в эти выходные, хотя проблема началась за пару дней до этого.

Когда я выполняю трассировку вращающихся потоков в 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)



person Ian Finch    schedule 29.03.2020    source источник


Ответы (1)


Fusionreactor указал на проблему с запланированными задачами, когда визуализатор потоков показывает две вращающиеся задачи с трассировкой стека, подобной приведенной ниже.

Я убил эти темы, и вращение прекратилось. Затем я мог видеть две из моих запланированных задач, отмеченных розовым цветом как навсегда остановленные в администраторе Lucee. Повторное включение этих процессов и перезапуск Lucee вернули проблему, поэтому я снова убил их, и снова задачи стали розовыми в Lucee Administrator. Они также не работали по обычному графику. Другие запланированные задачи продолжали работать нормально, и через несколько часов все по-прежнему шло нормально.

Затем я удалил и воссоздал две запланированные задачи, которые, казалось, были проблемой, и перезапустил Lucee. Две задачи выполнялись по расписанию. Поэтому я пришел к выводу, что каким-то образом информация о времени для двух задач была повреждена, что вызвало вращение, когда Люси пыталась рассчитать следующее время выполнения. Исходный код Luce вокруг точки, в которой он, казалось, вращался, имеет цикл «пока (1)», который, казалось, увеличивает переменную даты - я подозреваю, что именно здесь все застряло.

Таким образом, сделайте снимок запланированных задач и создайте их заново, и у вас может быть обходной путь.

person Ian Finch    schedule 30.03.2020