背景
在业务不断增长的情况下,系统的稳定性日趋重要。对一个系统来说,有一些经典实践可以避免借鉴,只要按相关的维度进行配置,就可以减轻对系统稳定性的影响。
目标
提供SOP,帮助各个系统提升稳定性
系统稳定性相关的维度
慢SQL
慢SQL影响数据库稳定、影响系统稳定性、影响系统吞吐量
检查标准:
arms上找到需要检查的应用 --- 应用总览--慢SQL
点击 慢SQL的个数对应的数字,可以查看慢SQL的详细信息
慢调用
影响系统稳定性、影响系统吞吐量
检查标准:
arms上找到需要检查的应用 --- 应用总览--慢调用
点击 慢调用的个数对应的数字,可以查看慢调用的详细信息
查看服务的慢调用
异常/错误的接口
报错的接口
检查标准:
arms上找到需要检查的应用 --- 应用总览--异常/错误数
点击 异常/错误数对应的数字,可以查看异常/错误数的详细信息
查看服务的异常调用
Redis连接检查
连接池的配置要确保连接数可以弹性伸缩。如果有比较多的空闲连接没有回收,会增加系统负载,影响共用此Redis的其它服务的正常运行。
具体配置的值要根据Redis服务器配置及应用的容量来确定
检查标准:
-
连接可以复用
-
业务高峰随流量增加时,连接池中的连接数也要增加,但要有上限
-
业务低峰时,连接池中的连接要缩回最小连接数
-
池中没有可用连接时,获取连接时不能无限等待
#Jedis配置
# 最大空闲连接数。如果超过最大空闲连接数的连接不放回线程池,直接删除
spring.redis.jedis.pool.max-idle=50
# 最小连接数。即常驻内存的最小连接数
spring.redis.jedis.pool.min-idle=10
# 最大可用活跃连接数
spring.redis.jedis.pool.max-active=1500
# 池中没有可用连接时,获取连接时的最大等待时间。-1表示无限等待
spring.redis.jedis.pool.max-wait=3000
# 连接回收线程的执行频次。-1表示不回收
spring.redis.jedis.pool.time-between-eviction-runs=1000