首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推荐Apache配置?

推荐Apache配置?
EN

Server Fault用户
提问于 2012-02-18 17:23:41
回答 2查看 1.8K关注 0票数 2

如果对你来说太肤浅的话,很抱歉提出这样的问题。考虑到下面的信息,您将如何配置httpd.conf?

当服务器繁忙时,页面的加载时间达到30秒。

服务器:

Xeon 3220 / 8GB内存/ 2x250GB SATAII /10 64/1 1GiGE /8 IPS (SoftLayer),CentOS 5(64位) Plesk 9.5

Linux server.x.com 2.6.18-274.17.1.el5 #1 SMP Tue Jan 10 17:25:58 EST 2012 x86_64 GNU/Linux

服务器上的站点平均每天的浏览量约为50万次,平均每天可访问200 on。据http://whos.amung.us/stats/称,当服务器繁忙时,大约有1500名在线访问者。

代码语言:javascript
复制
top - 11:15:08 up 23 days, 12:21,  1 user,  load average: 0.30, 1.09, 1.84
Tasks: 453 total,   1 running, 452 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.9%us,  2.8%sy,  0.0%ni, 90.3%id,  3.7%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   8165772k total,  8065268k used,   100504k free,   348884k buffers
Swap:  1052248k total,      208k used,  1052040k free,  6466136k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                              
15573 mysql     15   0  601m  80m 4520 S 35.1  1.0   2026:37 mysqld                                                                                                               
19381 apache    15   0  307m  15m 3312 S  1.0  0.2   0:02.73 httpd                                                                                                                
13230 apache    15   0  307m  15m 3296 S  0.7  0.2   0:03.74 httpd                                                                                                                
14152 apache    15   0  307m  15m 3284 S  0.7  0.2   0:03.91 httpd                                                                                                                
16147 apache    15   0  307m  15m 3296 S  0.7  0.2   0:03.14 httpd                                                                                                                
16957 apache    15   0  307m  15m 3292 S  0.7  0.2   0:03.03 httpd               

httpd.conf文件:

代码语言:javascript
复制
Timeout 60
KeepAlive On
MaxKeepAliveRequests 300
KeepAliveTimeout 5
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>
<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>
EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-02-18 20:39:22

需要考虑的事项:

  1. 你的最大在线客户数量是1500。
  2. 每个httpd进程使用的内存量(从输出中大约使用300 of )和机器的内存量。

彻底检查httpd.conf并删除任何不必要的模块以减少内存占用将是一个好主意。一旦您这样做了,您可以开始逐步提高MaxClientsServerLimit

您也希望提高StartServersMinSpareServersMaxSpareServers,但是再次逐步地这样做,并在每次更改之后对内存使用和站点性能进行一段时间的监视。

其他需要考虑的事情是将像清漆这样的东西放在Apache前面,或者像费尔南多建议的那样。

票数 2
EN

Server Fault用户

发布于 2012-02-18 18:37:20

如果可能,尝试切换到另一个try服务器,如Nginx或Lighttpd。Apache很棒,但是通常它不能很好地处理繁忙的网站。

如果你不能,没问题。以下是一些可以帮助你的小窍门:

1.禁用日志

如果应用程序不依赖于日志文件,并且使用Analytics或其他服务进行统计,则可以禁用日志。您将看到I/O下降,因为apache不必在磁盘上写入所有请求。

2.你在使用PHP吗?Opcode缓存是强制性的!

我更喜欢APC,因为它安装简单,稳定,并将很快成为PHP的一部分。要安装它,只需运行:

代码语言:javascript
复制
pecl install apc

它们将以下行添加到php.ini中:

代码语言:javascript
复制
extension="apc.so"

重新启动您的and服务器,并观察负载下降。

3.更改为另一个MPM

更改为员工或事件MPM在某些原因上会有所帮助。这取决于您所提供的文件类型。我看到了一些情况,在这种情况下,负载下降了,而其他人作为前置叉运行,或者工人并没有产生很大的影响。

注意:如果您更改了worker,并且将其作为DSO模块运行,则可以破坏PHP。先看看这个。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/361501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档