【技术实现步骤摘要】
数据库过载保护方法和装置
[0001]本申请涉及数据处理
,特别是涉及一种数据库过载保护方法和装置。
技术介绍
[0002]KV数据库(KV DB)使用key来存取数据,常见的代表是Redis和Memcached。为了存储海量的业务数据,KV DB往往采取分布式集群部署,也就是用多个数据库实例来支持业务需求。
[0003]在保证数据库性能容量满足业务流量需求的情况下,常见造成业务故障的是客户端集中高频访问若干键(key)造成数据库过载,即热键问题导致数据库过载;或者部分键对应的值占用的流量过大造成数据库过载,即大键问题导致数据库过载;无论是热键问题导致的数据库过载还是大键问题导致的数据库过载,都会造成负责处理这些键的热点数据库服务器过载。一旦热点服务器过载,同服务器的正常键请求因为难于分配到中央处理器资源而无法得到正常处理,从而会使这些键的访问延迟过大,使得访问时延急剧上升,进一步地造成业务故障,使故障范围扩大。
[0004]因此,急需提出一种能够精确确定异常键,并对异常键进行限流的数据库过载保护方法和 ...
【技术保护点】
【技术特征摘要】
1.一种数据库过载保护方法,其特征在于,所述方法包括:监测获取数据库进程中央处理器负载利用率,所述数据库为以键值存储数据的数据库;若所述数据库进程中央处理器负载利用率达到数据库过载保护启动要求,则基于键的哈希值对所述键进行分组生成桶,所述桶至少为一;获取所述桶的中央处理器工作时长,基于所述桶的中央处理器工作时长,获取异常桶;获取所述异常桶内所述键的中央处理器工作时长,基于所述键的中央处理器工作时长,获取异常键,对所述异常键进行限流,以实现数据库过载保护。2.根据权利要求1所述的数据库过载保护方法,其特征在于,获取所述桶的中央处理器工作时长,包括:获取所述桶的请求字节数与所述数据库的请求字节数的比值,及所述数据库调用读系统接口的中央处理器时长;基于所述比值与所述数据库调用所述读系统接口的中央处理器时长,获取所述桶的中央处理器读时长;获取所述桶的响应字节数与所述数据库的响应字节数的比值,及所述数据库调用写系统接口的中央处理器时长;基于所述比值与所述数据库调用所述写系统接口的中央处理器时长,获取所述桶的中央处理器写时长;基于所述桶的中央处理器写时长、中央处理器读时长及中央处理器执行时长,获取所述桶的中央处理器工作时长。3.根据权利要求1所述的数据库过载保护方法,其特征在于,对所述异常键进行限流,包括:获取所述数据库进程中央处理器负载利用率、所述数据库进程中央处理器工作时长及所述异常键的中央处理器工作时长;计算所述异常键的中央处理器工作时长与所述数据库进程中央处理器工作时长的比值;计算所述比值与所述数据库进程中央处理器负载利用率的乘积,获取所述异常键的中央处理器负载利用率;基于所述异常键的中央处理器负载利用率,获取非异常键的中央处理器负载利用率;计算预设的数据库进程中央处理器负载利用率与所述非异常键的中央处理器负载利用率的差值;计算所述差值与所述异常键的中央处理器负载利用率的比值;获取所述异常键的每秒请求数,基于所述比值与所述每秒请求数,对所述异常键进行限流。4.根据权利要求3所述的数据库过载保护方法,其特征在于,基于下式,对所述异常键进行限流:M=B
×
Q其中,M为对所述异常键进行限流后所述异常键的流量值;B为所述差值与所述异常键的中央处理器负载利用率的比值,B=E/F,E为计算所述预
设的数据库进程中央处理器负载利用率与所述非异常键的中央处理器负载利用率的差值,F为异常键的中央处理器负载利用率;其中,E=T
‑
C
×
(1
‑
P),F=C
×
P,T为预设的数据库进程中央处理器负载利用率,C为所述数据库进程中央处理器负载利用率,P为所述异常键的中央处理器工作时长与所述数据库进程中央处理器工作时长的比值。5.根据权利要求1~4任一项所述的数据库过载保护方法,...
【专利技术属性】
技术研发人员:廖晓波,刘佩东,
申请(专利权)人:唯品会广州软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。