高负载下 Apache 内存与进程的最佳实践
检查 Apache 是否运行在 prefork 的工作模式
apachectl -V | grep MPM
httpd -V | grep MPM
Server MPM: Prefork
-D APACHE_MPM_DIR="server/mpm/prefork"
查看当前每个进程所占用的内存
top -bn 1 | grep httpd
56961 apache 20 0 406m 49m 40m S 1.9 0.1 0:21.92 httpd
56963 apache 20 0 406m 53m 44m S 1.9 0.1 0:20.45 httpd
56967 apache 20 0 402m 52m 42m S 1.9 0.1 0:20.28 httpd
56971 apache 20 0 404m 54m 44m S 1.9 0.1 0:21.18 httpd
56974 apache 20 0 415m 55m 42m S 1.9 0.1 0:20.07 httpd
RES column 是 Apache process 使用的内存量,左起第六列。
计算进程数
最大进程数 = Apache 所能消耗的内存总量 / 每个进程消耗内存量
设定相关参数
StartServers 30%MaxClients
MinSpareServers 5%
MaxSpareServers 10%
ServerLimit 256
MaxClients 200 = 10G/50M
MaxRequestsPerChild 10000
restart
apache 实际会在这个框架内,再控制进程。比如负载不高时候,自动减少进程。
apache 规划的关键在最大负载时候内存量,这一点和 nginx 不同
通过最大内存量,计算出 MaxClients 值
所有其他值均根据 MaxClients 计算出
相关阅读:
如何使用正则表达式提取微博中的话题(hashtag)?
幻灯片第一次切换的时候。 transition没有起作用? 后面就正常了
现在开发网站一般都使用什么方式?什么是前后端分离?
更换了DNS,48小时后仍然不能访问
PHP 怎么判断图片是否为鱼眼图片
netty 编码
港澳台手机号码的正则表达式怎么写?
如何让大尺寸的image适配到uiimageview里面
PC web前端和移动端的web app的区别在哪里?
C/C++ 有哪些适合快速开发的socket服务器框架?
如何获取到浏览器的开发者工具窗口打开这一事件呢?
多线程生产者消费者问题,出现了空值,问题出在哪里?
Mybatis+Spring整合问题,NoSuchBeanDefinitionException
有什么模块可以搭配gulp实现引导用户输入新建文件的必要信息?
使用 grunt-autoprefixer 遇到的问题
ubuntu下开发android,设备老是断,logcat经常没有日志
日志分析 中 的日志下载 不能用
Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
一段Url参数密文 求加密类型 以及如何解密?
var a = "23" < "3",a为什么是boolean值true?