CN116366657A - 一种缓存服务器的数据请求调度方法及*** - Google Patents

一种缓存服务器的数据请求调度方法及*** Download PDF

Info

Publication number
CN116366657A
CN116366657A CN202310630965.8A CN202310630965A CN116366657A CN 116366657 A CN116366657 A CN 116366657A CN 202310630965 A CN202310630965 A CN 202310630965A CN 116366657 A CN116366657 A CN 116366657A
Authority
CN
China
Prior art keywords
cache server
health state
health
data request
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310630965.8A
Other languages
English (en)
Other versions
CN116366657B (zh
Inventor
王妍兰
李海兵
康江彬
叶子聪
王柄淋
王文娟
李小壮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202310630965.8A priority Critical patent/CN116366657B/zh
Publication of CN116366657A publication Critical patent/CN116366657A/zh
Application granted granted Critical
Publication of CN116366657B publication Critical patent/CN116366657B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本说明书实施例主要涉及数据请求调度技术领域,具体为一种缓存服务器的数据请求调度方法及***。一种缓存服务器的流量调度方法,包括以下步骤:获取缓存服务器组中每台缓存服务器的健康值;根据所述健康值确定对应缓存服务器的健康状态,所述健康状态包括第一健康状态、第二健康状态和第三健康状态;获取用户的数据请求;确定所述数据请求的初始缓存服务器;当所述初始缓存服务器的健康状态为第一健康状态时,将所述数据请求分配至所述初始缓存服务器。本说明书实施例的数据请求调度方法及***,能够自动确定初始缓存服务器的健康状态,使得缓存服务器不易出现瓶颈,且降低了缓存服务器组的运维难度和运维成本。

Description

一种缓存服务器的数据请求调度方法及***
技术领域
本说明书实施例主要涉及数据请求调度技术领域,具体为一种缓存服务器的数据请求调度方法及***。
背景技术
内容分发网络包括多组分布在各个地区的缓存服务器,每组缓存服务器上均存储有数据的副本,当用户有数据请求时,通过离用户最近的缓存服务器组给用户提供数据,进而提升数据请求的访问速度。
现有技术中,通常采用url hash方法将用户的数据请求调度到缓存服务器组的缓存服务器上,该方法对于同一个url数据请求会将其调度到同一台缓存服务器上,当该url数据请求是大规模数据请求时,很容易导致对应的缓存服务器出现瓶颈。当某一台缓存服务器出现瓶颈时,发往这台缓存服务器的其他数据请求均会受到影响,进而导致用户数据请求的服务质量降低。
另外,当某一台缓存服务器出现瓶颈时,需要先将该台缓存服务器的数据请求迁出到比较空闲的缓存服务器;当该台缓存服务器恢复正常时,再将数据请求迁回,使得缓存服务器组的运维难度大、运维成本高。
发明内容
本说明书实施例针对现有技术存在的问题,提出了一种缓存服务器的数据请求调度方法及***,以解决现有技术中缓存服务器易出现瓶颈,缓存服务器组运维难度大、运维成本高的问题。
在第一方面,本说明书实施例提供了一种缓存服务器的流量调度方法,包括以下步骤:
获取缓存服务器组中每台缓存服务器的健康值;
根据所述健康值确定对应缓存服务器的健康状态,所述健康状态包括第一健康状态、第二健康状态和第三健康状态;
获取用户的数据请求;
确定所述数据请求的初始缓存服务器;
当所述初始缓存服务器的健康状态为第一健康状态时,将所述数据请求分配至所述初始缓存服务器;
当所述初始缓存服务器的健康状态为第二健康状态时,确定所述初始缓存服务器在当前数据请求处理周期内的数据请求次数,当所述数据请求次数小于最大次数阈值时,将所述数据请求分配至所述初始缓存服务器;否则,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中;
当所述初始缓存服务器的健康状态为第三健康状态时,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中。
作为优选,每台所述缓存服务器的健康值具体通过以下公式计算得到:
Figure SMS_1
(1)
其中,
Figure SMS_2
为缓存服务器中磁盘的IO使用率,/>
Figure SMS_3
为缓存服务器中磁盘的最大IO使用率,/>
Figure SMS_4
为缓存服务器中磁盘的最小IO使用率,/>
Figure SMS_5
为缓存服务器的第一健康值;
Figure SMS_6
(2)
其中,
Figure SMS_7
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的情况占比,/>
Figure SMS_8
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最大情况占比,/>
Figure SMS_9
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最小情况占比,/>
Figure SMS_10
为缓存服务器的第二健康值;
Figure SMS_11
(3)
其中,
Figure SMS_12
为缓存服务器的平均CPU使用率,c为经验常量,/>
Figure SMS_13
为缓存服务器的第三健康值;
Figure SMS_14
(4)
其中,X为缓存服务器的健康值。
作为优选,还包括以下步骤:
当缓存服务器的健康状态由第一健康状态进入第二健康状态后,开始计时,每隔一段时间往下调整最大次数阈值的值,直到所述缓存服务器的健康状态由第二健康状态进入第一健康状态;
当所述缓存服务器的健康状态由第二健康状态进入第一健康状态后,将所述缓存服务器进行标记以使对应缓存服务器处于不工作的第一健康状态;
在所述缓存服务器进行标记后,开始计时,一段时间后将所述缓存服务器的标记去除以使对应缓存服务器处于可工作的第一健康状态。
作为优选,还包括以下步骤:
连续向缓存服务器发送心跳包;
接收对应缓存服务器对心跳包的响应信号;
当连续多次未接收到响应信号时,判定对应缓存服务器不可用;否则,判定对应缓存服务器可用;
当缓存服务器不可用时,产生第一告警信息。
作为优选,还包括以下步骤:
统计缓存服务器组中处于第三健康状态的缓存服务器的数量,当所述数量大于预设数量阈值时,产生第二告警信息。
在第二方面,本说明书实施例提供了一种缓存服务器的流量调度***,包括:
健康值获取模块,用于获取缓存服务器组中每台缓存服务器的健康值;
健康状态确定模块,用于根据所述健康值确定对应缓存服务器的健康状态,所述健康状态包括第一健康状态、第二健康状态和第三健康状态;
数据请求获取模块,用于获取用户的数据请求;
初始缓存服务器确定模块,用于确定所述数据请求的初始缓存服务器;
数据请求分配模块,用于当所述初始缓存服务器的健康状态为第一健康状态时,将所述数据请求分配至所述初始缓存服务器;
当所述初始缓存服务器的健康状态为第二健康状态时,确定所述初始缓存服务器在当前数据请求处理周期内的数据请求次数,当所述数据请求次数小于最大次数阈值时,将所述数据请求分配至所述初始缓存服务器;否则,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中;
当所述初始缓存服务器的健康状态为第三健康状态时,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中。
作为优选,所述健康值获取模块包括:
第一健康值计算单元,通过以下公式(1)计算得到第一健康值;
Figure SMS_15
(1)
其中,
Figure SMS_16
为缓存服务器中磁盘的IO使用率,/>
Figure SMS_17
为缓存服务器中磁盘的最大IO使用率,/>
Figure SMS_18
为缓存服务器中磁盘的最小IO使用率,/>
Figure SMS_19
为缓存服务器的第一健康值;
第二健康值计算单元,通过以下公式(2)计算得到第二健康值;
Figure SMS_20
(2)
其中,
Figure SMS_21
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的情况占比,/>
Figure SMS_22
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最大情况占比,/>
Figure SMS_23
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最小情况占比,/>
Figure SMS_24
为缓存服务器的第二健康值;
第三健康值计算单元,通过以下公式(3)计算得到第三健康值;
Figure SMS_25
(3)
其中,
Figure SMS_26
为缓存服务器的平均CPU使用率,c为经验常量,/>
Figure SMS_27
为缓存服务器的第三健康值;
健康值计算单元,通过以下公式(4)计算得到健康值;
Figure SMS_28
(4)
其中,X为缓存服务器的健康值。
作为优选,还包括:
最大次数阈值调整模块,用于当缓存服务器的健康状态由第一健康状态进入第二健康状态后,开始计时,每隔一段时间往下调整最大次数阈值的值,直到所述缓存服务器的健康状态由第二健康状态进入第一健康状态;
标记设置模块,用于当所述缓存服务器的健康状态由第二健康状态进入第一健康状态后,将所述缓存服务器进行标记以使对应缓存服务器处于不工作的第一健康状态;
标记去除模块,用于在所述缓存服务器进行标记后,开始计时,一段时间后将所述缓存服务器的标记去除以使对应缓存服务器处于可工作的第一健康状态。
作为优选,还包括:
心跳包发送模块,用于连续向缓存服务器发送心跳包;
响应信号接收模块,用于接收对应缓存服务器对心跳包的响应信号;
可用状态判定模块,用于当连续多次未接收到响应信号时,判定对应缓存服务器不可用;否则,判定对应缓存服务器可用;
第一告警信息产生模块,用于当缓存服务器不可用时,产生第一告警信息。
作为优选,还包括:
第二告警信息产生模块,用于统计缓存服务器组中处于第三健康状态的缓存服务器的数量,当所述数量大于预设数量阈值时,产生第二告警信息。
有益效果
本说明书实施例的数据请求调度方法及***,能够自动确定初始缓存服务器的健康状态,当初始缓存服务器处于第二健康状态时,将部分数据请求调度给处于第一健康状态的缓存服务器,当初始缓存服务器处于第三健康状态时,将全部数据请求调度给处于第一健康状态的缓存服务器,使得缓存服务器不易出现瓶颈,另外,将数据请求由第二健康状态、第三健康状态的缓存服务器调度给第一健康状态的缓存服务器是自动的,不需要人为处理,进而降低了缓存服务器组的运维难度和运维成本。
附图说明
图1为本说明书实施例提供的缓存服务器的数据请求调度方法的流程示意图;
图2为本说明书实施例提供的缓存服务器的数据请求调度***的结构示意图。
具体实施方式
下面将参照附图更详细地描述本说明书的实施例。
实施例1:一种缓存服务器的数据请求调度方法,包括以下步骤:
L1.获取缓存服务器组中每台缓存服务器的健康值。
L2.根据所述健康值确定对应缓存服务器的健康状态,所述健康状态包括第一健康状态、第二健康状态和第三健康状态。
本实施例中,每台所述缓存服务器的健康值具体通过以下公式计算得到:
Figure SMS_29
(1)
其中,
Figure SMS_30
为缓存服务器中磁盘的IO使用率,/>
Figure SMS_31
为缓存服务器中磁盘的最大IO使用率,/>
Figure SMS_32
为缓存服务器中磁盘的最小IO使用率,/>
Figure SMS_33
为缓存服务器的第一健康值。
Figure SMS_34
是一个经验常量,例如可以是0.9。/>
Figure SMS_35
也是一个经验常量,例如可以是0.1。假设本实施例中的/>
Figure SMS_36
为0.2或0.5或0.8,那么对应的,本实施例的/>
Figure SMS_37
(即第一健康值)为0.125或0.5或0.875。
Figure SMS_38
(2)
其中,
Figure SMS_39
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的情况占比,/>
Figure SMS_40
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最大情况占比,/>
Figure SMS_41
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最小情况占比,/>
Figure SMS_42
为缓存服务器的第二健康值。
Figure SMS_43
是一个经验常量,例如可以是0.8。/>
Figure SMS_44
也是一个经验常量,例如可以是0.1。假设本实施例中的/>
Figure SMS_45
为0.2或0.6或0.9,那么对应的,本实施例的/>
Figure SMS_46
(即第二健康值)为0.143或0.714或1。
Figure SMS_47
(3)
其中,
Figure SMS_48
为缓存服务器的平均CPU使用率,c为经验常量,/>
Figure SMS_49
为缓存服务器的第三健康值。假设c为0.1,/>
Figure SMS_50
为0.3或0.5或0.7,那么对应的,本实施例的/>
Figure SMS_51
(即第三健康值)为0.4或0.6或0.8。
Figure SMS_52
(4)
其中,X为缓存服务器的健康值。缓存服务器的最终的健康值为第一健康值、第二健康值、第三健康值中最大的值。
假设,第一健康值为0.125,第二健康值为0.143,第三健康值为0.4,那么缓存服务器的最终的健康值为0.4。假设,第一健康值为0.5,第二健康值为0.714,第三健康值为0.6,那么缓存服务器的最终的健康值为0.714。假设,第一健康值为0.875,第二健康值为1,第三健康值为0.8,那么缓存服务器的最终的健康值为1。
本实施例的缓存服务器的健康状态包括第一健康状态、第二健康状态和第三健康状态三种状态。其中,健康值小于0.7的缓存服务器处于第一健康状态,第一健康状态表示缓存服务器很健康,能够无限制地处理数据请求。健康值大于等于0.7且小于0.9的缓存服务器处于第二健康状态,第二健康状态表示缓存服务器处于亚健康状态,能够有限制地处理数据请求(一个周期时间段内只能处理一定数量的数据请求)。健康值大于等于0.9且小于等于1的缓存服务器处于第三健康状态,第三健康状态表示缓存服务器很不健康,目前不能再处理数据请求。缓存服务器的健康值越大,其越不健康。
假设本实施例的缓存服务器组包括5台缓存服务器,分别为1号缓存服务器、2号缓存服务器、3号缓存服务器、4号缓存服务器和5号缓存服务器。本实施例可以设置一张健康值统计表,用来记录5台缓存服务器的健康值,且缓存服务器的健康值每隔一段时间就会重新计算并更新一次,例如,本实施例的健康值统计表可以10秒更新一次健康值。当新增一台缓存服务器时,健康值统计表就会增加对应缓存服务器的健康值的记录;当去掉一台缓存服务器时,健康值统计表就会删除对应缓存服务器的健康值的记录。
如图1所示,本实施例的缓存服务器的数据请求调度方法,还包括以下步骤:
S1.获取用户的数据请求。
S2.确定所述数据请求的初始缓存服务器。步骤S2可以直接采用现有技术中的urlhash方法,通过url hash方法确定数据请求原本应该是分配到哪个缓存服务器的,这个缓存服务器就是初始缓存服务器。
S3.当所述初始缓存服务器的健康状态为第一健康状态时,将所述数据请求分配至所述初始缓存服务器。
如果初始缓存服务器本身就很健康(即处于第一健康状态),能够无限制地处理数据请求,那么就直接把该数据请求分配给初始缓存服务器。例如,当前1号缓存服务器的健康值为0.5,2号缓存服务器的健康值为0.8,3号缓存服务器的健康值为0.6,4号缓存服务器的健康值为0.95,5号缓存服务器的健康值为0.4。假设本实施例的初始缓存服务器为1号缓存服务器,其健康值为0.5,本身就很健康,那就直接把数据请求分配给1号缓存服务器。
当所述初始缓存服务器的健康状态为第二健康状态时,确定所述初始缓存服务器在当前周期内的数据请求次数,当所述数据请求次数小于最大次数阈值时,将所述数据请求分配至所述初始缓存服务器;否则,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中。
如果初始缓存服务器为亚健康状态(即处于第二健康状态),那么需要先设置一个数据请求处理周期,例如,一个数据请求处理周期为5秒,然后设置一个最大次数阈值,例如,最大次数阈值为10条。
假设本实施例的初始缓存服务器为2号缓存服务器,其健康值为0.8,处于亚健康状态,那么需要先看当前的数据请求是当前数据请求处理周期中的第几条数据请求,如果是当前数据请求处理周期中的第5条数据请求,小于最大次数阈值(10条),那么就将当前的数据请求直接分配给2号缓存服务器处理。如果是当前数据请求处理周期中的第10条数据请求,等于最大次数阈值(10条),那么就将当前的数据请求分配给任意一健康状态为第一健康状态的缓存服务器处理,即可以将当前的数据请求分配给1号缓存服务器、3号缓存服务器、5号缓存服务器中的一个进行处理。
当所述初始缓存服务器的健康状态为第三健康状态时,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中。优选的,通过url hash方法在健康状态为第一健康状态的缓存服务器中选出一个缓存服务器,并将数据请求调度到该缓存服务器中。
假设本实施例的初始缓存服务器为4号缓存服务器,其健康值为0.95,本身很不健康(即处于第三健康状态),那么暂时先不让它处理数据请求,而是直接将当前的数据请求分配给任意一健康状态为第一健康状态的缓存服务器处理,即可以将当前的数据请求分配给1号缓存服务器、3号缓存服务器、5号缓存服务器中的一个进行处理。另外,在选择缓存服务器时,可以选择当前健康值最小的缓存服务器,例如,当前的1号缓存服务器的健康值为0.5,3号缓存服务器的健康值为0.6,5号缓存服务器的健康值为0.4,那么可以选择5号缓存服务器来处理对应的数据请求。
本实施例的缓存服务器的数据请求调度方法,能够自动确定初始缓存服务器的健康状态,当初始缓存服务器处于第二健康状态时,将部分数据请求调度给处于第一健康状态的缓存服务器,当初始缓存服务器处于第三健康状态时,将全部数据请求调度给处于第一健康状态的缓存服务器,使得缓存服务器不易出现瓶颈,另外,将数据请求由第二健康状态、第三健康状态的缓存服务器调度给第一健康状态的缓存服务器是自动的,不需要人为处理,进而降低了缓存服务器组的运维难度和运维成本。
进一步的,本实施例的缓存服务器的数据请求调度方法,还包括以下步骤:
M1.当缓存服务器的健康状态由第一健康状态进入第二健康状态后,开始计时,每隔一段时间往下调整最大次数阈值的值,直到所述缓存服务器的健康状态由第二健康状态进入第一健康状态。
正常情况下,如果对缓存服务器(处于第二健康状态,本实施例可以是2号缓存服务器)的数据请求进行处理条数限制(不大于最大次数阈值),那么一段时候后(例如,30秒,具体可以通过第一计时单元计时确定),缓存服务器的健康状态就会由第二健康状态自动返回第一健康状态。
但是,如果一段时间后,2号缓存服务器的健康状态并没有由第二健康状态返回第一健康状态,那么表示2号缓存服务器在一个数据请求处理周期内的数据请求的处理条数还是较为饱和,因此需要下调最大次数阈值的值,将最大次数阈值的值由10条改为9条。
最大次数阈值变化后,第一计时单元会重新计时,如果一段时间后(30秒),2号缓存服务器的健康状态仍旧没有从第二健康状态返回第一健康状态,那么继续下调最大次数阈值的值,将最大次数阈值的值由9条改为8条。最大次数阈值变化后,第一计时单元又重新计时,如果还没有到30秒,2号缓存服务器的健康状态就由第二健康状态进入第一健康状态了,那么步骤M1就结束了;否则,继续下调最大次数阈值的值,直到2号缓存服务器的健康状态由第二健康状态进入第一健康状态。
M2.当所述缓存服务器的健康状态由第二健康状态进入第一健康状态后,将所述缓存服务器进行标记以使对应缓存服务器处于不工作的第一健康状态。
2号缓存服务器刚刚由第二健康状态转为第一健康状态时,不能马上正常工作(即无限制地处理数据请求),而是需要先稳定一段时间,否则,2号缓存服务器很容易又回到第二健康状态。本实施例可以对刚刚由第二健康状态转为第一健康状态的2号缓存服务器进行标记。标记的方式可以是将2号缓存服务器的名称添加到标记列表。位于标记列表中的缓存服务器暂时不工作(即不处理数据请求)。
例如,本实施例获取得到一条新的数据请求,且该条数据请求的初始缓存服务器为4号缓存服务器(处于第三健康状态),那么需要从处于第一健康状态的1号缓存服务器、2号缓存服务器、3号缓存服务器、4号缓存服务器中选择一台缓存服务器进行数据请求处理。但是因为2号缓存服务器目前位于标记列表中,暂时不工作,所以需要将2号缓存服务器排除,只从1号缓存服务器、3号缓存服务器、4号缓存服务器中选择一台缓存服务器进行数据请求处理。
M3.在所述缓存服务器进行标记后,开始计时,一段时间后将所述缓存服务器的标记去除以使对应缓存服务器处于可工作的第一健康状态。
2号缓存服务器进行标记(即将2号缓存服务器的名称添加到标记列表)后,需要马上通过第二计时单元进行计时,一段时间后(例如,20秒),2号缓存服务器已经稳定,此时需要将2号缓存服务器的标记去除(即将2号缓存服务器的名称从标记列表中删除),2号缓存服务器能够正常工作(即处于可工作的第一健康状态)。
而第三健康状态的缓存服务器由于暂停处理后续的数据请求,所以在一段时间(具体时间不一定,不需要进行计时)后会自动转为第二健康状态。
本实施例的缓存服务器的数据请求调度方法,缓存服务器能够自动由第三健康状态转为第二健康状态,并能够通过调节最大次数阈值以及对缓存服务器标记的方式,使得缓存服务器能够自动高效地由第二健康状态恢复至第一健康状态,不需要人为处理,进而进一步降低了缓存服务器组的运维难度和运维成本。
进一步的,本实施例的缓存服务器的数据请求调度方法,还包括以下步骤:
Z1.连续向缓存服务器发送心跳包。例如,每隔1秒向缓存服务器发送1个心跳包。
Z2.接收对应缓存服务器对心跳包的响应信号。缓存服务器每接收到1个心跳包就会产生1个响应信号,对应的,每隔1秒就会接收到1个响应信号。
Z3.当连续多次未接收到响应信号时,判定对应缓存服务器不可用;否则,判定对应缓存服务器可用。正常情况下,每隔1秒就会接收到1个响应信号,如果连续3秒(即连续3次)都没有接收到响应信号,则说明对应的缓存服务器不可用(可能处于宕机状态),否则说明对应的缓存服务器是可用的。
本实施例在计算缓存服务器的健康值之前,需要先判定缓存服务器是否可用。如果某一缓存服务器的状态是不可用,则不需要计算它的健康值,可以直接在健康值统计表中将其健康值设定为2。如果缓存服务器的状态是可用,则正常计算对应缓存服务器的健康值,并将健康值更新至健康值统计表中。
假设本实施例的缓存服务器组有A缓存服务器,B缓存服务器,C缓存服务器和D缓存服务器四个。先判定A,B,C,D四个缓存服务器是否可用,假设B缓存服务器不可用,则B缓存服务器对应的健康值直接为2。然后分别计算A,C,D三个缓存服务器的健康值,假设A缓存服务器计算得到的健康值为0.6,C缓存服务器计算得到的健康值为0.8,D缓存服务器计算得到的健康值为1。那么,通过健康值统计表中的健康值,可以确定A缓存服务器处于可用且第一健康状态,B缓存服务器处于不可用状态,C缓存服务器可用且第二健康状态,D缓存服务器处于可用且第三健康状态。
例如,本实施例获取得到一条新的数据请求,且该条数据请求的初始缓存服务器为B缓存服务器,处于不可用状态,那么将该条数据请求改分配给处于可用且第一健康状态的A缓存服务器。
Z4.当缓存服务器不可用时,产生第一告警信息。当某一缓存服务器判定为不可用时,可以产生第一告警信息,以使相关运维人员尽早介入以对不可用的缓存服务器进行维护。如果不判定缓存服务器是否可用,那么对应缓存服务器通过计算得到的健康值很有可能为1,即判定对应的缓存服务器处于第三健康状态,但是由于对应的缓存服务器实际上是不可用的,所以即便不给该缓存服务器分配数据请求,它也不会自动由第三健康状态转为第二健康状态,即如果不人为介入,该缓存服务器就会长期处于第三健康状态,导致资源浪费。
本实施例的缓存服务器的数据请求调度方法,能够自动判定缓存服务器是否可用,如果不可用就省去了计算对应健康值的步骤,直接将数据请求调度给其他可用的且处于第一健康状态的缓存服务器,并能够通过第一告警信息让相关运维人员尽早介入,以使对应的缓存服务器能够尽快重新工作。
进一步的,本实施例的缓存服务器的数据请求调度方法,还包括以下步骤:
Y1.统计缓存服务器组中处于第三健康状态的缓存服务器的数量,当所述数量大于预设数量阈值时,产生第二告警信息。
预设数量阈值可以是缓存服务器组中缓存服务器总数量的40%,例如,当缓存服务器的总数量为5台时,预设数量阈值则为2;当缓存服务器的总数量为8台时,预设数量阈值则为3;当缓存服务器的总数量为13台时,预设数量阈值则为5。
本实施例中,当处于第三健康状态的缓存服务器的数量过多(即大于预设数量阈值)时,说明整个缓存服务器组的数据请求的处理数量过多,超出了缓存服务器组的负载能力,因此需要相关运维人员尽早介入以采取相应的解决措施。如果对处于第三健康状态的缓存服务器的数量过多的情况放任不管,那么缓存服务器组后期很可能会崩溃。到时候再进行维护的话,会大大增加缓存服务器组的运维难度和运维成本。
本实施例的缓存服务器的数据请求调度方法,能够在缓存服务器组超负载时通过第二告警信息让相关运维人员尽早介入,避免后期造成缓存服务器组崩溃而增大缓存服务器组的运维难度和运维成本。
实施例2:一种缓存服务器的数据请求调度***,用于执行实施例1中的数据请求调度方法,如图2所示,包括:健康值获取模块,健康状态确定模块,数据请求获取模块,初始缓存服务器确定模块和数据请求分配模块。
健康值获取模块用于获取缓存服务器组中每台缓存服务器的健康值。健康状态确定模块用于根据所述健康值确定对应缓存服务器的健康状态,所述健康状态包括第一健康状态、第二健康状态和第三健康状态。
其中,所述健康值获取模块包括:第一健康值计算单元,第二健康值计算单元,第三健康值计算单元和健康值计算单元。
第一健康值计算单元通过以下公式(1)计算得到第一健康值;
Figure SMS_53
(1)
其中,
Figure SMS_54
为缓存服务器中磁盘的IO使用率,/>
Figure SMS_55
为缓存服务器中磁盘的最大IO使用率,/>
Figure SMS_56
为缓存服务器中磁盘的最小IO使用率,/>
Figure SMS_57
为缓存服务器的第一健康值;
第二健康值计算单元通过以下公式(2)计算得到第二健康值;
Figure SMS_58
(2)
其中,
Figure SMS_59
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的情况占比,/>
Figure SMS_60
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最大情况占比,/>
Figure SMS_61
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最小情况占比,/>
Figure SMS_62
为缓存服务器的第二健康值;
第三健康值计算单元通过以下公式(3)计算得到第三健康值;
Figure SMS_63
(3)
其中,
Figure SMS_64
为缓存服务器的平均CPU使用率,c为经验常量,/>
Figure SMS_65
为缓存服务器的第三健康值;
健康值计算单元通过以下公式(4)计算得到健康值;
Figure SMS_66
(4)
其中,X为缓存服务器的健康值。
数据请求获取模块用于获取用户的数据请求。初始缓存服务器确定模块用于确定所述数据请求的初始缓存服务器。数据请求分配模块用于当所述初始缓存服务器的健康状态为第一健康状态时,将所述数据请求分配至所述初始缓存服务器;当所述初始缓存服务器的健康状态为第二健康状态时,确定所述初始缓存服务器在当前数据请求处理周期内的数据请求次数,当所述数据请求次数小于最大次数阈值时,将所述数据请求分配至所述初始缓存服务器;否则,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中;当所述初始缓存服务器的健康状态为第三健康状态时,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中。
本实施例的缓存服务器的数据请求调度***,能够自动确定初始缓存服务器的健康状态,当初始缓存服务器处于第二健康状态时,将部分数据请求调度给处于第一健康状态的缓存服务器,当初始缓存服务器处于第三健康状态时,将全部数据请求调度给处于第一健康状态的缓存服务器,使得缓存服务器不易出现瓶颈,另外,将数据请求由第二健康状态、第三健康状态的缓存服务器调度给第一健康状态的缓存服务器是自动的,不需要人为处理,进而降低了缓存服务器组的运维难度和运维成本。
进一步的,本实施例的缓存服务器的数据请求调度***,还包括:最大次数阈值调整模块,标记设置模块和标记去除模块。
最大次数阈值调整模块用于当缓存服务器的健康状态由第一健康状态进入第二健康状态后,开始计时,每隔一段时间往下调整最大次数阈值的值,直到所述缓存服务器的健康状态由第二健康状态进入第一健康状态。标记设置模块用于当所述缓存服务器的健康状态由第二健康状态进入第一健康状态后,将所述缓存服务器进行标记以使对应缓存服务器处于不工作的第一健康状态。标记去除模块用于在所述缓存服务器进行标记后,开始计时,一段时间后将所述缓存服务器的标记去除以使对应缓存服务器处于可工作的第一健康状态。
本实施例的缓存服务器的数据请求调度***,缓存服务器能够自动由第三健康状态转为第二健康状态,并能够通过调节最大次数阈值以及对缓存服务器标记的方式,使得缓存服务器能够自动高效地由第二健康状态恢复至第一健康状态,不需要人为处理,进而进一步降低了缓存服务器组的运维难度和运维成本。
进一步的,本实施例的缓存服务器的数据请求调度***,还包括:心跳包发送模块,响应信号接收模块,可用状态判定模块和第一告警信息产生模块。
心跳包发送模块用于连续向缓存服务器发送心跳包。响应信号接收模块用于接收对应缓存服务器对心跳包的响应信号。可用状态判定模块用于当连续多次未接收到响应信号时,判定对应缓存服务器不可用;否则,判定对应缓存服务器可用。第一告警信息产生模块用于当缓存服务器不可用时,产生第一告警信息。。
本实施例的缓存服务器的数据请求调度***,能够自动判定缓存服务器是否可用,如果不可用就省去了计算对应健康值的步骤,直接将数据请求调度给其他可用的且处于第一健康状态的缓存服务器,并能够通过第一告警信息让相关运维人员尽早介入,以使对应的缓存服务器能够尽快重新工作。
进一步的,本实施例的缓存服务器的数据请求调度***,还包括:第二告警信息产生模块,第二告警信息产生模块用于统计缓存服务器组中处于第三健康状态的缓存服务器的数量,当所述数量大于预设数量阈值时,产生第二告警信息。
本实施例的缓存服务器的数据请求调度***,能够在缓存服务器组超负载时通过第二告警信息让相关运维人员尽早介入,避免后期造成缓存服务器组崩溃而增大缓存服务器组的运维难度和运维成本。
虽然附图中显示了本说明书的某些实施例,然而应当理解的是,本说明书可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本说明书。应当理解的是,本说明书的附图及实施例仅用于示例性作用,并非用于限制本说明书的保护范围。

Claims (10)

1.一种缓存服务器的数据请求调度方法,包括以下步骤:
获取缓存服务器组中每台缓存服务器的健康值;
根据所述健康值确定对应缓存服务器的健康状态,所述健康状态包括第一健康状态、第二健康状态和第三健康状态;
获取用户的数据请求;
确定所述数据请求的初始缓存服务器;
当所述初始缓存服务器的健康状态为第一健康状态时,将所述数据请求分配至所述初始缓存服务器;
当所述初始缓存服务器的健康状态为第二健康状态时,确定所述初始缓存服务器在当前数据请求处理周期内的数据请求次数,当所述数据请求次数小于最大次数阈值时,将所述数据请求分配至所述初始缓存服务器;否则,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中;
当所述初始缓存服务器的健康状态为第三健康状态时,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中。
2.根据权利要求1所述的缓存服务器的数据请求调度方法,每台所述缓存服务器的健康值具体通过以下公式计算得到:
Figure QLYQS_1
(1)
其中,
Figure QLYQS_2
为缓存服务器中磁盘的IO使用率,/>
Figure QLYQS_3
为缓存服务器中磁盘的最大IO使用率,/>
Figure QLYQS_4
为缓存服务器中磁盘的最小IO使用率,/>
Figure QLYQS_5
为缓存服务器的第一健康值;
Figure QLYQS_6
(2)
其中,
Figure QLYQS_7
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的情况占比,/>
Figure QLYQS_8
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最大情况占比,/>
Figure QLYQS_9
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最小情况占比,/>
Figure QLYQS_10
为缓存服务器的第二健康值;
Figure QLYQS_11
(3)
其中,
Figure QLYQS_12
为缓存服务器的平均CPU使用率,c为经验常量,/>
Figure QLYQS_13
为缓存服务器的第三健康值;
Figure QLYQS_14
(4)
其中,X为缓存服务器的健康值。
3.根据权利要求1所述的缓存服务器的数据请求调度方法,还包括以下步骤:
当缓存服务器的健康状态由第一健康状态进入第二健康状态后,开始计时,每隔一段时间往下调整最大次数阈值的值,直到所述缓存服务器的健康状态由第二健康状态进入第一健康状态;
当所述缓存服务器的健康状态由第二健康状态进入第一健康状态后,将所述缓存服务器进行标记以使对应缓存服务器处于不工作的第一健康状态;
在所述缓存服务器进行标记后,开始计时,一段时间后将所述缓存服务器的标记去除以使对应缓存服务器处于可工作的第一健康状态。
4.根据权利要求1所述的缓存服务器的数据请求调度方法,还包括以下步骤:
连续向缓存服务器发送心跳包;
接收对应缓存服务器对心跳包的响应信号;
当连续多次未接收到响应信号时,判定对应缓存服务器不可用;否则,判定对应缓存服务器可用;
当缓存服务器不可用时,产生第一告警信息。
5.根据权利要求1所述的缓存服务器的数据请求调度方法,还包括以下步骤:
统计缓存服务器组中处于第三健康状态的缓存服务器的数量,当所述数量大于预设数量阈值时,产生第二告警信息。
6.一种缓存服务器的数据请求调度***,包括:
健康值获取模块,用于获取缓存服务器组中每台缓存服务器的健康值;
健康状态确定模块,用于根据所述健康值确定对应缓存服务器的健康状态,所述健康状态包括第一健康状态、第二健康状态和第三健康状态;
数据请求获取模块,用于获取用户的数据请求;
初始缓存服务器确定模块,用于确定所述数据请求的初始缓存服务器;
数据请求分配模块,用于当所述初始缓存服务器的健康状态为第一健康状态时,将所述数据请求分配至所述初始缓存服务器;
当所述初始缓存服务器的健康状态为第二健康状态时,确定所述初始缓存服务器在当前数据请求处理周期内的数据请求次数,当所述数据请求次数小于最大次数阈值时,将所述数据请求分配至所述初始缓存服务器;否则,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中;
当所述初始缓存服务器的健康状态为第三健康状态时,将所述数据请求分配至任意一健康状态为第一健康状态的缓存服务器中。
7.根据权利要求6所述的缓存服务器的数据请求调度***,所述健康值获取模块包括:
第一健康值计算单元,通过以下公式(1)计算得到第一健康值;
Figure QLYQS_15
(1)
其中,
Figure QLYQS_16
为缓存服务器中磁盘的IO使用率,/>
Figure QLYQS_17
为缓存服务器中磁盘的最大IO使用率,/>
Figure QLYQS_18
为缓存服务器中磁盘的最小IO使用率,/>
Figure QLYQS_19
为缓存服务器的第一健康值;
第二健康值计算单元,通过以下公式(2)计算得到第二健康值;
Figure QLYQS_20
(2)
其中,
Figure QLYQS_21
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的情况占比,/>
Figure QLYQS_22
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最大情况占比,/>
Figure QLYQS_23
为缓存服务器在一个采样周期内CPU空闲但有未完成的磁盘IO请求的最小情况占比,/>
Figure QLYQS_24
为缓存服务器的第二健康值;
第三健康值计算单元,通过以下公式(3)计算得到第三健康值;
Figure QLYQS_25
(3)
其中,
Figure QLYQS_26
为缓存服务器的平均CPU使用率,c为经验常量,/>
Figure QLYQS_27
为缓存服务器的第三健康值;
健康值计算单元,通过以下公式(4)计算得到健康值;
Figure QLYQS_28
(4)
其中,X为缓存服务器的健康值。
8.根据权利要求6所述的缓存服务器的数据请求调度***,还包括:
最大次数阈值调整模块,用于当缓存服务器的健康状态由第一健康状态进入第二健康状态后,开始计时,每隔一段时间往下调整最大次数阈值的值,直到所述缓存服务器的健康状态由第二健康状态进入第一健康状态;
标记设置模块,用于当所述缓存服务器的健康状态由第二健康状态进入第一健康状态后,将所述缓存服务器进行标记以使对应缓存服务器处于不工作的第一健康状态;
标记去除模块,用于在所述缓存服务器进行标记后,开始计时,一段时间后将所述缓存服务器的标记去除以使对应缓存服务器处于可工作的第一健康状态。
9.根据权利要求6所述的缓存服务器的数据请求调度***,还包括:
心跳包发送模块,用于连续向缓存服务器发送心跳包;
响应信号接收模块,用于接收对应缓存服务器对心跳包的响应信号;
可用状态判定模块,用于当连续多次未接收到响应信号时,判定对应缓存服务器不可用;否则,判定对应缓存服务器可用;
第一告警信息产生模块,用于当缓存服务器不可用时,产生第一告警信息。
10.根据权利要求6所述的缓存服务器的数据请求调度***,还包括:
第二告警信息产生模块,用于统计缓存服务器组中处于第三健康状态的缓存服务器的数量,当所述数量大于预设数量阈值时,产生第二告警信息。
CN202310630965.8A 2023-05-31 2023-05-31 一种缓存服务器的数据请求调度方法及*** Active CN116366657B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310630965.8A CN116366657B (zh) 2023-05-31 2023-05-31 一种缓存服务器的数据请求调度方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310630965.8A CN116366657B (zh) 2023-05-31 2023-05-31 一种缓存服务器的数据请求调度方法及***

Publications (2)

Publication Number Publication Date
CN116366657A true CN116366657A (zh) 2023-06-30
CN116366657B CN116366657B (zh) 2023-08-04

Family

ID=86923405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310630965.8A Active CN116366657B (zh) 2023-05-31 2023-05-31 一种缓存服务器的数据请求调度方法及***

Country Status (1)

Country Link
CN (1) CN116366657B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487607A (zh) * 2015-08-28 2017-03-08 中国电信股份有限公司 一种基于缓存服务器状态的重定向方法及重定向***
CN110336848A (zh) * 2019-04-23 2019-10-15 网宿科技股份有限公司 一种访问请求的调度方法及调度***、设备
CN111371866A (zh) * 2020-02-26 2020-07-03 厦门网宿有限公司 一种处理业务请求的方法和装置
CN112187575A (zh) * 2020-09-25 2021-01-05 杭州迪普科技股份有限公司 一种服务器健康状态的监测方法和装置
WO2021004063A1 (zh) * 2019-07-11 2021-01-14 网宿科技股份有限公司 一种缓存服务器的带宽调度方法及装置
CN114138625A (zh) * 2021-12-08 2022-03-04 中国工商银行股份有限公司 服务器健康状态的评估方法、***、电子设备和存储介质
CN116126618A (zh) * 2021-11-12 2023-05-16 中兴通讯股份有限公司 服务器状态控制方法、***及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487607A (zh) * 2015-08-28 2017-03-08 中国电信股份有限公司 一种基于缓存服务器状态的重定向方法及重定向***
CN110336848A (zh) * 2019-04-23 2019-10-15 网宿科技股份有限公司 一种访问请求的调度方法及调度***、设备
WO2021004063A1 (zh) * 2019-07-11 2021-01-14 网宿科技股份有限公司 一种缓存服务器的带宽调度方法及装置
US20210037089A1 (en) * 2019-07-11 2021-02-04 Wangsu Science & Technology Co., Ltd. Bandwidth scheduling method and device for cache server
CN111371866A (zh) * 2020-02-26 2020-07-03 厦门网宿有限公司 一种处理业务请求的方法和装置
CN112187575A (zh) * 2020-09-25 2021-01-05 杭州迪普科技股份有限公司 一种服务器健康状态的监测方法和装置
CN116126618A (zh) * 2021-11-12 2023-05-16 中兴通讯股份有限公司 服务器状态控制方法、***及存储介质
CN114138625A (zh) * 2021-12-08 2022-03-04 中国工商银行股份有限公司 服务器健康状态的评估方法、***、电子设备和存储介质

Also Published As

Publication number Publication date
CN116366657B (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
US7890620B2 (en) Monitoring system and monitoring method
CN110365765B (zh) 一种缓存服务器的带宽调度方法及装置
CN109246229A (zh) 一种分发资源获取请求的方法和装置
CN108023759B (zh) 自适应的资源调度方法和装置
CN113688001B (zh) 服务器硬盘功耗动态均衡方法、装置、终端及存储介质
JP2005018120A (ja) ネットワーク管理システムにおける機器情報の収集方法
CN111124829A (zh) 一种kubernetes计算节点状态监测方法
CN111865817A (zh) 遥测采集器负载均衡管控方法、装置、设备及存储介质
CN112887224B (zh) 流量调度处理方法、装置、电子设备及存储介质
CN116366657B (zh) 一种缓存服务器的数据请求调度方法及***
CN112000422B (zh) 一种防止容器编排框架中pod内存溢出的方法、装置
CN105357026B (zh) 一种资源信息收集方法和计算节点
CN109450672B (zh) 一种识别带宽需求突发的方法和装置
CN115051978B (zh) 设备监控实现方法及***
CN110381134B (zh) 调度方法、***、调度器及cdn***
CN111865722B (zh) 一种节点健康状态检测及处理方法
CN109271234B (zh) 一种监控信息收集方法、装置及设备
CN112019445A (zh) 用于智能设备流量控制的方法及装置、智能设备
CN113938482B (zh) 内容分发网络的调度方法、调度***、服务器及存储介质
CN110874430A (zh) 网络爬虫调度方法、装置及设备
CN114244903B (zh) 资源调度方法、***、服务器及存储介质
JP2004104173A (ja) オペレーションシステム、警報監視装置、及び警報監視方法
CN114844843B (zh) 应用实例数量的调整方法及装置
CN112737965B (zh) 解决并发访问网元受限问题的方法、***及计算机可读存储介质
CN112533004B (zh) 一种节目信息发布方法、***、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant