Invidious 缓存调优指南:4 个改完就能提速的配置项
Invidious 缓存调优指南4 个改完就能提速的配置项【免费下载链接】invidiousInvidious is an alternative front-end to YouTube项目地址: https://gitcode.com/GitHub_Trending/in/invidious部署第三天打开观看页首帧要等 8 秒自托管 Invidious 第三天打开视频页首帧要等 8 秒。翻日志发现元数据请求全部没命中数据库缓存直接回源上游。本文拆解 Invidious 的两层缓存——内存静态缓存和数据库元数据缓存。读完后你知道改哪 4 个配置项以及怎么验证生效。两层缓存是怎么工作的前台、冰柜和盘点员一句话讲清Invidious 的缓存像一间店铺的前台。CSS/JS 这类静态资源放在前台的内存里每次直接取用。视频元数据存进 PostgreSQL 这个冰柜靠过期时间保鲜过期就扔掉回上游重新取。再配一个夜间盘点员每小时巡一遍冰柜把过期条目清掉。图中播放器就是缓存工作的终端效果页面资源走前台内存播放器里的标题与元数据走冰柜数据库。缓存的每一块由哪个模块负责这一节按请求路径拆 4 个模块让你看清各管哪段。静态文件处理器把 CSS/JS 装进内存的那层壳每个请求都从磁盘开文件会撑爆系统文件描述符上限。所以 Invidious 改造了 Kemal 的静态处理器加了内存缓存。静态文件处理器源码CACHE_LIMIT 5_000_000 # 内存缓存总量上限 5MB cached_files {} of String {data: Bytes, filestat: File::Info} cached_files[file_path] {data: data, filestat: file_info} # 首次读盘后写入内存这里配不当会怎样5MB 装不下全部常用资源时部分文件每次回盘读取提速效果打对折。视频表6 小时过期的 PostgreSQL 冰柜视频元数据回源 YouTube 代价高所以先落库靠 updated 字段判断新旧。视频表读写def delete_expired DELETE FROM videos * WHERE updated (now() - interval 6 hours) # 超过 6 小时直接删这里配不当会怎样过期太短回源请求翻倍过长观看数这类字段会变陈旧。每小时清理任务不用 cron 的盘点员清理没走系统 cron是 Invidious 进程里的常驻循环出错自动重试。清理任务Invidious::Database::Videos.delete_expired sleep 1.hour # 正常一轮后睡 1 小时 sleep 10.minutes # 数据库出错则 10 分钟后重试这里配不当会怎样日志里 ClearExpiredItems done. 停更过期数据就没人清了库会持续膨胀。注释缓存默认关闭的可选开关默认情况下视频注释每次都要去 Internet Archive 取。开启后注释落库命中就不再回源。注释读取路径if CONFIG.cache_annotations (cached_annotation Invidious::Database::Annotations.select(id)) annotations cached_annotation.annotations # 命中不回源⚠️ 注意清理任务不清 annotations 表开启后它会一直增长。只含卡片的注释也不会被缓存。三个信号判断哪层缓存出了问题部署后别靠猜对着这三个信号能定位到具体层级。长尾视频反复回源静态缓存命中率怎么查同一视频第一次慢、第二次快属正常现象。但刷新页面时 CSS/JS 仍全部重新下载说明内存缓存没罩住。自查打开浏览器开发者工具的 Network 面板刷新后常用资源应出现 304 或 (memory)而不是次次 (download)。库越来越大但速度变慢过期数据没清掉信号videos 表行数持续增长接口变慢回源频率没降。自查看最近一小时日志里有没有 ClearExpiredItems done. 再跑 psql -c SELECT count(*) FROM videos;对照 6 小时过期窗口看行数是否合理。注释区每次都请求 Archive开关没真正打开信号每次打开视频都有发往 archive.org 的请求注释加载偏慢。自查psql -c SELECT count(*) FROM annotations;表不存在或为 0 行就是开关没开。annotations 表只在启用时才创建。调参清单 4 个今天就能改的配置项这节解决具体改什么4 个动作2 个纯配置2 个动代码。改代码的只允许本地部署时临时覆盖想长期生效请提 PR 给上游。1. 打开注释缓存每个视频少一次回源改哪里config/config.example.yml 里的 cache_annotations默认 false。cache_annotations: true适合用户常重播老视频的实例。改完观察annotations 表行数增长二次打开不再出现 archive.org 请求。2. 把元数据过期从 6h 拉到 12h回源请求减半改哪里视频表 里 delete_expired 的 SQL 间隔属代码改动- WHERE updated (now() - interval 6 hours) WHERE updated (now() - interval 12 hours)适合内容更新不频繁的场景如教程、归档视频。改完观察上游请求量约降一半观看数新鲜度在可接受范围。3. 静态缓存 5MB 提到 20MB常用资源全留内存改哪里静态处理器 顶部的 CACHE_LIMIT从 5_000_000 改为 20_000_000属代码改动。适合内存 1GB 以上、并发不低的实例。改完观察静态资源命中率上升Network 面板里不再频繁回盘读取。4. 确认预加载保持开启页面加载时就开始缓冲default_user_preferences: preload: true改哪里config.yml 的 default_user_preferences 下 preload默认就是 true确认别被关掉即可。适合曾因省带宽关过 preload 的实例。改完观察首帧时间略提前。参数速查配置项默认值建议值改动类型cache_annotationsfalsetrue纯配置preloadtrue保持 true纯配置怎么验证改完生效了 改完看三个数字不需要复杂工具命中率Network 面板里 304 加内存缓存占全部静态请求的比例。P95 首帧同一组视频连开 5 次取首帧时间的 90 分位对比改前。出站带宽监控面板里上游方向的流量曲线。图中偏好设置页的 preload 开关就是缓存调优最先被用户感知的地方。这组配置什么时候值得改经常放长尾视频的小型自托管实例值得先打开注释缓存。确认命中率涨了再把过期时间拉长。【免费下载链接】invidiousInvidious is an alternative front-end to YouTube项目地址: https://gitcode.com/GitHub_Trending/in/invidious创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

