Bad*_*ari 6 linux ubuntu performance apache-2.4
我很清楚 ngix 对于静态内容要好得多,但我不能使用它。否则我可以完全访问我的服务器(VPS)。
我发现了很多关于优化 apache 的文章和帖子,但它总是关于 PHP 应用程序的性能。
我正在使用最新的 Apache 2.4.7
我已经在使用 MPM。我正在考虑调整KeepAlive MaxClients等以提高(静态内容)性能,如果有任何意义的话?
在尝试调整 Apache 之前,请确保您有适当的监控,以便您可以查看 Apache 服务的请求数量以及系统资源如何相互关联。一个易于使用的解决方案是munin。
接下来,准备负载测试,通过它您可以将系统置于负载之下,以查看不同的调整选项有什么影响。这有相当一些解决方案,从一个非常简单的AB在JMeter的到非常复杂的基于云的解决方案,它可以从世界各地的模拟成千上万的游客。搜索“网站负载测试”,你会发现很多解决方案。
最后,以下是我在调整 Apache 时认为很重要的几点:
删除未使用的模块:apache2ctl -M用于查看加载了哪些模块。(shared)如果不需要,应删除标记的模块。这将减少 Apache 的内存占用,并让您的操作系统将可用 RAM 用于其他目的(例如缓存)。
不要使用.htaccess文件:将所有设置放在 Apache 配置中并进行设置,AllowOverride None以便 Apache.htaccess在处理请求时不必查找文件并解析它们。
显式允许符号链接:通过设置Options +FollowSymLinks -SymLinksIfOwnerMatch您告诉 Apache 符号链接是允许的,因此它可以免费提供它读取的文件,而无需验证它们是否是符号链接。这节省了一些系统调用。
根据您的监控需求,考虑关闭ExtendedStatus:这将节省一些系统调用,但会给您提供较少的监控信息。不确定是否真的值得。
避免过多的日志记录:记录每个请求会导致相当多的 I/O。使用选择性日志记录,您可以控制要记录哪些请求。以下将仅记录对以 .html 结尾的 URL 的请求:
SetEnvIf Request_URI ".html$" dolog
CustomLog /var/log/apache2/access.log combined env=dolog
Run Code Online (Sandbox Code Playgroud)如果您不需要 SSL,请考虑使用 Event MPM,它会更有效地处理打开的连接(例如,由于 keepalive)。如果您需要 SSL,则 Event MPM 的功能与 Worker MPM 相同。请参阅如何选择要使用的 Apache MPM?有关不同 MPM 模块的更多信息。
压缩甚至预压缩数据:通过使用 mod_deflate 内容在发送到客户端之前被压缩。由于您有静态数据,可能值得对内容进行预压缩,而不是一遍又一遍地压缩相同的数据。有关如何完成此操作,请参阅http://httpd.apache.org/docs/2.4/mod/mod_deflate.html#precompressed。
调整操作系统:使用大型 TCP 写入缓冲区,以便将请求的数据提交给客户端所需的系统调用更少。还要确保打开文件的最大数量足够高,这样 Apache 就不会遇到该限制。
| 归档时间: |
|
| 查看次数: |
7164 次 |
| 最近记录: |