周五下午五点半,最后一个发布跑完,我坐在工位上把这周踩的坑捋了一遍。不是给领导看,是怕自己忘了。这行的记性靠不住,坑踩过一次第二次还能踩,那就太丢人了。
周一早上,七点五十八分,手机震了
还在去公司的地铁上,告警短信先进来了。某业务库慢查询每分钟冲到三千多次,正常基线是不到五次。我脑子里先骂了一句:哪个傻X又在高峰期跑统计报表?出了地铁一路小跑进公司,工牌都没刷利索,冲到工位开电脑。
连上VPN,先看磁盘。这种突发慢查询十有八九是磁盘空间闹的。df -h一看,/data分区用了97%。上周五刚清过归档日志,不应该。用du -sh /data/mysql/binlog/*一查,多了三百多个二进制日志文件,每个1G,整整三百多G没轮转。查参数:show variables like 'expire_logs_days',返回值是0。操,谁把自动删除关了?
翻审计日志,两周前另一个同事做参数调优,手改了一台从库的my.cnf,用Ansible推送生产时没走变更单,直接把主库的参数覆盖成0了。这事后面再说,先救火。
操作:set global expire_logs_days=7; flush logs; 等了大概两分钟,磁盘空间释放了40G。慢查询数量开始往下掉,从三千降到两百,再降到十五。同时抓慢查询日志,发现一条全表扫描两千万行流水表的SQL——果然是业务方为了赶周报手动跑的。打电话过去:“你们那个查询停了没?”“停了停了,我们也不知道会这样。”我说:“以后跑这种量级的查询,提前跟我们说一声,别自己搞。”
教训写进周报里:第一,所有参数修改必须走变更评审,Ansible推送前要diff检查;第二,业务方的临时查询要接入工单系统,DBA审批后才能执行。光靠骂人没用,得用流程卡住。
周三下午,一台老交换机让我在机柜前蹲了四十分钟
下午三点,内网群里有人反馈访问某台存储服务器间歇性丢包。我ping了一下,丢包率在5%到15%之间晃,不是硬故障,最恶心。
最开始我怀疑核心交换机。花了大半个小时查三层配置、看STP、查MAC地址漂移,啥也没找到。同事老张路过说了句:“你查查接入层那台老古董。”对,那台用了六年的H3C,早就该淘汰了。
到机柜间,一摸交换机外壳——烫手。风扇指示灯灭了一个。面板SYS灯还在闪,但内部温度绝对超了。show environment一看,CPU温度78度,正常应该在55以下。这种热故障会导致芯片工作不稳定,偶尔丢包。
翻库房找备件。同型号的停产了,只剩一台旧货,配置还得重新搞。导出老配置,改管理IP,配VLAN,花了十五分钟。跟业务方打招呼:“存储要断个五分钟左右,你们那边能不能扛住?”“扛得住,快点。”拔线,换设备,上电,灌配置。五分钟后,丢包率归零。
这事之后我干了两件事:一是把所有在线超过四年的网络设备拉了个清单,标记了下周巡检计划;二是申请采购了两台同规格的备用交换机,到货之前每周五查一次温度。
周五晚上,发布踩了个小坑
晚上十点,做系统小版本升级。三个模块:日志采集器、消息网关、数据清洗。方案提前评审过,回滚步骤写了三页,我以为万无一失。
Ansible推二进制包到二十台消息网关节点,前十九台重启正常。最后一台启动后报“端口已被占用”。netstat -tunlp | grep 8080一看,有个僵尸进程还挂着之前的监听。kill -9杀不掉,进程状态变成defunct。查父进程是systemd,执行systemctl stop没反应,再systemctl restart,好了。前后耽误了八分钟。
为什么这台的脚本没做端口预检?发布模板里只检查了进程是否存在,没检查端口占用。我当场把脚本改了,加上一行if lsof -i :8080; then echo "port busy"; exit 1; fi。然后同步到所有节点。
八分钟不算长,但要是生产高峰期,这八分钟就能让业务方炸锅。周一我准备把所有发布脚本都过一遍,统一加上端口预检和进程存活检查。
一点实在话
周四下午换完交换机,坐回工位,杯子里的水凉透了,懒得去接,直接灌了两口。手机响了,那个存储的用户说“数据恢复了,谢谢啊”。语气很淡,我也就回了个“嗯”。这行的成就感不是靠表扬,是靠问题解决了之后系统安安静静跑着,你该喝水喝水,该下班下班。
这周攒下的几件事
除了上面三个,还干了日常巡检、处理了七个工单、做了备份恢复演练。值得记下来的:
- 巡检脚本加了交换机温度监控,阈值设到60℃自动报警。
- binlog保留参数写进了Ansible role里,每次部署强制检查。
- 发布脚本模板更新了,加了端口预检。
下周得盯死了
- 周二上午,联合业务方开个短会,把那两条慢查询的SQL优化方案定下来。不能光靠我们终止会话,该加索引加索引,该改SQL改SQL,排期得落到人头上。
- 周三之前,完成所有老旧网络设备的硬件状态巡检,拍照留档。
- 把发布脚本的整改排进周四的变更窗口,逐个节点验证。
就这些。干活的人不整虚的,坑填平了就是填平了,没填平的就是隐患。
-
好拿网小编为您推荐工作总结专题,欢迎访问:工作总结