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