每天凌晨两点备份 日志切割 巡检三个任务同时启动,磁盘 IO 被打满,巡检超时报了一堆假故障,排查半天才发现是资源争抢。日志里能对上时间点,这种反而好排。
几个任务都写在同一分钟,又都读同一块盘,备份解压几乎把 IO 吃光,巡检的响应时间被拖到超时线以上,告警却全指向站点。这一点先确认清楚,后面就不用反复试。
crontab -l ionice -c2 -n7 tar -czf /backup/site.tar.gz /var/www iostat -x 1 3
「巡检任务并发」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。
报错里带路径的,先去看那个路径在不在、权限对不对。
处理上按这个顺序:把三个任务错开到不同分钟,从半夜一直排到凌晨;巡检只读轻量指标,大文件统计挪到别的时间段;给备份加上 ionice,把它的磁盘 IO 优先级压到最低的那一档。
结果对不对很好判断,错开排期之后巡检不再报超时,iostat 里 util 的峰值也明显降下来一截。
