Nginx APC净化速率和;碎裂

Nginx APC净化速率和;碎裂,nginx,apc,varnish,php,Nginx,Apc,Varnish,Php,我有一个运行在Nginx、PHP-FPM、Varnish和APC设置上的Magento APC的碎片率和清除率都很高 碎片在2小时内增加>50%,然后慢慢变为100% 更令人不安的是,穆宁表明,净化率几乎一直在100%左右 我试图将shm大小增加到1G(APC通常使用其中的大约200M,总RAM为6G),但没有任何帮助,我还试图在没有任何运气的情况下调整ttl:s 清漆中是否存在导致APC持续净化的物质 这是我的APC.ini extension = apc.so apc.enabled=1 a

我有一个运行在Nginx、PHP-FPM、Varnish和APC设置上的Magento

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

我发现保持APC正常的一个有效方法是将
gc\u ttl
设置为600,正如您所做的那样,但将
ttl
设置为0。这效率较低,理论上可能会在非常繁忙的站点上造成踩踏,但它会阻止碎片的积累。您还需要通过确保不会在缓存中放置太多内容(即分配足够的内存)来降低清除率

这听起来可能有悖常理,但以下是我今天在服务器上切换到这种方法时发生的情况:


对于监视APC随时间的变化非常有用,比试图破译APC状态页面要好得多。

我发现保持APC正常的一个有效方法是将
gc\u ttl
设置为600,就像您所做的那样,但将
ttl
保持为0。这效率较低,理论上可能会在非常繁忙的站点上造成踩踏,但它会阻止碎片的积累。您还需要通过确保不会在缓存中放置太多内容(即分配足够的内存)来降低清除率

这听起来可能有悖常理,但以下是我今天在服务器上切换到这种方法时发生的情况:


对于监视APC随时间的变化非常有用,比试图破译APC状态页面要好得多。

清漆不应影响APC上的清除。通常,查找APC详细信息的最简单方法是APC源代码附带的APC.php文件。如果您在PHP-FPM中执行它,它可以向您显示有关APC内容的详细信息,根据这些信息,您可能会找到进行如此多清洗的原因。谢谢您的回答。我一直在试图从apc.php中找出原因,但没有任何运气。我在上面粘贴了apc.php详细信息。我会增加你的
apc.ttl
,降低你的
apc.user\u ttl
。如果在
php fpm
中设置了
pm.max_请求
,它也会影响这一点。这是因为当进程达到其最大请求限制时,该进程的缓存将被丢弃,并且进程将终止。这反过来会造成碎片。谢谢你的建议。如果将其切换到apc.ttl=7200,apc.user_ttl=3600,您会怎么说?清漆应该不会影响apc上的清洗。通常,查找APC详细信息的最简单方法是APC源代码附带的APC.php文件。如果您在PHP-FPM中执行它,它可以向您显示有关APC内容的详细信息,根据这些信息,您可能会找到进行如此多清洗的原因。谢谢您的回答。我一直在试图从apc.php中找出原因,但没有任何运气。我在上面粘贴了apc.php详细信息。我会增加你的
apc.ttl
,降低你的
apc.user\u ttl
。如果在
php fpm
中设置了
pm.max_请求
,它也会影响这一点。这是因为当进程达到其最大请求限制时,该进程的缓存将被丢弃,并且进程将终止。这反过来会造成碎片。谢谢你的建议。如果将其切换到apc.ttl=7200,apc.user\u ttl=3600,您会怎么说?