导航栏

×
活动范文 > 活动总结 > 导航

工作总结

2026-04-25 工作总结 年终工作总结

(实荐)质量年终工作总结。

一年到头,设备没停过,我也没闲过。说实在的,干运维这行,质量不是挂在墙上的标语,是每一次故障报修时你心跳加速的瞬间,是凌晨两点盯着监控面板找根因的那股狠劲。今年手头几个硬仗打下来,有教训有积累,挑三个最典型的说说。

第一个,数据库连接池泄漏,差点把整个核心接口拖死。

Q2某个晚上,业务方开始在群里吼:“查询接口转圈圈了!”我拉出监控,TP99从80ms直接蹦到3秒多,但CPU、内存都正常,慢SQL日志也没抓到什么大查询。刚开始我也懵,只能先重启应用临时顶一下。你懂的,重启能糊弄过去但根因还在,第二天同一时间点又飙了。

这回我较真了。抓了几次jstack,发现大量线程卡在getConnection()上,活跃连接数超过maxActive。奇怪的是业务并发量没那么大。我找了个测试环境模拟压力,复现后盯着堆栈看,终于定位到新上的一个批量处理模块:在某个异常分支里,代码直接return了,没执行connection.close()。用的是dbcp连接池,removeAbandoned超时设了5分钟,短时间异常积累就把连接池堵死了。

动手改了三样东西:第一,连接池换成HikariCP,开启leakDetectionThreshold设成3秒,任何连接持有超过3秒就打warn日志,哪个类哪一行清清楚楚。第二,removeAbandoned超时降到30秒,加了监控,使用率超85%就告警。第三,把所有数据库操作改成try-with-resources写法,强制释放。

结果:接口TP99回到50ms以下,再没复发。那晚我整理了15条检查项,从driver配置到连接池参数,后面每次发布必须过一遍。说实话,这种破事教科书上不会写,全靠被故障揍出来的肌肉记忆。

第二个,磁盘慢I/O,深夜被电话叫醒。

凌晨两点,分区表写入延迟抖动。iowait偶尔冲到30%,但util才60%,不像传统意义上的忙。我盯着iostat -x 1看了十分钟,发现某个非系统盘的写响应时间到了200ms以上。那是块机械盘,存WAL日志的。

查smartctl没坏道,但write cache被关掉了。后来问厂商,前阵子固件升级后默认改了缓存策略。每个写操作都得落盘物理介质,当然慢。我干了件蠢事:第一次直接用hdparm -W 1 /dev/sdb开了缓存,重启后配置丢了,又被叫起来一次。第二次才学乖,写到/etc/rc.local里,顺便把WAL日志迁到NVMe SSD上,HDD只做归档。

折腾两回才彻底消停。教训:不能只盯软件,存储底层的缓存策略、调度算法都得纳入基线。后来我拉了张《存储性能基线检查清单》,每季度跑一遍全量节点,缓存状态、预读参数、调度器(SSD用noop)、挂载参数(noatime)全列上。

第三个,配置漂移,验收差点翻车。

今年主导新环境的质量验收。标准文档上写着vm.swappiness=10,验收时发现有三分之一的节点还是默认的60。原因?不同批次自动化脚本版本不一样,有些Pod的init容器没继承宿主机sysctl。这玩意看着小,到了线上会导致内存回收策略不一致,服务响应忽快忽慢。

当时我没手动改——那太容易漏了。我写了个巡检脚本,用Ansible收集所有节点的sysctl、limits、磁盘挂载,跟基线JSON做diff,生成HTML报告,红的坚决不准上线。另外在K8s里加了配置拦截(用OPA Gatekeeper),没声明allowed sysctl的Pod直接拒绝。这玩意儿你靠人记?记不住的。

验收一次性通过率从62%提到98%。剩下的2%是硬件差异,做了例外清单单独管。

回过头看,真正搞死稳定性的往往不是架构多烂,而是连接池没关、缓存策略被改、配置漂移这些小破事。我的路子很简单:故障必复盘,拿到根因就写检查清单;清单必须能自动跑,不给犯错机会。明年打算把这三个案例做成故障模式库,塞进CI/CD流水线里预检——数据库连接检查、存储I/O检测、配置漂移扫描,让问题死在发布前,别等到凌晨再叫我起来。干运维的,少抓瞎多提效,比什么都实在。

    更多精彩工作总结内容,请访问我们为您准备的专题:工作总结

本文网址://m.f236.com/huodongzongjie/213002.html

相关文章推荐 更多
N 编辑推荐 更多
热门栏目