2013-02-17 60 views
1

我有一個運行在Nginx上的Magento,PHP-FPM,清漆& APC設置。APC清除率和碎片

APC在碎片率和清除率上運行得很好。

2小時內碎片增加> 50%,慢慢降至100%。

更令人不安的是事實和穆寧表明,清除率幾乎在100%的所有時間。

我試圖將shm大小增加到1G(APC通常使用大約200M的這個,總的RAM是6G),這並沒有幫助,也試圖調整ttl:s沒有任何運氣。

清漆中是否有導致APC持續清洗的物質?

這裏是我的APC.ini

extension = apc.so 
apc.enabled=1 
apc.shm_segments=1 
apc.shm_size=1024M 
apc.num_files_hint=10000 
apc.user_entries_hint=10000 
apc.max_file_size=5M 
apc.stat=0 
apc.enable_cli = 1 
apc.optimization=0 
apc.cache_by_default=1 
apc.slam_defense=0 
apc.include_once_override=0 
apc.ttl=3600 
apc.user_ttl=7200 
apc.gc_ttl = 600 

apc.php:

**File Cache Information** 
Cached Files 1053 (58.1 MBytes) 
Hits 40172 
Misses 1038 
Request Rate (hits, misses) 102.26 cache requests/second 
Hit Rate 99.68 cache requests/second 
Miss Rate 2.58 cache requests/second 
Insert Rate 10.41 cache requests/second 
Cache full count 0 

**User Cache Information** 
Cached Variables 74 (1.2 MBytes) 
Hits 374 
Misses 5907 
Request Rate (hits, misses) 15.59 cache requests/second 
Hit Rate 0.93 cache requests/second 
Miss Rate 14.66 cache requests/second 
Insert Rate 0.18 cache requests/second 
Cache full count 0 
+0

清漆不應影響APC清洗。通常,查找有關APC的詳細信息的最簡單方法就是將apc源碼一起附帶的apc.php文件。如果您在PHP-FPM中執行它,它可以向您顯示有關APC內容的詳細信息,根據這些信息,您可能會找到爲什麼有這麼多清除的原因。 – 2013-02-17 08:11:26

+0

感謝您的回答。我一直試圖從apc.php中找出原因,但沒有任何運氣。我粘貼上面的apc.php詳細信息。 – 2013-02-17 17:46:31

+0

我會增加你的'apc.ttl'並降低你的'apc.user_ttl'。如果你在'php-fpm'中設置了'pm.max_requests',它也會影響到這一點。這是因爲當進程達到最大請求限制並且進程終止時,該進程的緩存將被丟棄。這反過來又造成了碎片化。 – nojak 2013-03-20 22:22:14

回答

1

一招,我在保持APC理智是設置gc_ttl到600,你有發現有效,但保持ttl爲0.這效率較低,理論上可能導致非常繁忙的網站發生踩踏事件,但它會阻止碎片堆積。你還需要保持清除速度,確保你沒有在緩存中放置太多東西(即分配足夠的內存)。

這聽起來可能有悖常理,但這裏的時候我開通了這種方法在服務器上發生的事情:

Cache hit ratio Fragmentation Purge rate

This munin plug-in是偉大的監測APC如何隨時間變化,更好的比試圖破譯apc狀態頁面。