2012-01-29 37 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