Linux服务器作为企业业务部署的核心载体,运行过程中常面临系统卡顿、服务宕机、请求响应超时等问题,同时高并发场景下负载均衡配置不合理也会引发流量分配不均的情况,掌握对应的解决方法对保障业务稳定至关重要。

Linux服务器常见故障及解决方法
系统资源类故障
系统资源不足是Linux服务器最常见的故障类型,主要表现为CPU使用率过高、内存耗尽、磁盘空间占满等情况。
排查CPU使用率过高的步骤:
- 使用
top命令查看实时进程资源占用,定位占用CPU最高的进程 - 如果是业务进程异常,可查看进程日志定位代码层面的死循环等问题
- 如果是系统进程异常,可检查是否有病毒入侵或者系统配置错误
解决内存耗尽问题可先使用free -h查看内存使用情况,再通过ps aux --sort=-%mem找到占用内存最高的进程,确认是否为正常业务进程,若为非必要进程可直接终止,若是业务进程则需排查内存泄漏问题。磁盘空间不足可使用df -h查看磁盘挂载情况,再用du -sh /*定位大文件目录,清理无用日志或者扩容磁盘。
服务运行类故障
服务无法启动或者启动后异常退出也是常见问题,以Nginx服务为例,排查步骤:
- 使用
systemctl status nginx查看服务运行状态,查看报错信息 - 查看Nginx错误日志,默认路径为
/var/log/nginx/error.log - 检查配置文件语法,执行
nginx -t验证配置是否正确
若报错为端口被占用,可使用netstat -tulnp | grep 端口号找到占用端口的进程,调整服务端口或者终止占用进程后重新启动服务。
负载均衡常见问题及解决方法
负载均衡配置不合理导致流量分配不均
使用Nginx作为负载均衡器时,若未合理配置转发规则,会出现部分后端服务器压力过大,部分服务器空闲的情况。此时可调整负载均衡策略,Nginx支持多种分配策略:
- 轮询:默认策略,按顺序将请求分配到后端服务器
- 加权轮询:给性能更好的服务器配置更高的权重,分配更多请求
- IP哈希:根据客户端IP计算哈希值,将同一客户端的请求固定分配到同一台后端服务器,解决会话保持问题
加权轮询的配置示例:
# 定义后端服务器组
upstream backend_server {
# server后面跟后端服务器地址,weight为权重,值越高分配的请求越多
server 192.168.0.10:8080 weight=3;
server 192.168.0.11:8080 weight=2;
server 192.168.0.12:8080 weight=1;
}
server {
listen 80;
server_name ipipp.com;
location / {
# 转发请求到后端服务器组
proxy_pass http://backend_server;
# 设置请求头,传递客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
负载均衡器单点故障问题
单一负载均衡器如果出现故障会导致所有请求无法转发到后端服务器,此时可采用主备模式部署负载均衡器,使用Keepalived实现高可用。
主节点配置示例:
global_defs {
# 路由标识,自定义即可
router_id lb_01
}
vrrp_instance VI_1 {
# 状态为主节点
state MASTER
# 绑定的网卡名称,根据实际服务器网卡调整
interface eth0
# 虚拟路由ID,主备节点需一致
virtual_router_id 51
# 优先级,主节点比备节点高
priority 100
advert_int 1
# 认证配置,主备节点需一致
authentication {
auth_type PASS
auth_pass 123456
}
# 虚拟IP地址,客户端访问的地址
virtual_ipaddress {
192.168.0.100
}
}
备节点只需将state改为BACKUP,priority改为低于100的数值即可,当主节点故障时,备节点会自动接管虚拟IP,继续提供负载均衡服务。
故障预防建议
除了掌握故障解决方法,日常运维中也需要做好预防工作:
- 定期监控服务器资源使用情况,设置CPU、内存、磁盘的告警阈值
- 定期备份重要配置文件和业务数据,避免故障后无法快速恢复
- 负载均衡后端服务器建议至少部署3台,避免单台服务器故障影响整体服务
- 上线新配置前先在测试环境验证,避免配置错误引发线上故障