之前偷懒默认用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

然后在官网找2.4文档时发现2.3起新特性默认动态加载。

目前的状况已经不再支持本地修改三种工作模式的配置。

三种不同的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三种工作模式(如何配置),防止占用内存暴增的策略的更多相关文章

  1. VMWare提供了三种工作模式上网

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...

  2. VMWare三种工作模式 :bridge、host-only、nat

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式.这里 ...

  3. VMWare虚拟机网络的三种工作模式

    VMWare提供了三种工作模式: 1.bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器.在桥接模式下,需要手工为虚拟系 ...

  4. 转载-LVS的三种工作模式

    来源地址:http://www.uml.org.cn/zjjs/201211124.asp 1.lvs简介         lvs是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立 ...

  5. Apache的三种工作模式及相关配置

    Apache的三种工作模式 作为老牌服务器,Apache仍在不断地发展,就目前来说,它一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块).它们分别是 prefor ...

  6. LVS集群的三种工作模式

    LVS的三种工作模式: 1)VS/NAT模式(Network address translation) 2)VS/TUN模式(tunneling) 3)DR模式(Direct routing) 1.N ...

  7. 2.LVS的三种工作模式_NAT模式

    1.LVS的三种工作模式 1)VS/NAT模式(Network address translation) 2)VS/TUN模式(tunneling) 3)DR模式(Direct routing) 1. ...

  8. LVS负载均衡(LVS简介、三种工作模式、十种调度算法)

    一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现 ...

  9. LVS负载均衡软件使用及(LVS简介、三种工作模式、十种调度算法)

    一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案, ...

随机推荐

  1. [CentOS7] 挂载iso镜像文件到/media目录下

    声明:本文主要总结自:鸟哥的Linux私房菜-第七章.Linux 磁碟與檔案系統管理,如有侵权,请通知博主 首先,设置虚拟机让它加载iso镜像文件到CD/DVD设备中,这个设备对应于Linux下的/d ...

  2. POJ1442 Black Box 堆

    用大根堆和小根堆分别存放前$i-1$大的元素前$k-i$小的元素. 将当前序列的元素压入最小堆,如果最小堆的最小数大于最大堆的最大数则进行交换,保证最大堆中的所有数小于最小堆. 因为$i$值每进行一次 ...

  3. Helvetic Coding Contest 2016 online mirror C2

    Description Further research on zombie thought processes yielded interesting results. As we know fro ...

  4. Oracle存储过程实例分析总结(代码)

    1.存储过程结构 1.1 第一个存储过程 ? 1 2 3 4 5 6 7 8 9 10 11 12 CREATE OR REPLACE PROCEDURE proc1 (     para1 varc ...

  5. JS——两个原生选择器

    1. document.querySlector() 2.document.querySlectorAll() <!DOCTYPE html> <html lang="en ...

  6. 切换本地凭据(Windows上登录的GitHub账号)

    切换本地用户,可以向微软小娜搜索Windows凭据,这个步骤可以参考这篇博客 的说明.

  7. 使用freemarker生成html、doc文件【原创】

    语言:java 功能:使用freemarker生成html.doc 1.生成html public void updateuseFreemarker2html(String abdkId) { // ...

  8. 示例1-苏宁每日自动登录打卡-结合Au3

    public class SuningAutoClock { public static void AutoClock() throws IOException, InterruptedExcepti ...

  9. Java BIO

    目录 BIO 字节流 OutputStream InputStream 字符流 Reader Writer 转换流 InputStreamReader OutputStreamWriter BIO I ...

  10. java实现定时任务(Quartz)

    java中实现定时任务执行某一业务.具体操作如下: 1.定义初始化任务 2.任务业务操作 3.定义初始化方法 4.在web.xml中注册启动 5.定义具体执行时间 6.quartz定时任务时间设置 q ...