Мы создали панель управления поверх Jenkins, которая позволяет пользователям видеть только задания, относящиеся к проекту, а также запускать сборку. Пользовательский интерфейс построен с использованием responseJS, а серверной частью является JAVA REST WebServices.
WebService вызывает API Jenkins для получения информации о задании и преобразует данные в JSON для подачи в пользовательский интерфейс. В настоящее время на панели управления около 200 вакансий. На то, чтобы Jenkins API ответил с подробностями, требуется около 2 минут.
Дженкинс работает на Linux
OracleLinux 6 x Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz / 39.25 GB
Версия Jenkins - 1.564 с 16 исполнителями и более 2000 заданий
Sample API Call - http://jenkins:8080/job/jobName/api/json?tree=displayName,builds[result],lastBuild[estimatedDuration,result,duration,number,timestamp,actions[causes[userName]]]
API вызывается 200 раз для 200 заданий, чтобы получить подробную информацию о каждом задании.
Любые советы о том, как ускорить ответ API.
Я подумал об увеличении ОЗУ на Linux-боксе и настройке JVM OPTS. Также обновление Jenkins до последней версии LTS.
builds[result]
в запросе дерева может быть очень опасной, поскольку в более старых версиях (с отложенной загрузкой) это заставляло бы задание загружать все сборки. Причина в том, что пейджинг не выполнялся, например в более поздней версии вы должны указать диапазон возвращаемых сборок, по умолчанию, я думаю, 20. - person Jon S   schedule 10.02.2017