2010-02-17 57 views
16

APC顯示100%碎片。這不好嗎?APC顯示100%碎片

這是否意味着它根本沒有幫助?我要走什麼路徑來改善情況?

在此先感謝。

+6

APC是php緩存和代碼緊固和基準測試,分析庫。 – Sarfraz 2010-02-17 09:19:03

+0

我建議你通過它的文檔。 – Sarfraz 2010-02-17 09:20:33

+1

@spender:請參閱http://docs.php.net/apc – VolkerK 2010-02-17 09:34:55

回答

1

[...]碎片是損害性能,而不是內存本身的大小。但它也似乎當內存不足會發生碎裂[...]

注意還存在似乎與apc.php的圖表中的錯誤:http://pecl.php.net/bugs/bug.php?id=13146

+0

我不確定如何測試圖表是否準確? 另外,如果它是碎片,我應該刪除它?不知道在這裏做什麼。 – 2010-02-18 06:15:35

11

以我的經驗,是的。我有一個系統,APC顯示100%碎片,性能很差。我增加了APC的內存限制(在我的情況下達到200 MB - 但我們有很多代碼),足以讓它有一些閒置空間。碎片下降到零,並且IIRC,服務器上的CPU使用率下降了50%。

此外,請確保您使用APC隨附的apc.php腳本來監視碎片/利用率。我們甚至寫了一個nagios檢查來觀察APC,因爲當APC填滿時,我們有足夠的流量,apache完全鎖定。

道德故事:給予APC足夠的內存,並監控利用率。

+0

APC Admin,一個很好的工具,完全一樣,http://www.techzonemind.com/apc-admin-new-generation-admin-interface-php-apc/ – 2014-07-04 02:12:12

2

碎片意味着APC經常從緩存中拋出物品並添加新物品,並且無法找到足夠大的連續塊。

有提高性能的兩種主要方式則

  • 提供更多的內存APC。理想情況下,APC可以將完整的腳本存儲在內存中。
  • 在php.ini中使用apc.filter來過濾不經常請求或經常更改的文件。

同時使用apc_store()與短時間生活是不好的,就像經常使用apc_store()覆蓋一樣。