httpd2.4.6三种工作模式(如何配置),防止占用内存暴增的策略
之前偷懒默认用yum安装了httpd。后来发现服务器内存暴增,一度达到75%
打开一看,好嘛后台休眠进程全是httpd。
重启之后再度访问发现内存还是稳步增长。
[root@iz2ze3ayxs2yps2i6b6m86z ~]# httpd -V
Server version: Apache/2.4. (CentOS)
Server built: Nov ::
Server's Module Magic Number: 20120211:24
Server loaded: APR 1.4., APR-UTIL 1.5.
Compiled using: APR 1.4., APR-UTIL 1.5.
Architecture: -bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="/run/httpd/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
进一步了解发现是prefork工作模式的缘故。
查看 Server MPM: prefork 确定了是运行在此工作模式下
于是乎,先想的策略是修改prefork工作模式的配置。
查看链接文件
[root@iz2ze3ayxs2yps2i6b6m86z conf.modules.d]# httpd -l
Compiled in modules:
core.c
mod_so.c
http_core.c
发现没有prefork。。
通过
-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
确定了配置文件位置
查看配置文件发现 Include conf.modules.d/*.conf 继续追踪发现 00-mpm.conf中
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
目前的状况已经不再支持本地修改三种工作模式的配置。
三种不同的mpm模式:
1prefork模式
通过fork进程来处理连接队列。较为占用内存
2.worker模式
采用进程和线程的混合模式。缺点在于
3.event模式
worker模式的改进版,解决了保活问题,需要linux支持epoll。
文档链接:http://httpd.apache.org/docs/2.4/mpm.html
解决问题方法:
也可以自己下一个完整的包,编译之前配置好。然后重启服务器即可。
由于2.3以后,event模式已经全面支持,所以可以采用此模式来解决问题。
00-mpm.conf中
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
改为
LoadModule mpm_prefork_module modules/mod_mpm_event.so
然后重启服务器即可
注意 event模式需要较高版本的php
投奔nginx了 终止
httpd2.4.6三种工作模式(如何配置),防止占用内存暴增的策略的更多相关文章
- VMWare提供了三种工作模式上网
VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...
- VMWare三种工作模式 :bridge、host-only、nat
VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式.这里 ...
- VMWare虚拟机网络的三种工作模式
VMWare提供了三种工作模式: 1.bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器.在桥接模式下,需要手工为虚拟系 ...
- 转载-LVS的三种工作模式
来源地址:http://www.uml.org.cn/zjjs/201211124.asp 1.lvs简介 lvs是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立 ...
- Apache的三种工作模式及相关配置
Apache的三种工作模式 作为老牌服务器,Apache仍在不断地发展,就目前来说,它一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块).它们分别是 prefor ...
- LVS集群的三种工作模式
LVS的三种工作模式: 1)VS/NAT模式(Network address translation) 2)VS/TUN模式(tunneling) 3)DR模式(Direct routing) 1.N ...
- 2.LVS的三种工作模式_NAT模式
1.LVS的三种工作模式 1)VS/NAT模式(Network address translation) 2)VS/TUN模式(tunneling) 3)DR模式(Direct routing) 1. ...
- LVS负载均衡(LVS简介、三种工作模式、十种调度算法)
一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现 ...
- LVS负载均衡软件使用及(LVS简介、三种工作模式、十种调度算法)
一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案, ...
随机推荐
- 浅谈JavaScript--this指向
js中this的值取决于调用的模式 方法调用模式 var student={ name:"adoctors", showThis:function(){ console.log(t ...
- 关于写PPT
如果你要给别人讲东西,要记得你的受众的不同,你的讲法也应该有不同,侧重点应该有所区别. 如果作为一个老师,你的PPT应该是让人看懂,把人讲懂,这是你的最终目的所在.如果你是一个毕业生,你要围绕你要解决 ...
- IOS BLE4.0蓝牙和外设连接和收发数据的流程
前言: 苹果在IOS 6系统之后开始支持BLE 4.0,iPhone4s,iPod 5,iPad 3等之后的机型开始内嵌BLE4.0硬件,因此在开发前请先确认你的开发环境符合上述要求,并且苹果在BLE ...
- Jmeter_前端RSA加密下的登陆模拟_引用js文件实现(转)
在一次项目实战中,前端登录使用了RSA加密,使用LoadRunner压测的第一步,就是模拟用户登录,可惜loadRunner11并不能录制前端的加密过程,并且安装的LR是基于C语言版,网络上关于RSA ...
- @Modifying 注解完成修改操作
以上我们做的都是查询,那要如何实现 修改.删除和添加呢? 可以通过以下两种方式: (1)通过实现 CrudRepository 接口来完成(以后介绍): (2)通过 @Modifying 注解完成修改 ...
- maven POM总结
可继承的字段 version property 其他占坑: parent import scope Dependency_Management中的scope是可以被继承的,http://maven ...
- keil编译器
1 数组比指针效率高. 2 v4.73不能查看局部变量的值:可先将C/C++选项下的优化级别设置成O0,查看完之后修改回去.因默认级别是2级.
- koa2 从入门到进阶之路 (四)
之前的文章我们介绍了一下 koa 中间件 以及 koa 中间件的洋葱图执行流程,本篇文章我们来看一下 koa 中使用 ejs 模板及页面渲染. 在 Express 中,我们经常会用 ejs 模板来渲染 ...
- Aspx比较简单的登录
客户端 <form id="form1" runat="server"> <div> 用户名:<input type=" ...
- JAVA中数组介绍
一.数组: 数组指一组数据的集合,数组中的每个数据被称作元素. 二.数组定义: 数组类型[] 数组名 = new 数组类型[元素个数或数组长度]: (注意:等号前面的[]里面不能写任何东西) 也可以以 ...