我该如何调整一年中一天的流量

我该如何调整一年中一天的流量

我经营一个网站,为全州高中游泳社区提供服务。我做这个是因为热爱这项运动,所以我不能花一大笔钱来托管等等。我也不需要——除了一年中的一天。

所有教练都通过我的网站提交他们的地区参赛作品,并且通常都等到截止日期才提交。那是昨天,我的网站在整个赛季中从未出现过故障,但一天中至少出现过 4 次无响应停机。它从未出现过超过一小时的故障,而且总是会恢复。(我发出了 apache 重新启动命令以确保万无一失)。

我的问题是:我该如何调整 Apache 来处理一天内激增的用户?如果我只需要一天的提升性能​​,那么花一年的钱购买更多硬件是没有意义的。我尝试阅读有关 prefork.c 和 worker.c 的内容,但我对它们的理解不够深入。这是我当前的配置:

<IfModule prefork.c>
 StartServers       1
 MinSpareServers    1
 MaxSpareServers    5
 ServerLimit       10
 MaxClients        10
 MaxRequestsPerChild  4000
 </IfModule>

 <IfModule worker.c>
 StartServers       1
 MaxClients        10
 MinSpareThreads    1
 MaxSpareThreads    4
 ThreadsPerChild     25
 MaxRequestsPerChild  0
 </IfModule>

我预期的最大同时用户数是 400。但可能远少于这个数字。昨天只有大约 70 个用户,而且性能不佳。有什么建议吗?

更新:

  728 root      20   0  317m  20m 7752 S  0.0  2.7   0:49.58 httpd
19700 webuser   20   0  489m  37m 6792 S  0.0  4.9   0:00.72 httpd
19737 webuser   20   0  493m  42m 6624 S  0.0  5.5   0:00.59 httpd
19756 webuser   20   0  494m  43m 6604 S  0.0  5.7   0:00.58 httpd
19758 webuser   20   0  495m  44m 6780 S  0.0  5.8   0:00.97 httpd
19777 webuser   20   0  493m  42m 6620 S  0.0  5.5   0:01.08 httpd

查看了资源,但我不知道自己在看什么。root 拥有的进程应该是运行 Apache 的进程。webuser 拥有的进程是由 Apache 本身生成的吗?为什么它们这么大?服务器大约有 3/4G RAM,如果我为 Apache 计算 1/2,而进程占用 40M,我该如何估计可能同时使用的用户数量?

答案1

鉴于您提供的有关您的环境的详细信息很少,我将尝试勾勒出一些一般规则:

  1. 首先,检查你的 Apache 正在使用哪个 mpm 模块,这样你就会知道你需要调整你发布的两个配置块中的哪一个:

    apachectl -D DUMP_MODULES | egrep -i "prefork|worker"

  2. 如果您处于预分叉模式,并且正在通过 运行某种 php 应用程序mod_php,则 Apache 进程随着时间的推移变得庞大的原因是,每次应用程序从客户端收到新请求时,模块都会将越来越多的 php 代码和数据加载到内存中。为了保持进程的大小较小,请尝试降低MaxRequestsPerChild到 500 左右。每个进程在处理完MaxRequestsPerChild请求后都会被终止,然后会启动一个新进程(希望它占用的内存更少)。这会以性能为代价,因为新进程将更频繁地重新生成,但由于您试图保持服务运行,而不是使其速度快如闪电,因此这应该是一个可以接受的权衡。

  3. 您不希望您的 Web 服务器进行交换:确保每个 Apache 进程的最大 RAM 消耗量ServerLimitMaxClients超过服务器可用内存的 75%。

  4. 如果可以,请转到 AWS 或类似的云服务提供商:AWS 能够按照预定的时间表自动扩展和缩减您的服务器。在 90% 的实际场景中,“自动扩展”都是骗人的骗术,但您的案例可能是少数几个真正能从该功能中受益的案例之一。您不应该浪费这个机会。

  5. 如果你在一台拥有 4GB RAM 的服务器上为 70 个客户端提供服务时遇到了此类问题,我怀疑服务器内部一定出了问题,但你提供的细节不足以让你做出任何有根据的猜测

相关内容