我们用网络管理者生成有关我们的 Apache 访问日志的报告 - 它与 Google Analytics 结合使用很有用。
问题是 webalizer 在运行时占用了大量的 CPU。如果我运行,top
我可以看到两个 perl 进程占用了 90% 的 CPU - 这会降低机器的速度,从而降低我们用户的网站速度。
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
有人知道如何限制 webalizer 可以使用的 CPU 数量吗?例如,这是否有nice
帮助,我该如何使用它?
答案1
是的,这很好,会有所帮助,它降低了进程优先级,因此您的网络服务器和用户会获得优先权。
exec nice /usr/bin/webalizer -Q
答案2
观察了一段时间的情况后,我终于可以坦白说一件令人尴尬的事了——Webalizer并没有导致我们的服务器负载激增。实际上这是因为日志监视,不同的日志文件分析器。两个脚本同时运行(通过cron.daily
),我只能通过禁用一个脚本,然后禁用另一个脚本并比较 CPU 使用率来找出导致问题的原因。
我们不需要 logwatch,因为我从未见过它生成的电子邮件。因此,我通过删除符号链接来禁用它/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- 并不是要诬告您占用过多的 CPU。