首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防止高交换:为流量高的服务器配置apache

防止高交换:为流量高的服务器配置apache
EN

Server Fault用户
提问于 2014-12-06 11:13:01
回答 2查看 1.1K关注 0票数 3

我拥有一个服务器,它拥有一个高流量站点,在给定的时间内为800-1400个用户提供服务。这些用户通常停留超过5分钟(考虑到网站的性质,用户通常下载大型文件)。

我注意到,服务器每48小时就用完一次交换,而我的服务器只使用5-11%的内存。我想征求关于应该对Apache配置进行哪些更改以防止发生这种情况的建议。

我的apache配置如下:

代码语言:javascript
运行
复制
keepalive: Off 
keepalivetimeout: 5
maxclients: 2500    
maxkeepaliverequests: 200     
maxrequestsperchild: 10000  
maxspareservers: 10  
minspareservers: 5     
serverlimit: 2600 
serversignature: Off     
servertokens: Full  
startservers: 5 
timeout: 300 

服务器规范:

代码语言:javascript
运行
复制
Intel XEON E5-1620v2
64 GB DDR3 ECC 1600MHz 
2x2000GB
EN

回答 2

Server Fault用户

发布于 2014-12-06 12:00:48

在考虑硬件升级之前,尝试优化操作。

否则,我建议您启用oom杀手,因为它会杀死接近消耗所有服务器内存的任何进程。当然,您需要一种更新的方法来重新启动apache (如daemontools)。

但在此之前,我想您可以考虑为apache设置MaxClients指令。这限制了apache一次服务请求的数量,并将其他请求排队。对于预叉,这限制了子进程的数量。对于工作人员,它限制了可用于服务请求的线程数量。

"Maxclients $number“是语法,您可以尝试使用MaxClients编号,看看您可以在不消耗太多服务器资源的情况下将其设置得多高。

当然,这个建议是基于这样一个假设,即您已经确定apache是导致内存问题的原因。

票数 1
EN

Server Fault用户

发布于 2014-12-06 18:40:23

  1. 完全切断掉期,因为使用它可能会使事情变得更糟。
  2. maxrequestsperchildmaxclients切下来。先从尾端划掉一个零,然后看看它是如何进行的。从那里开始,你可能会想把它们切成两半。
  3. 实施一个奥姆杀手。
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/649634

复制
相关文章

相似问题

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