Мы используем Webalizer для создания отчетов по нашим журналам доступа Apache - это полезно в сочетании с Google Analytics.
Проблема в том, что webalizer использует БОЛЬШЕ ЦП при работе. Если я сбегу top
Я вижу два процесса Perl с 90% ЦП - это замедляет работу машины и, следовательно, веб-сайта для наших пользователей.
Webalizer запускается через ежедневное задание cron (/etc/cron.daily/00webalizer
):
#! /bin/bash
# update access statistics for the web site
if [ -s /var/log/httpd/access_log ]; then
exec /usr/bin/webalizer -Q
fi
Кто-нибудь знает, как ограничить, сколько CPU webalizer может использовать? Например, будет nice
помощь и как мне ее использовать?
Да, неплохо, это поможет, это снизит приоритет процесса, чтобы ваш веб-сервер и, следовательно, пользователи получили приоритет.
exec nice /usr/bin/webalizer -Q
Понаблюдав некоторое время за ситуацией, я делаю смущающее признание: Webalizer не вызывал скачка нагрузки на нашем сервере. На самом деле это было вызвано журнал, другой анализатор лог-файлов. Оба сценария работали одновременно (через cron.daily
), и я только выяснил, какой из них вызывает проблему, отключив один, затем другой и сравнив использование ЦП.
Нам не нужен журнал, потому что я даже не видел электронных писем, которые он создает. Итак, я отключил его, удалив символическую ссылку в /etc/cron.daily/
:
> ls -l /etc/cron.daily/0logwatch
lrwxrwxrwx 1 root root 39 Apr 17 03:46 /etc/cron.daily/0logwatch -> /usr/share/logwatch/scripts/logwatch.pl
Задача решена. сожалею Webalizer - не хотел ложно обвинить вас в том, что вы сильно зависаете от процессора.