1 资源不足造成服务驱逐宕机恢复
常见针对问题:
text
1. k8s的node节点资源不足,驱逐部署的pod服务
2. node节点资源使用率过高,部署的pod有被驱逐风险处理措施:
text
1.1 确认服务的配置合理,没有过大的资源申请配置。如配置不合理,请先调整pod部署配置。
1.2 查找集群中负载、资源使用率较低的节点,通过给pod增加部署标签等方式,让pod部署调度到指定node.
如增加 nodeSelector 或 nodeName等方式。2 内存不足,OOM等异常时快速恢复
常见针对问题:
text
1. OOM宕机异常
2. 内存增高有宕机分析的服务
3. 服务yaml部署未按照推荐配置(低于推荐配置)时
4. 元空间不足,metaspaceOOM
5. 业务高峰导致内存不足等处理措施:
text
修改对应异常服务的部署模板,做以下调整(调整需参考服务推荐配置和客户使用量等综合分析)
1、如果为堆空间OOM,调整部署模板中java启动参数配置中: -Xms -Xmx ; 如果为元空间不足,调整java启动参数中: -XX:MetaspaceSize -XX:MaxMetaspaceSize
一般可再原配置基础上调30%-50%
2、还需同步调整部署yaml文件,按照java启动参数的调整,同样增加yaml中资源限制部分:
resources:
limits:
memory: #根据java配置中增加适当调整
requests:
memory: #根据java配置中增加适当调整3 cpu高负载快速恢复
常见针对问题:
text
1. 异常业务导致的cpu飙高
2. 服务cpu资源分派不足
3. 其他(业务逻辑,线程排队等)处理措施:
text
1、如果确认为异常业务导致,可优先考虑暂停或中断该业务;如无法中断则需联系研发处理
2、如果明确资源不足问题,可调整服务部署yaml中cpu配置:
resources:
limits:
cpu:
requests:
cpu:
调整可按照原始配置的 30%-50%幅度增加
4 业务高峰导致问题快速恢复
常见针对问题:
text
1. 常见高峰业务,如并发登录(早高峰)
2. 抄送全员的流程代办
3. 大批量公文转换等处理措施:
text
业务高峰问题,针对不同问题可能需要研发确认最终处理策略。
下面为常见的业务高峰应急策略
1、增加高负载服务的节点,比如 原来2个 ctp-user 服务扩容为 4个服务节点。
2、增加服务的配置,提高java 内存配置 ,提高部署yaml中 limit限制等 5 慢sql快速恢复
常见针对问题:
text
1. 大表查询
2. 无索引或索引失效等
3. 服务异常/主机异常
4. 连接池不足,导致慢(往往由于业务量增加)处理措施:
text
1、如果为单个慢sql,可联系研发确认,是否可再数据库层面kill 该查询连接。
2、如果无索引或索引失效,可通过快速分析,优先补对应表的索引
3、如果为数据库服务异常,可考虑重启或联系DBA运维
4、如果为数据库服务器异常,一般需要联系客户运维支持,或增加机器资源,或重启机器等(需要客户运维授权确认)
5、如果确认为服务数据库连接池不足导致的慢,可通过适当调整nacos中数据库连接池配置进行修复
seeyon:
datasource:
initial-size:
min-idle:
max-active:
max-wait: 3000
针对不同服务调整可能联系对应服务研发,咨询推荐配置
6、如果是业务激增导致连接池线程不足问题,可以考虑增加服务负载节点,增加pod数。6 慢redis快速恢复
常见针对问题:
text
1. redis大key
2. redis服务异常/主机异常处理措施:
text
1、如果为单个key操作慢,可联系研发确认是否可直接删除该redis的key进行快速修复。
2、如果为redis服务异常,可考虑重启或联系运维
3、如果为redis服务器异常,一般需要联系客户运维支持,或增加机器资源,或重启机器等(需要客户运维授权确认) 7 慢dubbo快速恢复
常见针对问题:
text
1. 其他关联处理逻辑慢导致的dubbo慢
2. 业务激增导致的dubbo慢处理措施:
text
1、其他关联处理慢导致的问题,通过其他对应应急措施处理。
2、如果为为业务激增导致的dubbo处理慢,可以考虑适当增加服务dubbo的线程数配置或增加pod数量。
修改nacos中dubbo配置的线程数如下:
seeyon:
dubbo:
provider:
core-threads:
max-threads:
queue: 10
consumer:
share-connections:
queue: 10
联系研发,根据服务特点,适当增加dubbo相关线程配置8 数据库相关问题快速恢复
常见针对问题:
text
1. 数据库服务异常
2. 数据库服务连接池不足处理措施:
text
1、如果发现数据库服务异常,如夯死。可优先kill 当前异常查询或sql操作的连接,确认是否恢复。
2、如果出现数据库连接数不足,可扩展(调大)数据库最大连接数据。日常预防建议
- 建立前端、网关、应用、中间件、节点的统一监控。
- 核心接口建立
P95/P99延迟告警。 - 建立数据库慢 SQL、Redis 慢命令、Kafka Lag 告警。
- 建立 Pod 重启、驱逐、OOM、节点压力告警。
- 发布必须保留回滚方案。
- 高峰业务前做容量评估与压测。