linux – 非常高流量服务器上的Apache稳定性

前端之家收集整理的这篇文章主要介绍了linux – 非常高流量服务器上的Apache稳定性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有一个带宽度非常高的服务器客户端.在需求方面它的服务非常轻松 – 静态jpeg和文本.

服务器规格:

>双四核L5520 2.26gHz(3.2 Turbo& HT)8MB缓存
> 72GB Ram
> 2 300GB SSD(1个专用于/ usr以跟上日志记录)
在信誉良好的数据中心,> 100Mbps(未计量)端口

我目前得到的apache配置如下:

>启动服务器512
>最小备用服务器256
>最大备用服务512
>服务器限制7500
>最大客户7500
>每名儿童最多请求数100
>保持活跃超时5
> Max Keep Alive请求768
>超时30

我上周看到每秒2000-3000次apache访问,没有任何问题.当apache重新启动并且所有进程重新产生时,转换为80-90Mbps并且负载大约为1,峰值大约为5,瞬时极值为30-50.内存使用量约为40GB.流量增加了,我现在看到每秒3000-4000次apache访问,而且http不稳定.虽然apache偶尔会重新启动,但是当apache运行并且有闲置的工作人员和打开的插槽时,我正处于没有http连接的时期.稳定时负载大约为2,经常出现尖峰,这无疑是我的连接问题,但我不知道为什么. RAM使用量为50-60GB.吞吐量约为130Mbps. (我不知道当我的软件包是100Mbps时,我的速度超过了100Mbps,但我现在已经获得DC的票,询问他们是否因为我的使用而丢弃了数据包,但这并不是’解释我的稳定性问题,除非ack正在下降并留下连接超时……也许……不确定……从未想过这个思想背后的理论到现在为止)

我正在寻找意见,如果我已达到apache可以处理的操作最大值,或者是否存在我可能超出的其他系统限制.

有些人告诉我LiteSpeed是解决方案,但我没有经验,我的客户听到了不好的事情,所以也有人赞赏.

谢谢大家!

解决方法

首先,Apache,Nginx或LightSpeed放在一边 – 如果你运行的服务器有2000-3000个请求/秒,那么就该开始考虑双服务器和负载平衡了.根据您所服务的内容,您可以轻松地从这些服务器中获得更多服务,但是按照这些速率,您可以提供重要的服务(或至少是高流量服务),因此您除了能够处理瞬时外,还需要冗余负载峰值.
开始认真考虑负载平衡基础设施(这里有很多关于HAProxy之类的问题/答案,谷歌也可以帮助你).

也就是说,我不相信你已经达到了Apache的操作极限.
您当然可以考虑其他高性能Web服务器(Nginx非常受欢迎),或者您可以考虑调整Apache配置以获得更好的性能.

一些基于我在您的问题中看到的Apache建议:

在做任何其他事情之前,请阅读the Apache performance tuning documentation.

> MaxRequestsPerChild实际上只对包含资源泄漏有用.
100(你当前的价值)绝对是疯了.你正在搅拌杀死表现的过程.
如果您所服务的都是静态资源,那么0(永远不要杀死孩子)当然是可行的.
10000(一万,默认)几乎在所有情况下都可以.
50000(五万)是我用于纯静态HTML网站的东西.
>可以调整StartServers,MinSpareServers和MaxSpareServers.
我通常将StartServers和MinSpareServers设置为相同的值.
如果您想要保留特定最小数量的备用服务器,那么这就是您应该开始使用的数量.对此有一个很好的价值是同时有效连接的低水位标记.
MaxSpareServers应设置为同时活动连接的高水位标记的75-80%.
> ServerLimit和MaxClients可能会增加.
如果你有大量的可用内存和大量的免费cpu,请增加这些数字.
如果您正在接近资源饱和状态,请保持原样.
>使用graceful restarts
你说你在Apache重新启动时会在你的负载中看到“瞬间的极端峰值”.
这告诉我你可能没有使用优雅的重启.
无论是什么导致Apache重新启动,让它将SIGUSR1发送到Apache而不是SIGHUP(或天堂禁止,实际上停止并启动整个服务器).与定期重启完全停止/启动相比,这对系统的侮辱和破坏性要小得多.
>考虑其他MPM
如果您使用的是Unix系统,几乎可以肯定使用prefork MPM.
请考虑使用Worker MPM.
调整工人MPM有点不同
>花一些cache
Apache有caching modules,可用于将频繁访问的数据保存在RAM中.这避免了对频繁访问的数据的磁盘(或至少是文件系统层)的往返.
配置memory backed缓存可以为相对少量的内存提供相当大的性能提升.

猜你在找的Linux相关文章