问题介绍
在使用NVIDIA vGPU的虚拟机中,Chromium内核的浏览器(如Google Chrome、Edge、B站客户端)播放B站1080P高码率视频卡顿、丢帧
- 出现问题的视频示例:我们妄想「修炼爱情」,最后却又被谁遗忘…? | 3D小少年舞台LIVE翻唱
Chrome的chrome://media-internals/
中存在大量decoder_underflow
的警告,如{"for_suspended_start":false,"reason":"DECODER_UNDERFLOW","state":"BUFFERING_HAVE_NOTHING"}
排查中的尝试
更换其他浏览器
更换为Firefox后,播放不再丢帧。但并未真正解决问题,只是找到一个缓解方案
安装低版本vGPU驱动
在安装完成未重启的情况下有效,重新后恢复问题
修改chrome://flags
中的设置
修改Choose ANGLE graphics backend
为OpenGL
确实解决了播放视频丢帧的问题,但是访问其他网站时(特别是dom比较复杂的网站)浏览器卡顿。且此非全系统层面解决问题
更新vGPU Host驱动版本
完全无效
重装Proxmox系统
完全无效
更换服务器平台
完全无效
直接穿透完整显卡
问题没有出现,得出是vGPU设置或驱动存在问题
解决问题
测试穿透完整显卡
发现问题并未出现,故着重排查vGPU设置方面的问题。猜测可能是vGPU的帧率限制器导致的问题,尝试关闭。
网上(特别是国内某些网站)的教程完全是瞎写的,不起任何作用,最终在vgpu-proxmox项目中,发现NVIDIA vGPU有配置文件/usr/share/nvidia/vgpu/vgpuConfig.xml
,其中有<frame_rate_limiter>1</frame_rate_limiter>
配置项,将其设置为0
。重启服务器后再播放视频,问题情况明显好转且视频无肉眼可见的卡顿、丢帧
最后,将其修改过程自动化
1 | sed -i 's#<frame_rate_limiter>1</frame_rate_limiter>#<frame_rate_limiter>0</frame_rate_limiter>#g' /usr/share/nvidia/vgpu/vgpuConfig.xml |
广告
暂不开放评论,如对本文有任何疑问或建议,请联系apple@mr-wu.top
All Tags