Поиск причины плохой производительности XSLT в Lucee

Мы изо всех сил пытаемся найти причину XSL-преобразований, которые иногда работают очень плохо в течение достаточно долгого времени.

Пока мы ничего не можем определить как реальную причину, так как это может произойти при большой нагрузке, а также когда сервер в основном простаивает. Прикрепленный пример произошел, когда было 158 запросов за 15 минут. Таким образом, никакой упомянутой нагрузки на всех.

Мы подозревали, что некоторые внешние XML-документы используются в преобразованиях, но это тоже не похоже на проблему, поскольку они обычно загружаются в течение миллисекунд, иногда может быть секунд, но ничего, что могло бы объяснить более 200 секунд, которые потребовались для запросов.

Те же самые преобразования выполняются довольно хорошо, когда мы пытаемся их позже проверить, есть ли проблема.

Мы запускаем Fusion Reactor для мониторинга нашего сервера, но также не видим ничего необычного. Во вчерашних случаях не было ни высокой загрузки процессора, ни чего-то еще из ряда вон выходящего.

Я приложил скриншот из профилировщика Fusion Reactor, где вы можете увидеть затраченное время, и всегда кажется, что часть «scanDocument» занимает 99,x% времени, если мы правильно интерпретируем результат.

Есть ли способ узнать, что вызывает задержку здесь?

В настоящее время мы используем следующие версии:

Ubuntu: 14.04.5 LTS Java: 1.8.0_45 Lucee: финальная версия 4.5.4.017

Профилировщик Fusion Reactor


person korguell    schedule 24.03.2017    source источник


Ответы (1)


Что ж, в SocketInputStream.sockerRead0 есть 99.8%, так что я виню в этом медленное сетевое соединение.

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

person RobAu    schedule 24.03.2017
comment
Хм, это похоже на наше первоначальное подозрение, но мы не видим медленных исходящих запросов в это время. Мы запускаем squid в качестве прокси-сервера, который регистрирует все не-https-запросы, и рассматриваемые преобразования не содержат никаких https-документов, которые мы бы не увидели. Может быть, это также какая-то внутренняя проблема связи внутри Lucee или Java? - person korguell; 24.03.2017
comment
@korguell: Почему бы вам не провести эксперимент с локальными копиями всех необходимых файлов XML и XSLT? - person kjhughes; 24.03.2017
comment
@korguell я подозреваю, что медлительность во входящем потоке, может быть, вы можете запустить wireshark или какой-нибудь инструмент для измерения скорости UL / DL, чтобы контролировать ваше сетевое соединение? - person RobAu; 24.03.2017
comment
Подобные проблемы часто вызываются запросами на получение известных DTD или схем с сайта W3C. W3C намеренно блокирует эти запросы, чтобы воспрепятствовать такой практике. - person Michael Kay; 24.03.2017