UE5 Python自动化:从资产批处理到编辑器工具开发

UE5 Python自动化:从资产批处理到编辑器工具开发

在 Unreal Engine 5 项目里,真正让人疲惫的往往不是玩法逻辑,而是一批重复的资产操作:几百个 FBX 导入后命名不统一、某个角色文件夹里混进过期贴图、版本交接时 Content 目录堆满没有引用的空资源。手动在 Content Browser 里点几十次还能忍…

2026/11/5 11:01:26 阅读更多 →
ExplorerPatcher 教程:3分钟把Windows 11任务栏和开始菜单改回Windows 10样式

ExplorerPatcher 教程:3分钟把Windows 11任务栏和开始菜单改回Windows 10样式

ExplorerPatcher 教程:3分钟把Windows 11任务栏和开始菜单改回Windows 10样式 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher 刚升…

2026/10/25 17:07:47 阅读更多 →
Calibre 格式转换:EPUB 转 MOBI、批量处理 PDF,一次讲透 4 个真实问题

Calibre 格式转换:EPUB 转 MOBI、批量处理 PDF,一次讲透 4 个真实问题

Calibre 格式转换:EPUB 转 MOBI、批量处理 PDF,一次讲透 4 个真实问题 【免费下载链接】calibre The official source code repository for the calibre ebook manager 项目地址: https://gitcode.com/GitHub_Trending/ca/calibre 把 EPUB 发到 K…

2026/10/25 6:57:08 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/4 1:35:24 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/5 1:08:50 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/4 6:23:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/5 0:54:28 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/4 19:19:54 阅读更多 →

日新闻

周新闻

月新闻