2012-07-30 61 views
1

安裝APC後,請參閱apc.php腳本,每運行一個或兩個小時,正常運行時間重新啓動一次?爲什麼? 我該如何改變?APC有時會重新啓動

我設置apc.gc_ttl = 0

回答

1

只要APC緩存的生命作爲自己的託管過程中,它可能是你的apache的工人達到其極限MaxConnectionsPerChild他們得到死亡,重生清除它的緩存。這是防止泄漏流程的安全機制。

如果需要,您可以嘗試設置您使用的是它的「沒關係」值(通常0)並運行測試用一個簡單的Hello World的PHP腳本安裝,並apachebench ab2 -n 10000 -c 10 http://localhost/hello.php選項(調整值)看看工作人員的pid是否正在改變。

+0

好的,更改MaxConnectionsPerChild和評論後,謝謝 – 2012-07-30 20:02:36

+0

惠特MaxConnectionsPerChild = 0,相同的行爲 – 2012-07-30 21:16:11

0

如果您使用的TTL爲0,APC將在內存不足時清除所有緩存插槽。這是每2小時附加一次。

TTL絕不能設置爲0

只是閱讀說明書,瞭解TTL是如何使用的:從http://pecl.php.net/get/APChttp://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl

使用apc.php,將它複製到Web服務器來檢查內存使用情況。

您必須留出足夠的存儲空間,以便APC在運行幾小時後有20%的空閒空間。定期檢查這一點。 如果您沒有足夠的可用內存,請使用filters選項來防止緩存很少被訪問的文件。

檢查我的回答有 What is causing "Unable to allocate memory for pool" in PHP?

相關問題