我在apache上遇到许多睡眠脚本的问题。虽然我启动apache,并清除缓存内存为13GB免费,然后免费内存仍然下降到ap。 100MB免费。许多php进程进入休眠状态并保持缓存内存ap。一个脚本上19 MB。
有时睡眠脚本甚至会从内存中保留700MB。是一些设置,如何在脚本结束时告诉apache,然后处理结束?
答案 0 :(得分:1)
在Apache中运行的PHP的资源和时间限制由php.ini控制 这两个设置是自我解释。
max_execution_time = 30
memory_limit = 128M
所以我不认为剧本会永远沉睡并耗尽你的记忆 请先检查这些设置。
答案 1 :(得分:0)
没有问题不是“ 许多人在apache上睡眠脚本”,是 正在使用 在Apache上睡眠脚本。睡眠是大多数Web服务器的诅咒,其设计目的只有一个:接收和响应基于HTTP的无状态Web请求。
睡觉,本身,并不是一个绝对的邪恶,但如果总延迟超过几秒,那么你做的事情非常错误,你需要探索其他方法。
例如,phpBB实现了伪cron类型函数,其中Web请求通过使用排队请求表和公共检查函数来调度未来的工作活动(例如,每小时一次与应用程序相关的表维护)。如果计划任务到期,则使用单像素图像请求生成异步回调以对活动进行操作。 (通过执行图像加载,此请求与偶然触发它的URI分离。
另一种方法是使用独立守护程序或cron作业来为此排队请求表提供服务的变体。
另一种方法是简单地执行一个子进程,然后分叉自己进行守护并从Apache工作进程中分离出来。
另一种方法......