MySQL Too many connections 报错后的排查思路
从应急处理到长期修复,整理一次线上连接数打满的完整排查过程。
支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-08-11 22:15:37 Vulkan 驱动 故障排查
Linux环境下用WGPU或者直接调Vulkan,偶尔会碰到 Parent device is lost,然后一看日志发现稀里糊涂跑在了 llvmpipe 上,性能直接掉到底。这个问题前前后后折腾过好几次,干脆把排查过程和能用的修法整理一下。
出现这种情况,说到底就是 Vulkan loader 没找到硬件驱动,最后 fallback 到了 CPU 软件渲染。
vulkaninfo 打出来如果 deviceType 是 Cpu,driverName 是 llvmpipe,基本就不用怀疑别的了。
最常见的还是驱动本身没装对。Ubuntu 上用 NVIDIA 卡的话,先确认专有驱动到底装上了没有。如果之前混装过 mesa vulkan 驱动或者 nouveau,最好先清干净:
sudo apt-get purge nvidia* mesa-vulkan-drivers nouveau*
然后加 PPA 装最新驱动:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-driver-575
装完之后把 nouveau 彻底禁用掉,这个地方很多人会绕进去——以为装了闭源驱动就万事大吉,结果重启后 nouveau 又抢了设备。执行:
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
sudo reboot
重启回来,用 nvidia-smi 看 GPU 状态,lsmod | grep nvidia 确认内核模块已经加载。
正常情况下 vulkaninfo 这时候应该能认到 NVIDIA 的硬件了。
如果驱动明明装了,nvidia-smi 也正常,vulkaninfo 还是显示 llvmpipe,那多半是 ICD 配置文件没生成或者路径不对劲。可以手动补一个:
sudo tee /usr/share/vulkan/icd.d/nvidia_icd.json <<EOF
{
"file_format_version": "1.0.0",
"ICD": {
"library_path": "libGLX_nvidia.so.0",
"api_version": "1.3.242"
}
}
EOF
然后临时指定这个 ICD 看一下效果:
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
vulkaninfo | grep "GPU id"
如果能看到 GPU id,说明 loader 已经找到正确入口了。我一开始也以为是驱动版本问题,后来发现就是 ICD 没自动配好,手写一个就消停了。
还有一类情况跟显示协议有关。Wayland 下偶尔会出一些跟 Vulkan 交互的奇怪问题,日志里可能刷 Failed to set cursor 之类的警告,虽然不致命,但有些环境下间接导致驱动加载失败。如果前面的招都试过了还是不行,干脆切回 X11:
sudo apt-get install gdm3
sudo dpkg-reconfigure gdm3
sudo reboot
登录后跑一句 echo $XDG_SESSION_TYPE,输出应该是 x11。换成 X11 之后,之前莫名其妙报 device lost 的那个程序可能就不再抽风了。
出问题的时候还有一个很管用的排查手段,就是开 loader 的调试日志:
export VK_LOADER_DEBUG=all
vulkaninfo 2>&1 | grep -i "error\|warning"
看到 Failed to open library 基本就是驱动库路径不对,Incompatible driver 则是版本和 Vulkan 不兼容。顺带可以用 lspci -k | grep -A 3 "VGA\|3D" 确认内核认到的 GPU 型号和绑定的驱动,glxinfo | grep "OpenGL renderer" 也应该显示显卡名称而不是 llvmpipe。
如果是在自己写的应用里碰到 device lost,比如用 wgpu,创建 instance 和 adapter 的时候可以显式把不必须的特性都关掉,避免因为某些扩展不支持导致直接丢设备。类似这样:
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
backends: wgpu::Backends::VULKAN,
dx12_shader_compiler: wgpu::Dx12Compiler::default(),
flags: wgpu::InstanceFlags::default(),
});
let adapter = instance.request_adapter(&wgpu::RequestAdapterOptions {
power_preference: wgpu::PowerPreference::HighPerformance,
compatible_surface: None,
force_fallback_adapter: false,
}).unwrap();
let (device, queue) = adapter.request_device(
&wgpu::DeviceDescriptor {
features: wgpu::Features::empty(),
limits: wgpu::Limits::default(),
label: None,
},
None,
).unwrap();
特性限制得狠一点,至少能排除因为硬件不支持某些可选功能导致的问题。线上跑起来的问题往往就在这里,开发机上一切正常,部署到其他环境就炸。
总之,优先把专有驱动装好、nouveau 清干净,这能解决绝大多数 llvmpipe 回退的问题。如果还是不行,再依次查 ICD 配置和显示协议,通常这么走一遍都能把真正硬件拉起来。最后看一眼 vulkaninfo 和 nvidia-smi 的输出,确认不是 CPU 假装 GPU 在干活,心里就踏实了。
从应急处理到长期修复,整理一次线上连接数打满的完整排查过程。
一次说清 crontab 定时任务不跑的常见原因:时间字段写错、没写绝对路径、百分号没转义、环境变量没加载,附带排查思路。
从版本不兼容到网络阻塞,再到恼人的权限配置和路径错误,插件安装失败的原因千奇百怪。本文为你深度剖析十大常见故障,并提供针对性的解决方案,助你一键扫清障碍,轻松玩转各类开发工具和创意软件!
本文详细拆解在Quartus Prime Pro环境下,如何一步步配置Questa仿真工具,从基础安装、路径设置、到许可证激活。更重要的是,我们为您准备了启动失败、仿真报错、结果异常等常见问题的详尽解决方案,并附带TCL脚本实例,助您轻松驾驭FPGA仿真,确保设计流程顺畅无阻。
npm访问淘宝镜像时出现的SSL证书验证失败问题,提供了系统化的解决方案。首先分析了错误原因,然后详细介绍了切换新镜像源、临时关闭SSL验证、使用其他国内镜像源、清除缓存和检查系统时间等五种方法。其中,切换至`registry.npmmirror.com`是最推荐的解决方案,而临时关闭SSL验证仅作为应急方案。通过这些方法,开发者可以快速解决证书验证问题,恢复正常的包管理操作。