![如何优化 Apache 的网络服务器](https://linux22.com/image/553465/%E5%A6%82%E4%BD%95%E4%BC%98%E5%8C%96%20Apache%20%E7%9A%84%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我该如何通过以下配置优化服务器。加载页面花费的时间太长了。
IBM X3200 M3 服务器 - 1 个 Intel Xeon 处理器,4 GB 内存
下面是我当前的 apache 配置:
Start Servers: 5 (Default)
Minimum Spare Servers: 10
Maximum Spare Servers: 20
Server Limit: 500
Max Clients: 500
Max Requests Per Child: 10000 (Default)
Keep-Alive: On
Keep-Alive Timeout: 5
Max Keep-Alive Requests: 100
Timeout: 200
答案1
- 阅读一些有关该主题的好书。
- 重新配置您的网络服务器以捕获有意义的指标。
加载页面的时间
(现在事情真的开始变得复杂了)
- 使用适当的工具来捕获客户端页面响应(例如 Boomerang 或 Episodes)
- 收集数据
- 分析数据
- 将更改应用于代码/配置
- 重复步骤 4-7,直到性能达到最优,同时考虑局部最小值的风险
- 重复步骤 1-8,直到性能达到最优,同时考虑局部最小值的风险
如果您想要更具体的建议,那么我们需要了解更多有关正在发生的事情的信息。
顺便说一句,5 秒的保持活动超时很可能不合适。
答案2
一些常规的调整技巧(看起来像prefork):
- 将 keep-alive 减少到 2,尽量短,5 太长了
- 如果负载很大,请使用更多 (
start servers
) 启动服务器并保持更多活动:(maximium spare servers
) - 如果负载过重(apache 试图处理太多请求,内存容量不够),则可能需要进行交换。大致了解一下 http 进程使用了多少内存,并相应地减少最大客户端数。也就是说,如果您的 http 进程平均每个进程占用 30MB,在一台 4GB 的机器上,假设它是专用的 Web 服务器(没有 ftp、mysql 等),您可以为其分配 3GB,那么您不会允许超过 100 个客户端。