Wordpress 优化APC缓存

Wordpress 优化APC缓存,wordpress,apc,opcode,opcode-cache,fragment-caching,Wordpress,Apc,Opcode,Opcode Cache,Fragment Caching,以下是指向我的APC运行方式的链接:[已删除] 正如你所看到的,它很快就会被填满,我的缓存满数有时会超过1000 我的网站使用Wordpress 我注意到,每次我写一篇新文章或编辑一篇文章,都会发生两件事 1) APC内存“已使用”重置 2) 我得到了很多碎片 我试着给APC更多的内存(512MB),但有时它会崩溃,384似乎是最好的。我还有一个Cron作业,每4小时重启一次apache,清除所有APC的碎片和使用的内存。同样,如果APC运行很长时间,我的apache会崩溃,我认为这是由于碎片堆

以下是指向我的APC运行方式的链接:[已删除]

正如你所看到的,它很快就会被填满,我的缓存满数有时会超过1000

我的网站使用Wordpress

我注意到,每次我写一篇新文章或编辑一篇文章,都会发生两件事

1) APC内存“已使用”重置 2) 我得到了很多碎片

我试着给APC更多的内存(512MB),但有时它会崩溃,384似乎是最好的。我还有一个Cron作业,每4小时重启一次apache,清除所有APC的碎片和使用的内存。同样,如果APC运行很长时间,我的apache会崩溃,我认为这是由于碎片堆积造成的

我应该使用apc.Filters并过滤掉一些不应该缓存的东西吗


我真的是这类东西的初学者,所以如果有人能解释完整的说明,非常感谢

APC ttl应负责碎片积累。我通常把它定在7200。我用WordPress在一个小型VPS上运行它,我的设置是:

apc.enabled=1
apc.shm_segments=3
apc.shm_size=32
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=2048
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
apc.max_file_size=10M

通过使用WordPress的内置对象缓存,您还将从中获得更多好处,Mark Jaquith编写了一个非常好的应用程序,该程序在保存或编辑帖子时也将有助于解决一些碎片问题。

您确实应该在生产服务器上设置apc.stat=0,这将防止apc实际进入IO进行检查如果文件已更改


首先查看文档:

我是Linux系统管理员,wordpress服务器运行5种不同的wordpress安装。如果您只运行一个,我将评论要考虑的配置。 APC/PHP版本,3.1.9/5.3.7

这是我完整的apc.conf

apc.enabled=1
apc.shm_segments=1

; I would try 32M per WP install, go from there
apc.shm_size=128M

; Relative to approx cached PHP files,
apc.num_files_hint=512

; Relative to approx WP size W/ APC Object Cache Backend, 
apc.user_entries_hint=4096

apc.ttl=7200
apc.use_request_time=1
apc.user_ttl=7200
apc.gc_ttl=3600
apc.cache_by_default=1
apc.filters
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.file_update_protection=2
apc.enable_cli=0
apc.max_file_size=2M

;This should be used when you are finished with PHP file changes.
;As you must clear the APC cache to recompile already cached files.
;If you are still developing, set this to 1.
apc.stat=0

apc.stat_ctime=0
apc.canonicalize=1
apc.write_lock=1
apc.report_autofilter=0
apc.rfc1867=0
apc.rfc1867_prefix =upload_
apc.rfc1867_name=APC_UPLOAD_PROGRESS
apc.rfc1867_freq=0
apc.rfc1867_ttl=3600

;This MUST be 0, WP can have errors otherwise!
apc.include_once_override=0

apc.lazy_classes=0
apc.lazy_functions=0
apc.coredump_unmap=0
apc.file_md5=0
apc.preload_path
@Chris_O,您的配置在几个方面不是最优的

1。apc.shm_段=3

如果您运行现代Linux发行版,您的SHM应该足够大。 如果搜索如何设置sysctl.conf条目太小,可以这样检查

#Check Max Segment size
cat /proc/sys/kernel/shmmax
在某些BSD、其他Unix或不受控制的托管主机上运行时出现异常。没有连续段有缺点,请阅读APC的详细信息

2。apc.enable_cli=1

糟糕,这只是为了调试!每次运行php cli时,它都会清除APC缓存

3。apc.max_文件大小=10M

不必要的和荒谬的!如果你有一个这么大的锉刀,它会吃掉32M小锉刀的三分之一。即使您指定了3个,它们的行为也不仅仅是三个部分中的一个大部分。不管怎样,WP甚至没有一个PHP文件,甚至没有接近这个大小的文件


“希望我在apc.conf方面帮助了人们。

@TechZilla,我使用的是Yii框架,它严重利用了类的延迟加载,那么我应该启用apc.lazy_类和apc.lazy_函数吗?它会影响其他什么吗?@Uday Sawant:apc的延迟加载不同于Yii框架中的延迟加载。Yii是专门以“懒惰”的方式编写的,而对于APC,它通常是关于加载“懒惰”的。特别是对于Yii,我仍然将减速保持为“0”。手动“延迟”加载可能在没有外部干扰的情况下表现最佳。我还想提到那些APC减速仍然是相当新的,并且需要更多的测试/统计/成熟度,然后我才会考虑设置“1”。您能推荐任何工具来对这些设置进行基准测试吗。@Uday Sawant:当我需要一个快速基准测试,而不是一个严肃的Jmeter评测时,我会使用
ab
httperf
。您通常可以从disro的存储库安装
ab
。EL5 rpm包httpd,EL6 rpm包httpd工具,Ubuntu/Debian Deb包apache2 utils。