服务器这个词听着专业,本质就是一台长期开机、专门对外提供服务的计算机。日常浏览的网页、打开的App,还有保存的聊天记录,背后都依靠一台或是多台服务器支撑。它和普通笔记本硬件构成差别不大,同样搭载CPU、内存、硬盘、网卡,只是大多不会外接显示器,安置在机房环境,供电与网络都做冗余设计,操作系统一般选用Linux或者Windows Server。服务器持续等待外部请求,处理完成后返回对应数据。一旦这个响应中断,我们这边就会看到网页打不开、App持续加载、远程桌面连接失败这类现象。
服务器停止响应,代表硬件本身还在运行,但无法处理外部发来的请求。故障表现可以分成几类。第一种属于整机死机,ping探测完全不通,外接键鼠也无法操作,风扇保持转动但无输出画面。第二种是系统内核正常,ping可以连通,但内部服务进程异常,网站无法访问,SSH连接却能正常建立。第三种是响应速度极度缓慢,长时间等待后直接超时,这种情况处理起来最麻烦,服务器没有完全宕机,但实际使用效果等同于失效。

触发停止响应的诱因很多,需要结合故障现象判断。资源耗尽是最普遍的情况。内存被占满之后,系统会大量调用swap交换分区,硬盘持续读写,所有操作陷入停滞。也有可能是CPU被存在死循环的程序完全占用,其余进程分配不到运行时间片。磁盘空间占满同样会引发严重故障,日志无法写入,数据库直接拒绝服务,就连基础系统指令都可能执行失败。并发连接数量超限也会拖垮服务器,比如接口遭遇恶意刷量,每一条请求持续占用连接,新的访问请求只能排队等待。
硬件层面故障不能忽略。内存模块损坏,会造成系统随机崩溃、抛出报错。硬盘出现坏道,读写操作卡顿,严重时直接离线。电源老化带来供电不稳,机器会无规律重启或者断电。散热不足引发CPU高温降频,性能大幅下跌,观感上就和停止响应一样。机房环境因素同样会造成影响,空调故障导致机房温度飙升,或是网络交换机故障,服务器本身运行正常,但外部无法建立连接。
软件层面的问题更加繁杂。程序存在缺陷,运行途中崩溃,或是进入死锁状态,进程自身卡死。配置参数填写错误,比如防火墙规则把SSH访问端口封禁,或是Web服务监听地址配置出错。系统更新中途失败,触发内核panic,直接宕机。遭遇DDoS攻击时,带宽被海量无效流量占满,正常请求无法抵达服务器,表现形式同样是停止响应。
排查修复要先定位故障类别。ping请求无法连通,优先排查网络链路,从其他设备执行traceroute,确认断点位置。网络链路无异常,就要借助带外管理工具,IPMI、iDRAC、iLO这类远程管理卡独立于操作系统,可以查看屏幕输出、远程重启设备,调取硬件日志。没有带外管理权限,只能联系机房工作人员协助物理重启。
ping正常连通但业务服务无响应,先通过SSH登录查看系统负载。top、htop查看CPU与内存占用情况,df -h检查磁盘占用,free -m查看内存和swap状态。如果是单个进程占用过多资源,终止该进程,查阅日志定位异常根源。磁盘空间耗尽,清理日志、临时文件或者扩容存储。连接数溢出,判断是否遭遇攻击,临时封禁异常IP或者接入流量防护。
重启能够解决大部分临时故障,但不能长期依赖这种手段。重启之后需要查阅系统日志,/var/log/messages、/var/log/syslog、dmesg里面大多留存故障线索。硬件故障在日志中会出现MCE、EDAC相关报错,或是硬盘I/O读写错误。软件崩溃,应用自身日志会记录异常堆栈信息。找到根本原因之后,硬件故障就更换配件,配置出错就修改参数,程序缺陷就升级代码。
提前做好防护工作,能减少故障带来的麻烦。部署监控工具,持续监测CPU、内存、磁盘、网络以及服务端口,指标临近阈值就触发告警。核心业务做服务冗余,一台实例故障,备用节点承接流量。定期备份数据,不要等到硬盘损坏才补救。系统和软件按需打安全补丁,不用盲目更新到最新版本,优先保证稳定。挑选靠谱机房,电力、网络、制冷都具备冗余保障。落实这些措施,服务器停止响应的概率会下降,就算故障发生,恢复速度也更快。