Выполнение сборок Hudson с более низким приоритетом процесса
В моем офисе у нас есть старый сервер под управлением Hudson (1.395) и набор других вещей (JIRA и SVN являются важными двумя). Когда Husdon запускает сборки, замедление работы сервера очень заметно.
Я пытался найти способ перекомпоновки процессов сборки, которые Хадсон начинает (мы используем maven). Кажется, нет возможности для этого. Я не хочу, чтобы копия Tomcat Hudson работала с более низким приоритетом, поэтому я пытаюсь найти способ применить ее только к процессу сборки. Без замены / добавления серверов / ведомых, это единственные варианты, которые я видел:
Я могу заменить плагин maven своим собственным, который запускает Java через nice. Это кажется долгим путем для такого небольшого изменения, хотя я нашел, в каком месте кода это изменение будет происходить (в MavenProcessFactory.java, около строки 110). Это будет бремя обслуживания
Я могу указать Хадсону на поддельный каталог Java. Сделав это, я мог бы заменить Java сценарием оболочки, который бы называл настоящую Java, арендуемой.
Я мог бы установить какой-то скрипт, например, с помощью cron, но мне нужно было бы перехватить все подпроцессы, чтобы сделать это правильно
Кто-нибудь сделал что-то подобное? Вы знаете другой вариант?
Вариант № 3 - явный взлом. № 2 избегает необходимости касаться кода (поэтому мне не придется беспокоиться о будущих обновлениях), но не ясно, что происходит. Исправление кода потребовало бы некоторого обслуживания, но я мог бы прояснить, как я запускаю Maven, или даже сделать настройку индивидуальной для каждого проекта.
1 ответ
Отсутствие в самом программном обеспечении средства, позволяющего вам это делать, вы в общих чертах обрисовали в общих чертах три доступных варианта, чтобы это произошло, не работая слишком усердно.
Рассматривая эти варианты более внимательно:
Вариант 3 отстой. Не делай этого. Слишком сложный и слишком большой потенциал, чтобы облажаться.
Вариант 1 отстой меньше - вам просто нужно помнить, чтобы патч каждый раз обновлялся, что раздражает.
Вариант 2 - путь наименьшего сосания. Это то, что я бы сделал.
Да, не сразу понятно, что происходит, но если вы задокументируете то, что вы сделали (и документация находится в очевидном месте), это не плохое решение.