服务器运维入门先搞懂这几件事:从选机器到看监控的实操顺序
刚拿到服务器权限那几天,多数人会把注意力放在装环境上,等站点真跑起来才发现问题不在软件层。访问慢,到底是带宽不够还是线路绕路?半夜告警,是内存爆了还是被打了?这些判断做不出来,运维就会变成不停重启和加配置的循环。我自己的顺序是先把机器底子摸清楚,再谈监控和应急,顺序反了会一直救火。
先把机器底子摸清楚,别急着装面板
新机器到手,第一件事是确认你买到的是什么,而不是马上装宝塔。CPU 型号、内存容量、磁盘类型、带宽大小、流量是包月还是按量,这几项决定了后面所有优化空间。一台标称 100M 带宽的机器,如果实际是共享口,晚高峰跑不满一半,这时候再怎么调 PHP 参数都没用。
我一般会先跑几个基础命令确认:lscpu 看核心数和主频,free -h 看内存实际可用量,df -h 看磁盘还剩多少。磁盘类型差别很大,SSD 随机读写通常比机械盘快一个数量级,数据库放机械盘上,查询一多就卡。
带宽这块最容易踩坑。独享和共享是两个概念,价格差得也远。做站群或者跑采集的业务,出口带宽被跑满会直接拖垮整台机器,这时候要么升级带宽,要么把流量大的任务挪到单独一台。秀米云的美国硅谷物理服务器10是 Gold-6133*2 / 128G / 100M 的配置,月付 $559,适合内存吃紧又要稳定出口的场景。
内存这项要按业务估。跑一个中型论坛,64G 通常够用;如果同时开了数据库、缓存、队列,128G 会更从容。别等 OOM 杀进程了才想起来加内存,那时候已经丢过数据了。
线路和防御是两笔独立的钱
很多人把线路和防御混在一起算预算,结果两头都不够。线路决定的是速度,防御决定的是被打时能不能撑住,这两件事的投入方向完全不同。
线路方面,国内访问看的是回程走什么。普通国际线路绕美国西海岸再回来,延迟 200ms 以上很常见;优化过的线路能把延迟压到 40ms 到 80ms 区间。差这一百多毫秒,用户感知非常明显。判断方法不复杂,从几个不同地区的机器上做路由追踪,看跳数和经过的节点,绕路一眼就能看出来。
防御方面,先确认自己会不会被打。做游戏、金融、竞争激烈的行业站,被 DDoS 是常态;纯企业展示站,几年遇不上一次。用不上的高防就是白花钱,用得上的时候没有就是站点直接下线。
- 会被打的业务:高防是刚需,选带清洗能力的机房,别指望单机扛
- 不会被打的业务:把钱花在带宽和内存上,收益更直接
美国洛杉矶高防这条线我一般推荐给确实有攻击压力的业务,秀米云的美国洛杉矶高防服务器38配的是 Gold 6133*2 / 64G / 100M,月付 $379,机房在洛杉矶,防御和带宽是打包给的。
监控先看四个指标,别一上来就上全套
监控体系搭得太复杂,最后没人看。刚开始盯四个指标就够:CPU 使用率、内存占用、磁盘 IO、网络进出流量。这四个能覆盖八成以上的故障场景。
CPU 长期跑在 80% 以上,说明要么程序有问题,要么配置不够。内存持续增长不回落,多半是内存泄漏。磁盘 IO 等待时间突然变长,可能是有人在跑大查询,也可能是盘快坏了。网络流量出现异常尖峰,先排查是不是被刷了。
告警阈值别设太敏感。CPU 到 90% 就报警,一天能响几十次,最后大家都把告警静音了,真出事反而没人管。我一般会把阈值设得稍高,再配合持续时间判断,比如连续五分钟超过 90% 才触发。
日志要留。出故障时翻日志的速度决定了恢复时间。系统日志、应用日志、访问日志分开存,别混在一起。磁盘空间要留出余量,日志写满磁盘导致服务挂掉,这种事故每年都能见到。
出故障时的排查顺序
服务挂了先别急着重启,重启会把现场清掉。第一步看进程还在不在,第二步看端口通不通,第三步看日志最后几行报什么错。这三步走完,大部分问题能定位到方向。
如果是连不上,先本地 ping 一下,再 telnet 端口。ping 通但端口连不上,多半是服务本身的问题;ping 都不通,往网络层查。这个顺序能省不少时间,比盲目重启强得多。
被攻击的时候,先看流量图确认攻击类型,再决定是切高防还是加规则。带宽被打满的情况下,改配置没用,得靠上游清洗。这也是为什么防御要提前准备,临时抱佛脚基本来不及。
日常维护其实就几件事:定期看监控数据、定期清理日志、定期做备份、定期更新系统补丁。听起来简单,能坚持做下来的人不多。备份尤其重要,删库这种事不分新手老手,区别只在于有没有备份能恢复。
按我的经验,新手第一台机器不用追求顶配。先租一个月,把真实负载跑出来,再根据监控数据决定加什么。上来就买大配置,很可能一半资源常年闲着。预算有限的情况下,优先保证带宽和内存,CPU 可以后加。真到业务量上来,再考虑升级到独立服务器或者加机器做负载分担,比一步到位更划算。