Caching 类型3的APC:随着时间的推移,碎片化程度较高

Caching 类型3的APC:随着时间的推移,碎片化程度较高,caching,typo3,apc,Caching,Typo3,Apc,广泛使用带有TYPO3 6.2的APCu,我总是会在一段时间内获得较高的缓存碎片。我已经有了99%的数值和较小的shm_尺寸 如果您是TYPO3管理员,我还将缓存缓存页面部分、缓存哈希、当前用于测试的缓存页面再次移动到DB、缓存根线、extbase反射、extbase对象以及其他一些扩展缓存切换到apc后端。主要是将cache_散列从DB中切换出来,大大加快了菜单渲染时间 1 APC碎片有什么关系吗?还是我应该注意它永远不会耗尽内存 2到TYPO3管理员:您是否知道哪些表最容易导致碎片,以及ap

广泛使用带有TYPO3 6.2的APCu,我总是会在一段时间内获得较高的缓存碎片。我已经有了99%的数值和较小的shm_尺寸

如果您是TYPO3管理员,我还将缓存缓存页面部分、缓存哈希、当前用于测试的缓存页面再次移动到DB、缓存根线、extbase反射、extbase对象以及其他一些扩展缓存切换到apc后端。主要是将cache_散列从DB中切换出来,大大加快了菜单渲染时间

1 APC碎片有什么关系吗?还是我应该注意它永远不会耗尽内存

2到TYPO3管理员:您是否知道哪些表最容易导致碎片,以及apcu.ini配置中与TYPO3使用相关的位

我已经尝试使用T3缓存指南中的apc.stat=0、apc.user_ttl=0、apc.ttl=0,并将shm_大小增加到512M,通常使用100M左右。Shm_size在减少碎片方面做得很好,但我宁愿拥有一个较小但完整的缓存,而不是一个未使用的大缓存

3致APCu管理员:是否频繁更新大小变化的缓存条目也会导致大部分碎片?还是有其他我不知道的错误配置

我知道缓存中有很多条目,主要是来自远程服务器的JSON数据,其中一些条目每5分钟更新一次,通常每次的大小都不同。如果这确实是一个原因,我如何避免它?顺便说一句:APCU信息显示有很多条目仅占用2kB,但每个条目的碎片间距约为200字节


4到TYPO3和APC管理员:APC在TYPO3中有很好的集成,但是对于更频繁的更新和许多小条目,您是否建议使用不同于APC的缓存后端?

这对我们不再相关,我发现了一种不同的解决方案,可以恢复到MySQL缓存。虽然如果有人通过搜索来到这里,我们最终是这样做的:

不要使用APC缓存,仅将其用于预配置的extbase_对象缓存。这一个小于1MB,在开始时只有几个插入,之后产生非常高的命中/未命中率。正如配置预设一节中的安装工具所述,这就是缓存后端的设计目的

我在这个过程中发现了这个bug,并再次检查了缓存的使用情况。这导致了只用于标记到标识映射的巨大缓存条目。我的结论是,即使在尝试了固定缓存之后,APCu也非常适合存储频繁访问的键值映射,但当大量频繁插入或标记的条目(如缓存\u散列或缓存\u页面)出现时,APCu会产生效果

目前,MySQL缓存表在扩展使用MySQL服务器内存缓存的情况下具有更好的性能,但与使用磁盘备份的APCu相比。这是我们在这里找到的my.cnf的神奇设置::

有了这个额外的MySQL服务器设置,默认的typo3缓存表可以发挥最好的作用

innodb_buffer_pool_size = 512M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency = 8
innodb_flush_method=O_DIRECT
innodb_file_per_table