博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache prefork模式和worker模式参数详解
阅读量:6221 次
发布时间:2019-06-21

本文共 1020 字,大约阅读时间需要 3 分钟。

hot3.png

prefork模式和worker模式参数详解

使用httpd -l命令查看使用的线程模块,一般是prefork.c和work.c两者,前者居多。确定后修改http配置文件相应的部分,如prefork.c的:

StartServers 5MinSpareServers 3MaxSpareServers 10ServerLimit 16MaxClients 16MaxRequestsPerChild 2000

其中配置项:

StartServers : 服务启动时启动进程数

MinSpareServers : 最小空闲进程,随时等待响应

MaxSpareServers:最大空前进程,响应结束时,减少进程

ServerLimit:最大进程数,

MaxClients:同时响应的最大请求数,多出等待

# MaxClients=ServerLimit*进程的线程数。

MaxRequestsPerChild:每个进程请求这么多次后就释放重新建立(为0时永远不释放)。

1.对于perfork.c模块,其特点是

每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块。

既然是一个进程一个线程,所以在prefork.c下,这两个值是相等的。注:ServerLimit最大值为2000.

2.对于work.c模块来说,是多线程的,默认是一个进程有25个线程,因此如果设置ServerLimit为100,那么MaxClients最大可以设置为2500。

这里说说我们可怜的vps,为了省钱一般只有512m-1g的内存,而prefork.c一个进程占用30-45m左右的内存(这个值跟php- fpm下php-cgi内存占用相当),所以如果有512m的内存话,系统+mysql(最小节约配置)吃掉250m左右,剩下的内存也就是跑10个进 程,所以这个值真的是很可怜,不过对于流量小的站点,这个并发也够用了,一般跑个上千的流量不是问题。所以做web服务,有钱还是多弄点内存的好,或者跑 lnmp是比较合适的选择。

转载于:https://my.oschina.net/u/2268393/blog/665269

你可能感兴趣的文章
Practical Clojure - 简介
查看>>
深入下Ruby中的String
查看>>
Django 博客开发教程 4 - 让 Django 完成翻译:迁移数据库
查看>>
《Python密码学编程》——2.7 在线跟踪程序
查看>>
雾里看花之 Python Asyncio
查看>>
《树莓派Python编程入门与实战》——3.9 总结
查看>>
Velocity官方指南-使用Velocity
查看>>
jQuery获取数组对象的值
查看>>
从《一九八四》到《窃听风暴》
查看>>
《jQuery、jQuery UI及jQuery Mobile技巧与示例》——9.2 技巧:用单个HTML文件服务多张页面...
查看>>
360 for Linux 与 setuid
查看>>
《驾驭大数据》一3.5 电力行业:智能电网数据的价值
查看>>
《用户至上:用户研究方法与实践(原书第2版)》一2.5 特殊人群
查看>>
《OpenStack云计算实战手册(第2版)》——1.3 配置Ubuntu Cloud Archive
查看>>
《C#多线程编程实战(原书第2版)》——导读
查看>>
Java核心技术卷I基础知识1.5 关于Java的常见误解
查看>>
开源大数据周刊-第40期
查看>>
消息队列的exclusive consumer功能是如何保证消息有序和防止脑裂的
查看>>
云栖大会上宣布即将开源的手淘Atlas什么来头?
查看>>
将studio项目 转换为eclipse项目
查看>>