Apache 设置 | 优化建议

Apache 设置 | 优化建议

我希望获得一些关于 Apache 最佳设置的专家建议。

目前我们的网站按以下方式运作。

  1. 用户请求具有低分辨率图像的页面。
  2. 页面加载很快,然后 javascript 将会延迟加载。
  3. 调用Ajax来实现不同的功能。

某些页面可能有该用户的 30 个请求。

正在使用的服务器是

  1. 双四核 Xeon 处理器
  2. 8GB 内存
  3. SSD硬盘
  4. 使用Mysql。
  5. 红帽

当前 Apache 设置是

KeepAlive on
MaxKeepAliveRequests 100
KeepAliveTimeout 15


<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit  256
MaxClients   256
MaxRequestsPerChild  4000
</IfModule>

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

我认为应该启用 keepalive,但超时应设置为 1 秒。任何想法都将不胜感激。

#
httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   Feb  7 2012 09:50:11
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

答案1

测试、测试、测试、再测试。

抓取一些不错的负载生成器(不,ab不是适合的)如 siege、jperf、flood 或 tsung,建立一个基线,然后开始使用不同组合的请求和繁忙度进行加载。

很明显,您不知道 apache 当前是如何配置的,因为任何时候都只使用一个 MPM;在 2.4 之前,这实际上是编译好的,安装后无法更改。

首先,弄清楚什么当前配置实际上是;用结果更新您的帖子httpd -V,我们可以提供进一步的帮助。

相关内容