snapd服务导致服务器崩溃平台无法启动
问题现象:系统正常运行一段时间后,服务器io读写异常,导致服务器崩溃,使用top命令查看sanpd服务运行,如下图;
问题原因:后台更新占用资源:snapd 默认会自动更新 Snap 应用(如 lxd, core 等)。若多个大型 Snap 同时更新(尤其是更新失败重试时),可能短暂占用大量 CPU/磁盘 I/O,导致服务延迟。
更新冲突:某些 Snap 更新可能与服务器关键服务冲突(如内核服务),极端情况下可能引发不稳定。平台在进行一些业务操作时io读写升高,短暂与服务冲突后导致服务器崩溃,特定版本的 snapd 可能存在 Bug(如 LP #1970751 曾导致高 I/O)。
解决方法:
需要停止并删除snapd服务,因为Apache/Nginx/MySQL/Docker,标准服务(如SSH、防火墙、Web服务)等不依赖Snapd的运行通过apt安装的服务完全独立于Snap生态系统,不受影响,停用删除后平台服务不会有影响;
1、
# 停止当前运行的Snapd服务sudo systemctl stop snapd.service snapd.socket# 禁用服务防止开机自启sudo systemctl disable snapd.service snapd.socket# 屏蔽服务(彻底阻止激活)sudo systemctl mask snapd.service snapd.socket
2、
# 卸载所有Snap软件包及Snapd核心sudo snap remove --purge $(snap list | awk '!/^Name|^core/ {print $1}') #如服务器未有基于snapd安装服务执行此命令未有返回为正常sudo apt autoremove --purge snapd -y# 清理残留文件sudo rm -rf ~/snap /snap /var/snap /var/lib/snapd /var/cache/snapd# 阻止未来安装Snapd(下面的五行是一条命令)sudo tee /etc/apt/preferences.d/nosnap.pref > /dev/null <<EOLPackage: snapdPin: release a=*Pin-Priority: -10EOL
3、验证停用删除结果
# 检查服务状态(应显示inactive和masked,如下图)sudo systemctl status snapd.service | grep -e Active -e Loaded

# 尝试启动服务(应启动失败,如下图)sudo systemctl start snapd.service

4、验证完成后,重启开放平台及人员定位系统等服务
ZGL(0730)
转载请注明作者和出处,并添加本页链接。
原文链接:
//svn.seekcy.com/808