针对以下几种场景:1、数据库代理层的客户端提交一些耗时长较长的数据处理请求,同时后端数据库活动连接数量超过警戒值;2、数据库代理层的客户端提交的同一类型的请求数量占比过大,同时系统处理能力达到警戒值(处理线程池空闲线程占比较小);3、数据库代理层的客户端提交的各种类型的请求数量较为均匀,但是系统处理能力达到警戒值(处理线程池空闲线程占比较小)。以上的场景都有可能导致数据库系统处理能力下降甚至失去响应。
通过对以上指标的实时计算,在数据库代理服务中针对场景1进行前端拦截+后端按耗时按比例进行销毁以保持一个数据库性能低消耗的水平;针对场景2直接拦截新增的对应类型的请求以保持同类型请求数量占比保持在警戒线以内,直到实时计算结果正常为止,避免资源耗尽;针对场景3拦截新增的耗时在平均水平以上的类型请求,直到实时统计结果正常为止,首先保证资源占用较少的请求的可用性,以保证数据库的处理能力