热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Apache内存优化

本文介绍如何根据服务内存或VPS内存来优化Apachehttpd进程,合理优化内存占用01用ROOT账户通过SSH登陆服务器或VPS02运行top03按shift+m.04注意RESmemory占用内存最高的的httpd进程05按Q退出top06停止httpd服务:servicehttpdstop07httpd停

本文介绍如何根据服务内存或VPS内存来优化Apache httpd进程,合理优化内存占用

01用ROOT账户通过SSH登陆服务器或VPS

02运行top

03按 shift + m.

04注意RES memory占用内存最高的的httpd进程

05按 Q 退出 top

06停止httpd服务:service httpd stop

07httpd停止后,执行: free -m

08注意"used"列使用的内存,就是系统占用的内存。

09确定你的服务器或VPS的实际内存

10从实际内存减去系统内存,就是可用内存

11可用内存乘以0.8,作为Apache的平均可用内存(预留20%作为峰值内存)

12用第11步中的平均可用内存除以第4步中的httpd占用的最高RES memory,作为系统的MaxClients值

13打开 httpd.conf文件

14MaxClients:设置MaxClients为第12步中的值

15Keepalive:如果不需要,设置Keepalive为Off(设置为on可以让服务器处理更多的请求,但是会占用更多内存。如果你没有在第11步中预留20%的峰值内存就不要打开)

16keepalivetimeout:如果你设置keepalive为on, 尽量将keepalivetimeout设置的越低越好,如果你的服务器延迟很高,将keepalivetimeout 设置为2-5秒

17Timeout:将Timeout设置为一个合理的值,原则是不会使客户端请求因为超时而中断连接,又不会使已完成的连接保留太长时间。(如果客户端用宽带上网可设为10-30秒,如果是拨号上网可设为30-120秒)

18MaxKeepAliveRequests:将MaxKeepAliveRequests设置为网页页面中最大的请求数(如图片,css,js文件等)。如果你不知道,可以设置为70-200

19MinSpareServers:将MinSpareServers设置为第14步中MaxClients值的10-25%

20MaxSpareServers:将MaxSpareServers设置为第14步中MaxClients值的25-50%

21StartServers:将StartServers设置为MinSpareServers值或MaxSpareServers值。此值是Apache在服务器启动时开启的进程。流量高的站点应该讲此值设置为MaxSpareServers值,流量低的站点应该讲此值设置为MinSpareServrs值

22MaxRequestsPerChild:将MaxRequestsPerChild设置为500 (如果你发现apache子进程占用的内存快速增长) 到 10000 (如果没有发现有内存泄露)。如果设置为0,那么子进程永远也不会被清除,那么apache占用的所有内存也就不会被回收。

23设置完成后,保存httpd.conf文件,重启apache服务: service httpd restart.

下面是配置实例: 在TOP下看到占用内存最多的apache进程占用了 5mb 内存:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15535 root 16 0 15072 5376 3196 S 0 0.5 0:17.60 httpd
-bash-3.00# service httpd stop
/etc/init.d/httpd stop: httpd stopped
-bash-3.00# free -m
total used free shared buffers cached
Mem: 1024 131 892 0 0 0
-/+ buffers/cache: 131 892
Swap: 0 0 0
-bash-3.00#

可以看到系统占用了131MB内存。服务器总共有384MB内存可用.

384 - 131 = 253MB 可用内存
253 * 0.8 = 202.4MB Apache内存池
200 / 5 = 40

根据上面的信息,开始设置httpd.conf:

Timeout 10 (如果超过10秒还没打开网页,一定是别的地方出了问题)
MaxClients 40 (注意: 如果有其它进程需要更多内存可以将此值设置的更低)
MinSpareServers 4 (我的站点几乎没有流量)
MaxSpareServers 20 (我的服务器几乎不使用内存,所以apache子进程空闲较多也不会有影响)
StartServers 4 (同样是因为站点流量低,所以在apache启动后不需要开启太多进程)
Keepalive On (因为使用的内存不多,所以尽情开放。)
MaxKeepAliveRequests 100 (虽然我的页面没有100多个对象要传输, 但是设置的过低也不会提示性能,所以我设置为100)
KeepAliveTimeout 1 (我没有很大的文件/页面,我不希望为每个连接保持1秒以上的时间)
MaxRequestsPerChild 10000 (设置为此值可以让我的站点性能更好,因为我的站点没有可能导致内存泄露的PHP程序)

推荐阅读
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文介绍了如何利用jQuery实现对网页上多个div元素的显示与隐藏控制,包括基本的toggle方法及更复杂的显示隐藏逻辑。 ... [详细]
  • 本文提供了一个关于AC自动机(Aho-Corasick Algorithm)的详细解析与实现方法,特别针对P3796题目进行了深入探讨。文章不仅涵盖了AC自动机的基本概念,还重点讲解了如何通过构建失败指针(fail pointer)来提高字符串匹配效率。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
author-avatar
手机用户2502869561
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有