httpd性能调整及服务器安全
2017-11-22 23:17
260 查看
MPM:多路处理模块
分为三种模式:
1,prefork
Prefork MPM实现了一个非线程、预派生的工作模式。它在Apache启动之初,就会预派生一些子进程,然后等待连接。可以减少频繁创建和销毁进程的开销,每个子进程只有一个线程。它成熟稳定,可以兼容新老模块,也不需要担心线程安全问题。但是一个进程相对地占用更多的资源,消耗大量内存,不擅长处理高并发的场景。
进程模型,每个进程处理一个请求,模式:父进程—>多个子进程—>一个子进程处理一个请求
2,worker
与Prefork工作模式相比,worker使用了多进程和多线程的混合模式,worker模式也同样会预派生一些子进程,然后每个子进程创建一些线程,同时包括一个监听线程,每个请求过来会被分配到一个线程来服务。线程比进程更加轻量级,因为线程通常会共享父进程的内存地址的,因此内存占用会减少一些。
同时如果一个线程异常挂了,会导致父进程和它的其他正常子线程都挂了,这样也只会影响Apache的一部分,而不是整个服务。
缺点使必须考虑线程安全性,因为多个子进程是共享父进程的内存地址的。如果使用keep-alive的长连接方式,某个线程会被一直占据,也许中间没有任何请求,需要等到超时才会被释放。如果过多的线程被这样占据,也会导致在高并发下的无服务线程可用。
线程模型,每个进程衍生出多个线程,每个线程处理一个请求,模式:父进程—>多个子进程—>每个子进程衍生多个线程—>一个线程处理一个请求任务
3,event
和worker工作模式很像,最大的区别是解决了在keep-alive场景下,长期被占用的线程的资源浪费问题,在event MPM中,会有一个专门的线程来管理这些keep-alive线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放,这样增强了在高并发场景下的请求处理能力。
事件驱动模型,一个进程处理多个任务,模式:父进程—>多个子进程—>一个子进程处理多个请求
httpd-2.2 MPM设置
修改文件 vim /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.worker
HTTPD=/usr/sbin/httpd.event
默认为prefork模式
配置后重启httpd server生效
centos7 httpd-2.4 MPM设置
修改文件vim /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_worker_module modules/mod_mpm_worker.so
LoadModule mpm_event_module modules/mod_mpm_event.so
分为三种模式:
1,prefork
Prefork MPM实现了一个非线程、预派生的工作模式。它在Apache启动之初,就会预派生一些子进程,然后等待连接。可以减少频繁创建和销毁进程的开销,每个子进程只有一个线程。它成熟稳定,可以兼容新老模块,也不需要担心线程安全问题。但是一个进程相对地占用更多的资源,消耗大量内存,不擅长处理高并发的场景。
进程模型,每个进程处理一个请求,模式:父进程—>多个子进程—>一个子进程处理一个请求
2,worker
与Prefork工作模式相比,worker使用了多进程和多线程的混合模式,worker模式也同样会预派生一些子进程,然后每个子进程创建一些线程,同时包括一个监听线程,每个请求过来会被分配到一个线程来服务。线程比进程更加轻量级,因为线程通常会共享父进程的内存地址的,因此内存占用会减少一些。
同时如果一个线程异常挂了,会导致父进程和它的其他正常子线程都挂了,这样也只会影响Apache的一部分,而不是整个服务。
缺点使必须考虑线程安全性,因为多个子进程是共享父进程的内存地址的。如果使用keep-alive的长连接方式,某个线程会被一直占据,也许中间没有任何请求,需要等到超时才会被释放。如果过多的线程被这样占据,也会导致在高并发下的无服务线程可用。
线程模型,每个进程衍生出多个线程,每个线程处理一个请求,模式:父进程—>多个子进程—>每个子进程衍生多个线程—>一个线程处理一个请求任务
3,event
和worker工作模式很像,最大的区别是解决了在keep-alive场景下,长期被占用的线程的资源浪费问题,在event MPM中,会有一个专门的线程来管理这些keep-alive线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放,这样增强了在高并发场景下的请求处理能力。
事件驱动模型,一个进程处理多个任务,模式:父进程—>多个子进程—>一个子进程处理多个请求
httpd-2.2 MPM设置
修改文件 vim /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.worker
HTTPD=/usr/sbin/httpd.event
默认为prefork模式
配置后重启httpd server生效
centos7 httpd-2.4 MPM设置
修改文件vim /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_worker_module modules/mod_mpm_worker.so
LoadModule mpm_event_module modules/mod_mpm_event.so
相关文章推荐
- 性能安全之新安装的MySQL必须调整的10项配置
- 配置服务器来调整性能(一)——概论
- 教你调整Oracle数据库服务器的性能
- 如何调整Oracle数据库服务器的性能
- 调整 Windows 系统以优化服务器性能
- 性能测试 -- 服务器参数调整
- (转)IIS设置优化(需根据服务器性能,调整具体参数值)
- 针对OpenSSL安全漏洞调整Nginx服务器的方法
- 服务器安全设置之 服务器安全和性能配置
- CentOS 6.5服务器安全加固及性能优化
- 关于服务器性能、安全、稳定的全面监­控
- 教你调整Oracle数据库服务器的性能
- 教你调整Oracle数据库服务器的性能
- [web软件提速方案2]调整服务器性能
- 构建性能优越、安全的Web服务器 推荐
- 如何调整dotNet 服务器的性能,具体操作
- 调整Linux TCP参数 提示服务器性能
- Oracle服务器性能全面调整攻略
- Odoo环境下Ubuntu服务器性能优化--参数调整
- 调整Oracle数据库服务器性能的一些参考