备份进程卡在不可中断状态好几个小时,普通终止和强制终止都没有反应,负载里那一项一直挂着,重启服务也起不来。

这类报错背后常见的原因有几处,逐个排除就行。进程陷在内核里等待 IO,信号要等系统调用返回才会被处理。另一种情况是底层存储无响应,请求一直挂起没有超时。

不容易想到的是,远端挂载点失联,IO 永远等不到结果。

上来先确认进程卡在哪个内核函数

ps -o pid,stat,wchan,cmd -p 12345

再往下看内核栈定位阻塞点

cat /proc/12345/stack

随后检查挂载的远端存储

mount | grep -E 'nfs|cifs|fuse'

必要时强制卸载存储

umount -f -l /mnt/nfs

这类问题以前遇到过,但这次的触发条件和上次不一样。

改完先别撤,确认这几项。进程从不可中断状态消失,负载回落,备份任务重新调度可以正常执行。

补一句。这类进程不能靠重启服务解决,父进程退出后它可能变成孤儿继续挂着,根因始终在存储层。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189