我想调整我的 httpd.conf。我经常有大约 60-130 个 Apache 进程(全部 20+MB)。但是我的服务器只需要 3GB,而我总共有 8GB。
我的设置:
Timeout 10
FileETag None
StartServers 15
<IfModule prefork.c>
MinSpareServers 20
MaxSpareServers 30
</IfModule>
ServerLimit 500
MaxClients 300
MaxRequestsPerChild 8000
KeepAlive On
KeepAliveTimeout 15
MaxKeepAliveRequests 1000
我可以增加什么来加快页面服务器速度?我想要速度!好吧,我想我可以将 MaxRequestsPerChild 更改为 0,将 KeepAliveTimeout 更改为 50,但还有什么呢?增加 MaxClients 值是否值得?
有什么建议吗?谢谢,Oliver
答案1
您能获得的唯一提升就是消除启动新服务器所需的时间 - 提升 StartServers 指令 [如果您确定在任何给定时间始终有 60 个服务器在运行!]
否则你的性能瓶颈可能在其他地方:
- 测试你的应用程序,确保不是它们运行缓慢
- 测试你的数据库
- 确保你没有加载任何不必要的 Apache 模块
- 尽可能使用缓存
- 检查磁盘和处理器
-肖恩
答案2
正确 - 调整网络服务器(Apache)是你获得性能提升最少的地方。
您有额外的资源可用,所以您走在正确的道路上 - 您需要利用它们。现在是时候更积极地使用内存来加速您的一方 - 这是您将获得最大性能收益的地方。减少 CPU 使用率,增加内存使用率(通过缓存),尽量减少磁盘访问。
你没有提到你正在运行什么操作系统,或者你正在使用什么编程语言。我的专业领域是 Linux 和 PHP,所以我会提供一些建议,如果它不正确,你也许可以将其调整为其他堆栈。
PHP - 您是否在使用 APC 或 xCache 之类的东西?如果没有,那就开始吧!确保在配置中分配足够的内存来容纳整个应用程序。
开始在您的应用程序中构建缓存 - 利用诸如 memcached 之类的东西(您可能还可以使用 xcache/APC 变量存储)。
对数据库使用情况进行一些分析。增加缓冲区和缓存以在内存中保存更多内容 => 减少磁盘访问。
许多人致力于最小化内存使用量,但是如果您只使用 3GB 的 RAM,那么拥有 8GB RAM 的服务器又有什么用呢?显然,应最小化任何不必要的或实际上没有用途的内存使用量,但除此之外,请充分利用您的资源!