APACHE进程达到一定内存后就会自动结束并创建一个新进程的原因
2010-03-10 16:23
295 查看
现象:我发现我的Apache每当因有较多工作要做的程序长时间执行后会增长到800MB左右,然后就自动杀死重开了一个进程,导致永远都执行不了这个程序。
原因:APACHE配置文件中的MaxRequestsPerChild导致的。它设置每个子进程在其生存期内允许伺服的最大连接请求数量,到达MaxRequestsPerChild的限制后,子进程将会结束。之所以用这个参数, 因为它可以阻止(偶然的)内存泄漏无限进行而耗尽内存。比如我的程序就是因为超长时间查询数据库,导致其它连接请求得不到MYSQL服务而等待,越积越多。
解决:临时将MaxRequestsPerChild调到足够大或设为0(无限)后重启APACHE,程序执行完后再调回来并重启。其实,这个参数应该根据服务器实际的资源来设置大小,太小则发挥不了服务器的性能,但32位的WIN服务器有个问题,即使是用最高级的数据中心版操作系统,同一时刻好像仍然最大只能支持4G的寻址空间,甚至有可能在去除系统核心所用的内存后,单个程序能用的内存只有2G不到!
原因:APACHE配置文件中的MaxRequestsPerChild导致的。它设置每个子进程在其生存期内允许伺服的最大连接请求数量,到达MaxRequestsPerChild的限制后,子进程将会结束。之所以用这个参数, 因为它可以阻止(偶然的)内存泄漏无限进行而耗尽内存。比如我的程序就是因为超长时间查询数据库,导致其它连接请求得不到MYSQL服务而等待,越积越多。
解决:临时将MaxRequestsPerChild调到足够大或设为0(无限)后重启APACHE,程序执行完后再调回来并重启。其实,这个参数应该根据服务器实际的资源来设置大小,太小则发挥不了服务器的性能,但32位的WIN服务器有个问题,即使是用最高级的数据中心版操作系统,同一时刻好像仍然最大只能支持4G的寻址空间,甚至有可能在去除系统核心所用的内存后,单个程序能用的内存只有2G不到!
相关文章推荐
- CreateProcess 创建带命令行参数的进程时,报错或者提示内存位置无效的可能的一个原因
- winxp系统开机就会自动创建一个特定用户怎么办?
- ★实验 8-1 1. 创建一个守候进程。并为自己创建独立的日志文件。 2. 每隔 1s 向日志文件中写入如下信息: a) 未使用的内存大小(MemFree) 可以从/proc/meminf
- 创建一个Android项目就会自动创建一个appcompat_v7
- 0324的学习笔记----里面最重要的就是一个tom猫的动画,和涉及到的内存问题(创建imageview的两种方式,imagenamed就会形成缓存,占用很多内
- 如何为一个服务进程创建监控,即使出core也能自动重启
- eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)
- C程序完成:父进程创建一个子进程,父进程对子进程设置一个报警信号,然后父进程等待子进程的结束,如果此时报警信号先到,就终止子进程。
- Create一个DataTable时需要创建这样一列,它的结果是根据一定的表达式自动生成的,DataColumn的Expression得属性
- erlang 创建一个进程所占的内存
- eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)
- 访问一个进程的内存空间
- 创建一个可正常结束的Proactor服务器
- Android 如何让EditText不自动获取焦点 在项目中,一进入一个页面, EditText默认就会自动获取焦点。 那么如何取消这个默认行为呢? 在网上找了好久,有点 监听软键盘事件
- CSDN - 进程结束后new出的内存会回收吗?
- 显示一个进程的内存状态
- 第6节 分析Linux内核创建一个新进程的过程【Linux内核分析】
- 一个apache安装后无法启动的原因分析
- 写了一个将VxWorks的shell打印输出到指定内存中的接口,可广泛用于CLI下的调试函数显示以及故障自动捕获等功能,稍作修改可以适合其它嵌入式OS
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(四):创建TexturePacker自动脚本