有没有更多的工作人员可用的httpd日志有办法吗?
例如,它可以logging工人变得不可用的date和时间,并在工人再次可用时再次login。
这个日志将被用来分析容量需求。
因为我们都找不到任何有关server reached MaxRequestWorkers setting
文档, server reached MaxRequestWorkers setting
日志条目,我知道他们在那里(过去打他们),我自己试了一下。 以下是我复制邮件的步骤:
# lxc launch ubuntu:16.04 test # lxc exec test /bin/bash # apt-get update ; apt-get -y install apache2 # a2enmod mpm_prefork # cat >/etc/apache2/mods-available/mpm_prefork.conf <<EOF <IfModule mpm_prefork_module> StartServers 1 MinSpareServers 1 MaxSpareServers 3 MaxRequestWorkers 5 MaxConnectionsPerChild 0 </IfModule> EOF # service apache2 restart # apt-get install wrk # wrk -d 60 -c 10 -t 10 http://localhost
现在看看/var/log/apache2/error.log – 你应该看到类似这样的一行:
[Fri Jul 29 20:59:18.304444 2016] [mpm_prefork:error] [pid 5419] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
我猜错误消息的确切措辞取决于使用的mpm和服务器首先达到的限制。
所以我也尝试了事件mpm:
# a2dismod mpm_prefork # a2enmod mpm_event # cat >/etc/apache2/mods-available/mpm_event.conf <<EOF <IfModule mpm_event_module> StartServers 1 MinSpareThreads 1 MaxSpareThreads 2 ThreadLimit 2 ThreadsPerChild 2 MaxRequestWorkers 5 MaxConnectionsPerChild 0 </IfModule> EOF # service apache2 restart # wrk -d 10 -c 50 -t 50 http://localhost
而且:
[Fri Jul 29 21:06:57.148442 2016] [mpm_event:error] [pid 5643:tid 139946523182976] AH00484: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
# a2dismod mpm_event # a2enmod mpm_worker # cat >/etc/apache2/mods-available/mpm_event.conf <<EOF <IfModule mpm_worker_module> StartServers 1 MinSpareThreads 1 MaxSpareThreads 2 ThreadLimit 2 ThreadsPerChild 2 MaxRequestWorkers 5 MaxConnectionsPerChild 0 </IfModule> EOF # service apache2 restart # wrk -d 10 -c 50 -t 50 http://localhost # tail -1 /var/log/apache2/error.log [Fri Jul 29 21:11:20.033223 2016] [mpm_worker:error] [pid 5805:tid 140034844882816] AH00287: server is within MinSpareThreads of MaxRequestWorkers, consider raising the MaxRequestWorkers setting
我们没有find任何文档,但我们可以确定它是在那里的:如果你达到了MaxRequestWorkers
设置,你将会被httpd2.4注意到。
但是,您需要密切关注error.log,因为每次达到限制时都不会重复此消息。 不确定是否在定义的时间范围之后重复,但重启httpd2.4后肯定会通知您