W3 Cache与Hummingbird Cache冲突致INODES超限,求解决方案
解决WordPress缓存插件冲突导致的INODE超限问题
1. 能不能删除指定的缓存目录?
完全可以删除。wp-content/cache/object/post-queries、term-queries、comment-queries这三个目录里的文件都是插件生成的临时查询缓存,属于可恢复的临时数据。删除后,当有新的访问请求时,缓存插件会自动重新生成这些文件,不会破坏WordPress核心内容或站点功能。
主机提到的“可能引发错误”,通常是指删除过程中如果恰好有用户访问站点,会短暂出现缓存未命中的情况(比如页面加载稍慢),但这是临时现象,不会导致站点崩溃或数据丢失。
2. 替代FTP的高效删除方法
FTP(比如FileZilla)处理大量小文件时确实很慢,推荐两种更快的方式:
- 主机控制面板文件管理器:绝大多数主机提供的控制面板(如cPanel、Plesk)内置文件管理器,删除大量文件的效率远高于FTP。直接找到目标目录,右键选择“删除”或“清空目录”即可完成操作。
- SSH命令删除(如果有权限):通过SSH连接服务器后,用以下命令快速删除目录内的所有文件(或目录本身):
重复上述命令处理另外两个目录即可。# 删除目录内所有文件(保留空目录) rm -rf wp-content/cache/object/post-queries/* rm -rf wp-content/cache/object/term-queries/* rm -rf wp-content/cache/object/comment-queries/* # 或者删除整个目录后重建空目录(避免权限问题) rm -rf wp-content/cache/object/post-queries && mkdir wp-content/cache/object/post-queries && chmod 755 wp-content/cache/object/post-queries
3. 根本解决缓存冲突问题
要避免以后再次出现INODE超限,必须解决两个缓存插件的冲突:
- 停用其中一个缓存插件:W3 Total Cache和Hummingbird都是全功能缓存插件,同时启用会导致缓存规则冲突,重复生成大量缓存文件。建议备份站点后,停用其中一个插件,然后清理所有缓存,观察inode使用量是否恢复正常。
- 优化保留插件的缓存设置:如果选择保留其中一个插件,调整对象缓存相关设置:
- 缩短缓存过期时间,让旧缓存自动被清理;
- 限制单个缓存目录的文件数量;
- 如果主机支持,改用Redis或Memcached作为对象缓存后端(将缓存存储在内存中,减少磁盘文件数量)。
- 设置自动缓存清理:在保留的插件中配置定时自动清理规则,或者通过WP-Cron添加定时任务,定期删除过期缓存文件。
内容的提问来源于stack exchange,提问作者Raphael Santos
相关产品推荐
相关产品推荐

