四平管系统的朋友最怕这种电话:业务高峰,系统卡死,老板在旁边催。卡死不可怕,可怕的是没监控、没预案,全靠现场猜。我把排查顺序和高峰前的准备工作写给你。值班表也是预案的一部分:高峰期谁来盯、出事找谁、备份联系方式放哪,贴在工位上。真出事的时候,最贵的是找不到人,而不是技术问题本身。
现场排查按这个顺序
先看带宽曲线,跑满了就是流量型问题,升带宽或上CDN。带宽没满看内存,剩个几百兆就快假死了,加内存或查内存泄漏。这两项正常再看数据库,慢查询日志一拉,没索引的大表查询基本就是元凶。最后看并发连接数,被爬虫刷了也会拖死服务。每次高峰过后做一次复盘:哪个指标先报警、处理用了多久、下次能不能更快。同样的高峰一年总有几回,复盘两轮之后,你的系统比想象中皮实得多。
这个顺序从便宜到贵、从常见到少见,别一上来就重启机器,重启只是把证据清了。运维这事还有个土办法:每月固定一天,让懂行的人把后台整体看一遍,备份、证书、访问量、错误日志挨个过。半小时的功夫,能把九成的小毛病掐灭在萌芽里。四平不少站的毛病,都是攒出来的。
高峰前必须做的四件事
一是压测:用工具模拟高峰并发,测出系统实际扛多少量,别拿业务说事。二是扩容预案:量到八成就要准备升配,升级要在平时演练过,别等高峰现场升。三是定时任务错峰:备份、报表这类重活挪到凌晨。四是通知链路:出问题谁处理、多长时间响应,提前写下来。把服务商的联系方式贴在收银台或者办公桌上:服务器到期找谁、网站打不开找谁,一目了然。别笑这办法土,真出事的时候,最值钱的就是一个马上能拨通的号码。
红嘴一家做仓储服务的,每年三月底对账高峰必卡。压测后发现是一个没加索引的汇总查询,改了一行代码,第二年高峰平稳度过,主管说早知道这么简单。
总结
四平管系统的朋友,排查按带宽、内存、数据库、并发的顺序来,高峰前把压测、扩容预案、错峰和响应链路备好。现在就去看看你的系统有没有监控,没有的话这周末就该补上,别等下一个高峰再抓瞎。