2012-01-29 112 views
1

我们在负载均衡器后面有3个drupal web服务器(pressflow 6.22)。由于更新,我们从PHP获得大量通知,而我们试图解决这些问题,我只是想禁用通知。所以我改变了php.ini中从导致大量负载的php通知

error_reporting = E_ALL 

error_reporting = E_ALL & ~E_NOTICE 

只要我这样做,机器上的负载暴涨30倍的,DB连接的数量增加了一倍。

只要我把它放回一切都恢复正常。

我不知道如何抑制告示可能会引起这么大的悲伤。它只是把很多开销在PHP过滤出来或什么?

很多这样的错误是由核心和主要模块,因此在某些情况下,我不会想砍了模块来解决的通知来了,这意味着我只需要和他们一起住?

TIA

+0

DB连接的数量表明这可能* *有事情做看门狗,Drupal的数据库记录。尝试禁用数据库日志记录模块,看看会发生什么。 PHP的错误报告绝对没有**理由触摸数据库,否则。 – mrlee 2012-01-29 16:13:47

+0

感谢Fuzzy,它不是监督者,我已经关闭并使用syslog。 DB上的double是apache持有我收集的东西,它不像有两倍的查询,它只是负载很高的Apache,它支撑DB – Analog 2012-01-29 18:12:10

回答

1

嗯,内部,通告仍触发,只是不显示或记录。通常这不是一个问题,如果你定义自己set_error_handler,代码有可能把事情搞砸......通常情况下,它应该像做if($errno & error_reporting()){/* only then do something */}然而,但如果你定义自己的错误处理,你可能要检查代码(或发布)。

+0

我没有创建我自己的,只是使用默认的drupal之一:的set_error_han dler( '_ drupal_error_handler');其中有:如果($错误号及(E_ALL^^ E_DEPRECATED E_NOTICE)){ – Analog 2012-01-29 18:24:07

+0

这是...邪恶的....你可以取代'(E_ALL^^ E_DEPRECATED E_NOTICE)'和'的error_reporting()',并再次检查性能? – Wrikken 2012-01-29 18:50:11

+0

我试过了,它没有帮助。在那个drupal子版中,我只是做了“返回”。它仍然没有帮助,因为它似乎PHP只是推到syslog无论如何。我在php.ini中尝试了〜E_ALL,并没有帮助:( – Analog 2012-01-29 21:02:54