我有一个在 IBM 刀片上运行的网络服务器,硬件配置是:
Intel Xeon E5506 x 2 (8 cores)
12G mem
SAS disk raid1
我将此框用作专用的 Web 服务器,为十几个简单的 php 脚本提供服务。它们执行 mysql 查询并返回结果代码。没有图片,没有静态文件。mysql 服务器在本地运行。目前我正在使用 apache2。目的是使用此服务器为尽可能多的客户端提供服务。我想知道以下配置参数的最佳值是什么:
MinSpareServers
MaxSpareServers
MaxClients
我也想换成nginx+php fastcgi,如果用这种配置,应该怎么配置:
how many fastcgi processes
how many worker_processes
worker_connections
请根据您的经验给出建议。谢谢!
答案1
没有人能够对此给出答案。
目的是用这个服务器为尽可能多的客户提供服务
这是怎么回事?对于我们大多数人来说,问题在于让系统满足需求 - 但这句话却暗示你可以操纵需求来满足容量?????
得到答案的唯一方法就是亲自测试。有很多工具可用于对 Web 服务器进行压力测试 - Apache 应该自带“ab”。但最好在其他机器上运行客户端。
nginx 应该比 apache 快一点。但请应用标准 HTTP 调优工具(即合理缓存、使用压缩、PHP 操作码缓存)。如果您可以生成合理的工作负载,请尝试运行 mysqltuner。
我对 nginx 不太熟悉,但对于 apache,您应该将 MaxRequests 设置为合理的值(例如 5000)。spareservers 的设置将取决于工作负载的概况 - 它会发生很大变化还是相当稳定?
在 mysql 中启用低阈值的慢查询日志记录,并设置 apache 来记录 %D。