无法优化php5-fpm无误地工作

我已经安装了ngix + php5-fpm。 我很高兴,但我不能优化php5-fpm,使其工作没有错误。 每个固定的错误都会产生不同的错误

首先我得到了导致很多错误的默认设置:

[04-Jun-2012 03:30:06] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it 

我增加了所有数字:

 pm.max_children = 15 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 5 ;pm.max_requests = 500 

它造成了一个不同的错误:

 [28-Feb-2013 07:45:06] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 18 idle, and 28 total children 

我再次增加了所有的数字:

 pm.max_children = 70 pm.start_servers = 20 pm.min_spare_servers = 20 pm.max_spare_servers = 35 ;pm.max_requests = 500 

这导致日志文件填满了这个:

 [28-Feb-2013 13:21:55] NOTICE: [pool www] child 21868 exited with code 0 after 4171.293476 seconds from start [28-Feb-2013 13:21:55] NOTICE: [pool www] child 23962 started 

我没有注意到:

 pm.max_requests = 500 

我有同样的错误,但不是很频繁 – 每5分钟一次:

 [28-Feb-2013 13:21:55] NOTICE: [pool www] child 21868 exited with code 0 after 4171.293476 seconds from start [28-Feb-2013 13:21:55] NOTICE: [pool www] child 23962 started 

我再次增加:

 pm.max_requests = 1000 

现在我每小时有2-3次这个错误,但是仍然存在。

我会再次增加这个数字,但我觉得我的服务器(网站)的工作速度比其他服务器托pipe网站的设置有点慢:pm.max_children = 15,pm.start_servers = 5,pm.min_spare_servers = 3,pm.max_spare_servers = 5.(可能这只是一个networking问题,我不知道)。

我search了Google和这个网站,知道如何计算pm.max_children(这取决于RAM)。 但我找不到任何信息如何计算:

  pm.start_servers pm.min_spare_servers pm.max_spare_servers pm.max_requests 

有人可以帮忙吗?

 uptime 13:55:39 up 16:40, 2 users, load average: 0.13, 0.14, 0.16 free -m total used free shared buffers cached Mem: 24101 3783 20318 0 151 3039 -/+ buffers/cache: 592 23509 Swap: 7811 0 7811 

我没有改变任何nginxconfiguration文件。

正如它在日志中说的[NOTICE] :这是信息性的,而不是一个错误 。 这些被标记为[ERROR]

总而言之: 没有什么可担心的 。 这就像你的孩子告诉你,他们关掉了厨房的灯。

如果它说[WARNING]这是你应该照顾的事情,就像你在第一个回应中通过增加阈值所做的那样。

将php-fpm切换到dynamic模式。 那样php-fpm会自动决定何时产生新的孩子。 如果你使用和操作码caching的types,这是必须的 ,因为强行杀死的孩子在PHP-APC中增加了碎片