Я установил Bugzilla 4.4.5 из исходных кодов на машину CentOS 5. Обслуживается через виртуальный хост при стандартной установке CentOS 5 Apache с использованием MySql и установленного из исходного кода Perl.
Первоначально система работала хорошо. Несколько недель спустя пользователи жаловались, что сохранение изменений занимает чрезмерно много времени.
[Приблизительно] Статистика (все в секундах):
Также поступали сообщения о том, что пользователи на расстоянии 1000 км от сервера испытывали задержки до 30 секунд.
Для сравнения: полигон Bugzilla (свалка: https://landfill.bugzilla.org/bugzilla-4.4-branch) имел следующую статистику, несмотря на то, что находился в другом мире:
В отличие от обновления ошибок, просмотр ошибок выполняется быстро.
Статистика MySql показывает, что с базой данных все в порядке.
Проблема заключалась, хотите верьте, хотите нет, в отправке электронной почты.
Bugzilla не имеет внутреннего способа помещать электронную почту в очередь и отправлять ее в фоновом режиме. Таким образом, если это специально не настроено, все электронные письма должны быть отправлены до завершения «Сохранить».
Bugzilla делает упомянуть эту проблему, но я обнаружил это только в конце игры (и после того, как я начал добавлять логику трассировки в код Bugzilla :). Под администрацией | Параметры | Эл. адрес:
use_mailer_queue:
В большой установке Bugzilla обновление ошибок может происходить очень медленно, потому что Bugzilla отправляет всю электронную почту сразу. Если вы включите этот параметр, Bugzilla поставит всю почту в очередь, а затем отправит ее в фоновом режиме. Для этого необходимо, чтобы вы установили определенные модули Perl (как указано в checksetup.pl для этой функции) и чтобы вы запустили демон jobqueue.pl (иначе ваша почта не будет отправлена). Это влияет на всю почту, отправляемую Bugzilla, а не только на обновления ошибок.
Включение use_mailer_queue мне показалось, что я попросил Bugzilla запустить мини-демон sendmail. Вместо этого я решил установить Postfix (с которым я также больше знаком) и переключил Bugzilla на использование sendmail (mail_delivery_method: Отправить почту). Новая статистика:
Письма также получены по всем тестам ... :)