每天凌晨两点备份 日志切割 巡检三个任务同时启动,磁盘 IO 被打满,巡检超时报了一堆假故障,排查半天才发现是资源争抢。日志里能对上时间点,这种反而好排。

几个任务都写在同一分钟,又都读同一块盘,备份解压几乎把 IO 吃光,巡检的响应时间被拖到超时线以上,告警却全指向站点。这一点先确认清楚,后面就不用反复试。

crontab -l
ionice -c2 -n7 tar -czf /backup/site.tar.gz /var/www
iostat -x 1 3

「巡检任务并发」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

报错里带路径的,先去看那个路径在不在、权限对不对。

处理上按这个顺序:把三个任务错开到不同分钟,从半夜一直排到凌晨;巡检只读轻量指标,大文件统计挪到别的时间段;给备份加上 ionice,把它的磁盘 IO 优先级压到最低的那一档。

结果对不对很好判断,错开排期之后巡检不再报超时,iostat 里 util 的峰值也明显降下来一截。

作者 9823189