如何在Ubuntu 14.04服务器上调整Apache

前端之家收集整理的这篇文章主要介绍了如何在Ubuntu 14.04服务器上调整Apache前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前在我的Apache 2(准确地说是Apache 2.4.7)在Ubuntu 14.04上,我有这样的设置:

/etc/apache2/mods-enabled/mpm_prefork.conf

<IfModule mpm_prefork_module>
StartServers                    20
MinSpareServers                 100
MaxSpareServers                 250
MaxRequestWorkers               150
MaxConnectionsPerChild          0
</IfModule>

该服务器是一个8GB(RAM)的亚马逊服务器,只为一些谷歌广告活动加载一个三页的注册表单.

我在网上找到了一个名为apachetuneit.sh的脚本,但过了一段时间后,Apache报告了这个错误

[Tue Apr 21 16:45:42.227935 2015] [mpm_prefork:error] [pid 1134] AH00161:服务器达到MaxRequestWorkers设置,考虑提高MaxRequestWorkers设置

如何判断如何设置这些设置?

我只是专门询问如何调整Apache 2.4而不是其他任何东西.这就是为什么这个问题与this question不同的原因.

>认识到Ubuntu 14.04使用Apache 2和PHP运行mpm_prefork模块,其中可编辑文件位于/etc/apache2/mods-enabled/mpm_prefork.conf中.此外,认识到从Apache 2.4开始,MaxClients现在重命名为MaxRequestWorkers,因此任何有关MaxClients的文档都需要切换到MaxRequestWorkers.
>暂时使用以下命令停止Apache Web服务:
    sudo service apache2 stop

>等待5秒钟,然后运行以下命令以查明服务器上有多少虚拟内存是免费的:

    sudo free -ht

阅读Mem:行并查看免费专栏.将此视为您可以专用于Apache的RAM数量,尽管我通常希望在更强大的服务器上减去2GB(如在> 4GB中),或在较轻的服务器上减去1GB.所以,如果免费专栏说我有13GB免费,我建议给予Apache 11GB.这是基线.如果我们偶尔遇到日志中的任何数据库问题(如3天内日志中的那样3次)它需要更多内存,那么我们可能会认为我们只有10GB而不是11GB(在这种情况下) ).如果我们在Apache日志中遇到服务器需要更多MaxRequestWorkers,那么这是一个单独的问题,我将在下面解决.

>启动Apache Web服务器.

    sudo service apache2 start

>打开10个浏览器标签,从您的网站连接到一些较长或较慢加载的页面,并在每个标签上刷新3-4次.
>完成后,立即快速运行以下命令:

    sudo ps -ylC apache2 | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): "x/1024; print "Average Process Size (MB): "x/((y-1)*1024)}'

快速运行5次.

查看“平均过程大小”值,并在运行该值的5次中平均该值.

现在进行以下数学运算,并确保根据需要将GB转换为MB,以便所有数字都是MB值.因此,要么乘以1024或除以1024,这取决于您需要走哪条路.

MaxRequestWorkers = Baseline Free(带缓冲区空间)/ Avg Process Size

例如,我有一个14GB的服务器,但当Apache停止时,服务器显示它在空闲时使用1GB RAM.然后,我为操作系统提供了另外1GB的额外缓冲空间,以备它需要时使用.这意味着我的基线免费为12GB.现在我必须将它从GB转换为MB,因此我乘以12 x 1024并得到12288. 12288 MB是我的Baseline Free值.就我而言,我看到平均处理大小为21MB.所以,我拿了12288/21,我得到大约585.现在,sysops将这个值向下舍入是很常见的,所以我得到了580.

>编辑文件/etc/apache2/mods-enabled/mpm_prefork.conf并考虑将其设置为以下默认值,将XXX替换为MaxRequestWorkers计算:

 
 
`<IfModule mpm_prefork_module>`
  StartServers                    2
  MinSpareServers                 2
  MaxSpareServers                 5
  MaxRequestWorkers               XXX
  ServerLimit                     XXX
  MaxConnectionsPerChild          0
</IfModule>

请注意,您可能看不到ServerLimit参数.添加它.如果不存在,此参数默认为256,但需要与MaxRequestWorkers相同,否则您将收到错误.

> Apache配置中的另一个关键因素是带有Timeout变量的/etc/apache2/apache2.conf文件,以秒为单位进行测量.这是您在超时之前可以从服务器发送或接收的时间.您还必须记住文件上传文件下载,例如,如果您有一个人们可以上传或下载CSV或其他大文件的网站.并且您需要记住繁忙的数据库服务器以及在页面超时之前可能需要提供一些时间的位置.您创建Timeout变量越小,Web服务器接收新连接的可用性就越大.但请注意,将此值设置得太低可能会导致对PHP会话变量造成严重破坏,但不会使用基于浏览器会话的cookie.因此,对于依赖于Web会话工作流而不是浏览器会话cookie的PHP会话变量的Web服务器,值300(5分钟)可能是好的.对于只提供静态广告登陆页面的Web服务器而言,值45可能是好的,但对于需要大量使用PHP会话变量的服务器来说,这将是非常糟糕的.因此,请将此文件中的Timeout参数编辑为您需要的数量.这可能需要对您的所有网页进行一些测试,以查看该值是否过低.但是,除非您在大文件上传或大文件下载中遇到问题,否则不要将其设置为高于300,这可能是一个好主意.
>现在重新启动Apache Web服务.如果你做错了什么,Apache可能会在你再次启动时告诉你它,你可以纠正它.

    sudo service apache2 restart

>现在重复您之前执行的10个标签浏览器技巧,看看您是否在Apache Web服务器错误日志中遇到Apache配置错误

    sudo tail -f /var/log/apache2/error.log

…如果你愿意,按CTRL C即可退出.

寻找有关需要MaxRequestWorkers的投诉(最近重启Web服务器后).如果您看到即使使用最佳MaxRequestWorkers设置,那么您可能需要为您的网站或Web应用程序提供更多火力.考虑以下选项:

>使用CDN进行大型文件下载,图像和脚本.
>使用CloudFlare等其他缓存服务.
>重做您的网站或Web应用程序策略,以使用多个Web服务器作为负载均衡器后面的一个“Web应用程序”.
>向服务器添加更多RAM,从而重新进行此计算.

>现在已经调整了Apache服务器,它有点基线调整.您需要在2-3周内检查它,并在Apache错误日志中查找MaxRequestWorker问题.由此,您可以决定优化(参见步骤10).您还可以在Ubuntu上安装带有apt的Munin并查看Apache的性能,并在决定需要对Web服务器处理的流量进行任何操作之前绘制增长概念.

原文链接:https://www.f2er.com/ubuntu/348955.html

猜你在找的Ubuntu相关文章