服务器异常指服务器在运行过程中因软硬件故障、配置错误或外部攻击等原因,无法正常提供服务。常见类型包括:
检查服务器硬件状态是基础排查步骤。通过 SSH 连接服务器后执行dmesg命令查看内核日志,硬件错误通常会显示磁盘 I/O 错误、内存故障等信息。使用smartctl -a /dev/sda检测硬盘健康状态,关注Reallocated_Sector_Ct和Pending_Sector等参数。
内存检测可使用memtester工具运行 24 小时测试。CPU 过热问题通过lm-sensors包监测温度,安装后执行sensors命令显示实时温度数据。网络接口故障通过ethtool检查链路状态和丢包率。
资源耗尽是常见异常原因。使用top或htop实时查看 CPU、内存占用情况,free -m显示内存使用详情。df -h检查磁盘空间,iostat -x 1监控磁盘 I/O 性能。
设置vmstat 1持续输出系统状态,重点关注 si/so(交换分区活动)、us/sy(CPU 使用比例)等指标。配置/proc/sys/vm/panic_on_oom参数控制内存耗尽时的行为,建议设置为 1 立即触发内核 panic 避免系统僵死。
系统日志位于/var/log/目录,其中messages和syslog包含核心日志。使用journalctl -xe查看 systemd 日志,添加-p err筛选错误信息。Web 服务器日志如 Nginx 的error_log记录 HTTP 错误细节。
日志分析工具链:
使用systemctl status servicename检查服务状态,journalctl -u servicename查看特定服务日志。关键命令包括:
systemctl restart servicename # 重启服务
systemctl daemon-reload # 重载单元文件
systemctl mask servicename # 禁用服务自启
对于崩溃的进程,strace -p pid附加跟踪系统调用,gdb -p pid进行调试。配置coredumpctl捕获核心转储,通过bt full命令查看完整堆栈跟踪。
网络问题是服务器异常的常见诱因。ss -tulnp显示所有监听端口,netstat -s统 计网 络栈数据。使用mtr替代traceroute进行持续路由跟踪,tcpdump -i eth0 port 80抓包分析 HTTP 流量。
防火墙 规则检查:
iptables -L -n -v # 查看规则匹配计数
nft list ruleset # 现代防火墙规则
firewall-cmd --list-all # firewalld配置
TCP 参数调优可修改/etc/sysctl.conf:
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_max_syn_backlog = 8192
net.core.somaxconn = 65535
数据库异常往往引发连锁反应。MySQL 状态检查:
SHOW ENGINE INNODB STATUS;
SHOW PROCESSLIST;
SHOW GLOBAL STATUS LIKE 'Threads_connected';
PostgreSQL 诊断命令:
SELECT * FROM pg_stat_activity;
CHECKPOINT;
VACUUM ANALYZE;
Redis 内存问题处理:
INFO memory
MEMORY PURGE
CONFIG SET maxmemory 4gb
针对 DDoS 攻击,配置网络层防护:
sysctl -w net.ipv4.tcp_syncookies=1
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
Web 应用防护建议:
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
Prometheus + Grafana 监控方案配置示例:
# prometheus.yml
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
告警规则示例:
groups:
- name: instance-down
rules:
- alert: InstanceDown
expr: up == 0
for: 5m
制定完善的备份方案:
rsync -avz --delete /data user@backup:/backups
pg_dump -U postgres dbname > backup.sql
mysqldump --single-transaction -uroot db > dump.sql
恢复流程要点:
内核参数优化示例:
vm.swappiness = 10
net.ipv4.tcp_fastopen = 3
fs.file-max = 2097152
JVM 应用调优参数:
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:ParallelGCThreads=4
Nginx 性能优化片段:
worker_processes auto;
worker_rlimit_nofile 100000;
events {
worker_connections 4096;
multi_accept on;
}
Kubernetes 集群诊断命令:
kubectl describe pod <pod-name>
kubectl logs --previous <pod-name>
kubectl get events --sort-by=.metadata.creationTimestamp
Docker 容器调试技巧:
docker stats --no-stream
docker exec -it container_name /bin/sh
docker inspect --format='{{.State.Health}}' container_name
AWS EC2 实例故障处理:
阿里云服务器异常处理:
建立事故复盘机制:
维护运维知识库:
京公网安备 11010802036102号北京金支点技术服务有限公司保留所有权利 | Copyright © 2005-2026 Beijing Golden Point Outsourcing Service Co., Ltd. All Rights Reserved.