内容提要
本文介绍了运行多用户 FreshRSS 实例的经验,包括常规优化、使用较新的 PHP 版本和开启 WebSub。同时提到了升级 FreshRSS 时需要清理缓存、修改默认订阅源和配置、并行刷新订阅源以及使用 AutoTTL 插件自适应调整更新频率。管理插件可以使用 FreshRSS 插件包管理器,不推荐使用自带的导出工具进行备份。经过优化后,可以容纳至少1k用户。
延伸解读
升级前清理缓存,避免超时
FreshRSS 升级时会自动备份 ./data 目录,但多用户实例的 ./data/cache 下可能积累数万缓存文件,导致备份耗时过长,进而引发 PHP 超时。建议在升级前手动清理缓存文件,并确保备份任务排除 ./data/cache 和 ./data.bak,以提升升级效率。
并行刷新与 AutoTTL 优化
FreshRSS 1.22.0 后引入的进程互斥锁会拖慢订阅源刷新效率。通过修改 actualize_script.php 中的互斥锁参数,可以并行运行多个刷新进程,显著提升速度。此外,启用 AutoTTL 插件能根据每个 feed 的实际更新间隔自适应调整刷新频率,但需将其改为系统级插件。
插件管理与备份注意事项
手动管理 FreshRSS 插件较为繁琐,可借助第三方插件包管理器简化安装和更新。备份时,不推荐使用 FreshRSS 自带的导出工具,因为它会重排序 feed_id,且对于 MySQL/PostgreSQL 数据库,导出的 sqlite dump 会解压文章内容,导致文件体积过大。
Q&A
如何优化多用户 FreshRSS 实例的性能?
可以通过常规优化、使用较新 PHP 版本和开启 WebSub 来提升性能。
FreshRSS 升级时需要注意什么?
升级时需清理缓存,以避免 PHP 超时,并确保备份文件不包含缓存。
如何设置新用户的默认订阅源和配置?
可以通过修改 ./opml.default.xml 和创建 ./data/config-user.custom.php 文件来设置。
并行刷新订阅源的优化方法是什么?
可以通过修改进程互斥锁设置和增加刷新进程数量来优化并行刷新。
为什么不推荐使用 FreshRSS 自带的导出工具进行备份?
因为导出工具会重排序 feed_id,并且导出的内容会解压,导致文件体积增大。
经过优化后,FreshRSS 实例可以支持多少用户?
经过优化后,系统估计至少可以容纳 1k 用户。