视频带宽或磁盘跑满时如何处理



Linux 主机可以先使用 top 或 htop 查看 Nginx worker、视频转码程序和其他高耗进程,再使用磁盘与网络监控确认资源类型。Nginx 进程本身占用不高、但带宽已经跑满时,调整 Nginx worker 数量通常没有实际帮助。



视频带宽跑满时,核心问题是单位时间内传输了过多媒体数据,而不是 Nginx 计算能力不足。大文件直链、重复下载、恶意盗刷和缺少缓存,都会让出口带宽迅速达到上限。



静态视频目录应确认服务器能正确处理 Accept-Ranges、Content-Range 和 206 Partial Content。排查时可以观察访问日志中的状态码、响应字节数、请求耗时和 User-Agent。如果同一个客户端短时间内重复请求相同片段,重点检查播放器重试逻辑、代理缓存规则和响应头是否被中间层改写。



检查是否有转码或切片进程



视频转码通常比文件传输消耗更多 CPU。使用 ps、top 或进程监控确认是否存在 FFmpeg、实时编码、视🔍频截图、格式转换等任务;如果高占用来自这些程序,应把转码任务放到独立队列、独立机器或异步处理,而不是只修改 Nginx 配置。



视频文件通常不需要开启目录自动索引。关闭无必要的目录浏览可以减少文件信息泄露;同时应为视频目录设置清晰的 MIME 类型,避免浏览器把媒体文件当作普通下载内容处理。配置修改后必须先执行语法检查,再平滑加载,不能直接重启生产服务。



视频播放导致 CPU 100% 时的重点排查项



服务器监控中的百分比代表不同资源,nginx100%video100%不能单凭一个数字判断故障原因。视频服务排查应同时观察进程、网络、磁盘和请求状态,避免把带宽跑满误认为 Nginx CPU 异常。



HTTPS 加密也会消耗 CPU,尤其是在大量短连接、低缓存复用或高并发下载时更🚀明显。视频服务应启用连接复用,合理配置 keepalive,并检查是否因为代理层反复建立 TLS 连接导致处理器负载升高。



反向代理视频源时,Nginx 还要承担上游连接、缓冲和客户端连接管理,资源消耗可能来自上游应用而不是本💎地磁🎨盘。若视频由应用接口动态返回,应用层可能在每次请求中查询权限、拼接文件或读取对象存储,Nginx 只是把延迟表现出来。



Range 请求、缓存和视频静态文件配置



搜索“nginx100%video100%”通常是在排查视频播放、下载或转码场景中的资源异常:Nginx 进程占用 CPU 接近 100%,服务器带宽或磁盘读取也接近 100%,导致视频卡顿、首屏加载慢、连接数暴涨。处理前不要直接增加 worker_processes,应先确认到底是 CPU、带宽、磁盘 I/O 还是上游应用响应变慢。



如果只有带宽达到 100%,而 CPU 和磁盘负载正常,问题多半是视频文件被大量并发传输;如果 CPU 达到 100%,则要重点检查转码、HTTPS 加密、Range 请求、日志写入和代理缓冲;如果磁盘 I/O 达到 100%,缓存命中率低、视频文件过大或存储性能不足通常是主要原因。



举报/反馈