Akagi201
8/11/2014 - 6:52 AM

apache.md

Apache进程

  • apache默认监听TCP协议80端口.
  • apache服务默认会启动一个主进程(控制进程)和多个子进程.
  • 查看apache相关进程: ps aux | grep httpd
  • 其中, 以root身份运行的是主进程, 以apache身份运行的是子进程, 主进程的进程ID保存在/etc/httpd/run/httpd.pid文件内.

Apache DSO

  • apache是一个模块化设计的服务, 核心只包含主要功能, 扩展功能通过模块实现. 不同模块可以被静态的编译进程序, 也可以动态加载.
  • 模块的动态加载通过DSO(Dynamic Shared Object)实现.
  • 查看模块: httpd -M.
  • 查看静态编译入程序的模块: httpd -I.

Apache MPM

  • MPM (Multi Process Modules)
  • MPM负责实现网络监听, 请求的处理等功能, MPM有很多种, 目的是为了在不同平台环境下实现最优化的性能及稳定性.
平台MPM
BeOSbeos
NetWarempm_netware
OS/2mpmt_os2
Linuxprefork, worker
Windowsmpm_winnt
  • 通过以下命令可以查看当前apache服务所使用的MPM: httpd -I, httpd -V

prefork

  • prefork是非线程, 预生成进程型MPM, prefrok会预先启动一些子进程, 每个子进程一个时间点只能处理一个请求, 并且会根据并发请求数量动态生成更多子进程.

worker

  • worker是线程话, 多进程的MPM, 每个进程可以生成多个线程, 每个线程处理一个请求.