Назад | Перейти на главную страницу

Почему Bugzilla медленно сохраняет мои изменения?

Я установил 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: Отправить почту). Новая статистика:

  • Мин: 0,975
  • Средняя 1.015
  • Макс: 1.140

Письма также получены по всем тестам ... :)