php – 什么可能导致“超出进程限制”错误?
我在一个星期前推出了一个网站,我发了一封邮件到邮件列表,告诉大家网站是否正常.在此之后网站发生故障并且一般错误日志充斥着“超出进程限制”错误.从那以后,我试图真正清理很多代码并最小化数据库连接.我仍然会在错误日志中看到每天一次的错误.可能导致此错误的原因是什么?我试图打电话给网络主机,他们说这与我的代码有关,但无法指出我的代码是什么问题或哪个页面导致了错误.任何人都可以给我更多信息吗?比如,什么是流程,我应该有多少流程?
解决方法
哇.大问题.
显然,你最大化了你的apache童工流程.要大致了解可以创建的数量,请使用top来获取一个http进程的粗略内存占用量.如果你正在使用wordpress或其他cms,它可能很容易就是50-100m(如果你使用php模块进行apache).然后,假设机器仅用于Web服务,请占用总内存,减去一个用于OS使用的块,然后将其除以100m(在本例中).这是你可以拥有的最大工人流程.在httpd.conf中设置它.执行此操作并重新启动apache后,请监视top并确保不开始交换内存.如果你这样做,你就设置了太多的工人. 如果有任何其他东西像mysql服务器一样运行,那么在计算你可以拥有的工人数量之前,为它腾出空间.如果这个数字很小,粗略地引用一个伟大的人’你将需要一个更大的船’.开玩笑.您可能会看到超过100米的http进程的内存使用率非常高.您可以调整每个孩子较低的最大请求数,以缩短http进程的生命周期.这可以帮助清理臃肿的http工作者. 要查看的另一个方面是请求的时间响应时间……每个请求需要多长时间?要快速检查一下,请使用firefox的firebug插件,然后查看“网络”标签,了解初始请求回复所需的时间(不是图片等).如果由于某种原因请求花费超过1或2秒的时间来响应,这是一个很大的问题,因为你会遇到一些日志堵塞.原因可能是php代码,或者mysql查询需要很长时间才能响应.要解决这个问题,请确保你使用wordpress来使用一些好的缓存插件来降低对mysql的压力. 但老实说,除非你只是因为工人太少而没有利用内存,否则优化你的apache并不是很容易在短文中解决的,而你的服务器上没有细节(内存,cpu数等等)和你的httpd.conf设置. 注意:如果您没有服务器访问权限,那么您将很难确定内存使用情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |