Multi-Processing Module (MPM) implements a hybrid multi-process multi-threaded server。(多进程、多线程)
大致有:prefork MPM、worker MPM、BeOS MPM、NetWare MPM、OS/2 MPM、WinNT MPM。
linux及windows下都可以使用命令:“httpd -l ” 进行查询。
各个MPM是工作及及优化
(1)prefork MPM
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1000
MaxRequestsPerChild 10000
</IfModule>
启动时建立StartServers个子进程,
然后按每秒创建指数级个进程直到达到MinSpareServers个进程(最多增到每秒32个),
如果空闲进程数大于MaxSpareServers,则检查kill掉一些空闲进程。
MaxRequestPerChild指定每个进程处理了多少个请求后就自我毁灭。
MaxClients指定apache最多可以同时处理的请求数,也就是进程数?
MaxClients默认不能大于256,可以通过设定ServerLimit来增大这个限制数,最大20000?
(2)worker:
<IfModule mpm_worker_module>
StartServers 3
MaxClients 2000
ServerLimit 25
ThreadLimit 200
ThreadsPerChild 100
MinSpareThreads 50
MaxSpareThreads 200
MaxRequestsPerChild 0
</IfModule>
启动时建立StartServers个子进程,
每个进程包含ThreadsPerChild个线程,缺省最大64
MinSpareThreads定义最小的空闲线程数,最大75
MaxSpareThreads定义最大的空闲线程数,超过则执行清理?最大250
MaxClients定义所有子进程中的线程总数
ThreadLimit,最大20000,默认64
ServerLimit,最大值20000,默认16
需要注意的是,如果显式声明了ServerLimit,那么它乘以ThreadsPerChild的值必须大于等于MaxClients,而且 MaxClients必须是ThreadsPerChild的整数倍,否则Apache将会自动调节到一个相应值(可能是个非期望值)。
(3)WinNT MPM:
<IfModule mpm_winnt_module>
ThreadsPerChild 500
MaxRequestsPerChild 10000
</IfModule>
mpm_winnt.c是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说 mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。
ThreadLimit,默认1920,最大15000,限制单个进程的线程总数。
Apache worker optimzation
我的worker.c配置如下:
<IfModule worker.c>
ServerLimit 64
ThreadLimit 200
StartServers 5
MaxClients 2500
MinSpareThreads 50
maxSpareThreads 200
ThreadsPerChild 100
MaxRequestsPerChild 1000
</IfModule>
\\大家自己根据机子的配置设定,同时记住公式,不然启动APACHE会报错
注意
对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。
ThreadLimit >= ThreadsPerChild
MaxClients <= ServerLimit * ThreadsPerChild 必须是ThreadsPerChild的倍数
MaxSpareThreads >= MinSpareThreads+ThreadsPerChild
ServerLimit 16
//服务器允许配置的进程数上限。这个指令和ThreadLimit结合使用设置了MaxClients最大允许配置的数值。任何在重启期间对这个指令的改变都将被忽略,但对MaxClients的修改却会生效。
ThreadLimit 64
//每个子进程可配置的线程数上限。这个指令设置了每个子进程可配置的线程数ThreadsPerChild上限。任何在重启期间对这个指令的改变都将被忽略,但对ThreadsPerChild的修改却会生效。默认值是”64″.
StartServers 3
//服务器启动时建立的子进程数,默认值是”3″。
MinSpareThreads 75
//最小空闲线程数,默认值是”75″。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。
MaxSpareThreads 250
//设置最大空闲线程数。默认值是”250″。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线 程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于 MinSpareThreads加上ThreadsPerChild的和
MaxClients 400
//允许同时伺服的最大接入请求数量(最大线程数量)。任何超过MaxClients限制的请求都将进入等候队列。默认值是”400″ ,16(ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加 ServerLimit的值。
ThreadsPerChild 25
//每个子进程建立的常驻的执行线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。
MaxRequestsPerChild 0
//设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为”0″,子进程将永远不会结束。
将MaxRequestsPerChild设置成非零值有两个好处:
1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
相关推荐
藏经阁-SparkOscope--Enabling Apache Spark Optimization through Cross Stack Monitoring and Visualization.pdf
### Apache Web服务器性能优化 #### 摘要与引言 本文主要探讨了Apache Web服务器配置参数的在线优化方法,特别是在工作负载变化的情况下的优化策略。研究的重点是MaxClients参数,该参数控制着Web服务器可以同时...
The final part of the book would consist of topics such as scaling Flink solutions, performance optimization, and integrating Flink with other tools such as Hadoop, ElasticSearch, Cassandra, and ...
Beginning Apache Pig: Big Data Processing Made Easy English | 29 Dec. 2016 | ISBN: 1484223365 | 300 Pages | PDF | 4.9 MB Learn to use Apache Pig to develop lightweight big data applications easily ...
- **多种传输协议**:支持HTTP、HTTPS、JMS等多种传输协议,以及MTOM(Message Transmission Optimization Mechanism)和SWA(SwA - SOAP with Attachments)等优化机制。 5. **开发工具**: CXF提供了WSdl2Java...
Last but not least, the final few chapters delve deeper into the concepts of graph processing using GraphX, securing your implementations, cluster optimization, and troubleshooting. What you will ...
1. 性能优化:Apache Spark 2.4 对性能进行了优化,包括了 Query Optimization、 Cache Optimization、Shuffle Optimization 等多个方面的改进,提高了数据处理的速度和效率。 2. Delta Lake:Delta Lake 是一个...
7. **MTOM(Message Transmission Optimization Mechanism)和SwA(SOAP with Attachments)**:这两个特性允许在SOAP消息中高效传输二进制数据,如图像或大文件。CXF支持这两种机制,提高数据传输效率。 8. **...
本文主要讲述 Cost-based Query Optimization 的概念和实现,包括 Apache Phoenix 和 Apache Calcite 的集成,旨在提高查询性能和SQL标准兼容性。 Cost-based Query Optimization 是一种优化查询的方法,通过统计...
3. **多种协议支持**:除了基本的SOAP协议,CXF还支持RESTful风格的服务,以及诸如MTOM(Message Transmission Optimization Mechanism)和SwA(Swapped Attachments)这样的高级特性,用于优化大文件传输。...
7. **MTOM/XOP**:CXF支持Message Transmission Optimization Mechanism (MTOM)和XML Inclusion (XOP),用于高效传输二进制数据。 8. **客户端和服务器端API**:CXF提供了直观的客户端和服务器端API,使得开发者...
6. **MTOM/XOP**:CXF支持MTOM(Message Transmission Optimization Mechanism)和XOP(XML-binary Optimized Packaging),用于高效传输二进制数据。 7. **WS-*支持**:CXF实现了多种WS-*规范,如WS-Security、WS-...
此外,它还支持多种扩展,如数据绑定、MTOM(Message Transmission Optimization Mechanism)和SWA(Simple Web Attachment)等。 - **测试与调试**:CXF提供了强大的测试工具,如CXF TestSuite,方便开发者在开发...
此外,CXF还提供了丰富的功能,如安全性、事务管理、MTOM(Message Transmission Optimization Mechanism)支持、JAXB(Java Architecture for XML Binding)绑定和STAX(Streaming API for XML)解析,使得Web服务...
- **支持多种协议**:除了基本的HTTP和HTTPS,CXF还支持MTOM(Message Transmission Optimization Mechanism)和SwA(Soap with Attachments)等高级传输方式,可以处理二进制数据和大型文件。 - **集成Spring框架*...
此外,CXF还支持MTOM(Message Transmission Optimization Mechanism)和SWA(SwA或SOAP with Attachments)等高级特性,以便处理大量二进制数据。 2. **服务消费者**:当你是Web服务的使用者时,CXF提供了一个称为...
5. **传输协议支持**:CXF不仅支持HTTP和HTTPS,还支持MTOM(Message Transmission Optimization Mechanism)和SwA(SOAP with Attachments)等,能够处理大型二进制数据。 6. **拦截器和管道**:CXF的拦截器机制...
在Linux环境下搭建Web服务,通常涉及Apache(HTTP服务器)、MySQL(数据库服务器)和PHP(脚本解释器)的安装与配置。以下将详细介绍如何在Linux系统中安装这三款软件,以及解决可能出现的问题。...prefix=/usr/local/...
10. **性能优化**:CXF支持多种传输协议和数据绑定机制,如HTTP、HTTPS、MTOM(Message Transmission Optimization Mechanism)和SwA(Swapped Attachments),这使得服务可以针对不同的场景进行优化,提高性能。...