CN113419879B - 消息处理方法、装置、设备及存储介质 - Google Patents
消息处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113419879B CN113419879B CN202110776341.8A CN202110776341A CN113419879B CN 113419879 B CN113419879 B CN 113419879B CN 202110776341 A CN202110776341 A CN 202110776341A CN 113419879 B CN113419879 B CN 113419879B
- Authority
- CN
- China
- Prior art keywords
- page
- target data
- consumers
- time period
- preset time
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供一种消息处理方法、装置、设备及存储介质,涉及数据处理技术领域。该方法包括:获取消息队列的多个消费者的消费参数;在所述多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且所述页缓存的空间被占满的情况下,根据所述多个消费者的消费参数获得所述目标数据页在预设时间段的预测访问次数;至少根据所述目标数据页在所述预设时间段的预测访问次数判断是否将所述目标数据页移入所述页缓存;在判定不将所述目标数据页移入所述页缓存的情况下,使所述目标消费者从磁盘上读取所述目标数据页。该方法减轻了消息中间件的页缓存污染。
Description
技术领域
本公开涉及数据处理技术领域,具体而言,涉及一种消息处理方法、装置、设备及可读存储介质。
背景技术
消息中间件是基于队列与消息传递技术,在网络环境中为应用***提供同步或异步、可靠的消息传输的支撑性软件***。目前开源的消息中间件产品通常从页缓存读写数据,相对于从磁盘上读写数据实现消息存取的加速。但在多消费者、不同消费速度的复杂情况下,例如出现某个消费者出现消息滞后的情况,可能会导致页缓存污染的问题,频繁的换页操作使得性能大幅降低,而且增大了磁盘输入输出(Input Output,IO)读写访问压力。
如上所述,如何减轻消息中间件的页缓存污染成为亟待解决的问题。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种消息处理方法、装置、设备及可读存储介质,至少在一定程度上减轻消息中间件的页缓存污染。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提供一种消息处理方法,包括:获取消息队列的多个消费者的消费参数;在所述多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且所述页缓存的空间被占满的情况下,根据所述多个消费者的消费参数获得所述目标数据页在预设时间段的预测访问次数;至少根据所述目标数据页在所述预设时间段的预测访问次数判断是否将所述目标数据页移入所述页缓存;在判定不将所述目标数据页移入所述页缓存的情况下,使所述目标消费者从磁盘上读取所述目标数据页。
根据本公开的一实施例,所述方法还包括:在所述目标消费者待读取的目标数据页不在页缓存中,并且所述页缓存的空间被占满的情况下,获取所述页缓存的当前最近最少使用LRU页;根据所述多个消费者的消费参数获得所述当前LRU页在所述预设时间段的预测访问次数;所述至少根据所述目标数据页在所述预设时间段的预测访问次数判断是否将所述目标数据页移入所述页缓存包括:在所述目标数据页在所述预设时间段的预测访问次数小于所述当前LRU页在所述预设时间段的预测访问次数的情况下,判定不将所述目标数据页移入所述页缓存。
根据本公开的一实施例,所述多个消费者的消费参数包括所述多个消费者中各个消费者在所述消息队列中的当前偏移量和消费速度;所述获取所述页缓存的当前最近最少使用LRU页包括:获取所述当前LRU页在所述消息队列中的索引位置;所述根据所述多个消费者的消费参数获得所述当前LRU页在所述预设时间段的预测访问次数包括:获得所述多个消费者中的当前偏移量小于所述当前LRU页在所述消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于所述当前LRU页在所述消息队列中的索引位置的消费者的个数,作为所述当前LRU页在所述预设时间段的预测访问次数。
根据本公开的一实施例,所述多个消费者的消费参数包括所述多个消费者中各个消费者在所述消息队列中的当前偏移量和消费速度;所述根据所述多个消费者的消费参数获得所述目标数据页在预设时间段的预测访问次数包括:根据所述多个消费者在所述消息队列中的当前偏移量获得所述目标数据页在所述消息队列中的索引位置;获得所述多个消费者中的当前偏移量小于所述目标数据页在所述消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于所述目标数据页在所述消息队列中的索引位置的消费者的个数,作为所述目标数据页在所述预设时间段的预测访问次数。
根据本公开的一实施例,所述至少根据所述目标数据页在所述预设时间段的预测访问次数判断是否将所述目标数据页移入所述页缓存还包括:在所述目标数据页在所述预设时间段的预测访问次数不小于所述当前LRU页在所述预设时间段的预测访问次数的情况下,判定将所述目标数据页移入所述页缓存。
根据本公开的一实施例,所述方法还包括:获取磁盘输入输出指标的采集数据;根据所述磁盘输入输出指标的采集数据获得所述预设时间段。
根据本公开的一实施例,所述根据所述磁盘输入输出指标数据获得所述预设时间段包括:根据所述磁盘输入输出指标的采集数据对所述预设时间段进行动态调整,使所述磁盘输入输出指标中的磁盘占用指标和消费速度指标为预设状态。
根据本公开的再一方面,提供一种消息处理装置,包括:消息队列指标采集模块,用于获取消息队列的多个消费者的消费参数;预测指标获得模块,用于在所述多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且所述页缓存的空间被占满的情况下,根据所述多个消费者的消费参数获得所述目标数据页在预设时间段的预测访问次数;决策模块,用于至少根据所述目标数据页在所述预设时间段的预测访问次数判断是否将所述目标数据页移入所述页缓存;执行模块,用于在判定不将所述目标数据页移入所述页缓存的情况下,使所述目标消费者从磁盘上读取所述目标数据页。
根据本公开的一实施例,所述装置还包括:LRU页获取模块,用于在所述目标消费者待读取的目标数据页不在页缓存中,并且所述页缓存的空间被占满的情况下,获取所述页缓存的当前最近最少使用LRU页;第一计算模块,用于根据所述多个消费者的消费参数获得所述当前LRU页在所述预设时间段的预测访问次数;所述决策模块,还用于:在所述目标数据页在所述预设时间段的预测访问次数小于所述当前LRU页在所述预设时间段的预测访问次数的情况下,判定不将所述目标数据页移入所述页缓存。
根据本公开的一实施例,所述多个消费者的消费参数包括所述多个消费者中各个消费者在所述消息队列中的当前偏移量和消费速度;所述LRU页获取模块,还用于:获取所述当前LRU页在所述消息队列中的索引位置;所述第一计算模块,还用于:获得所述多个消费者中的当前偏移量小于所述当前LRU页在所述消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于所述当前LRU页在所述消息队列中的索引位置的消费者的个数,作为所述当前LRU页在所述预设时间段的预测访问次数。
根据本公开的一实施例,所述多个消费者的消费参数包括所述多个消费者中各个消费者在所述消息队列中的当前偏移量和消费速度;所述预测指标获得模块包括:目标数据页位置获得模块,用于根据所述多个消费者在所述消息队列中的当前偏移量获得所述目标数据页在所述消息队列中的索引位置;第二计算模块,用于获得所述多个消费者中的当前偏移量小于所述目标数据页在所述消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于所述目标数据页在所述消息队列中的索引位置的消费者的个数,作为所述目标数据页在所述预设时间段的预测访问次数。
根据本公开的一实施例,所述决策模块,还用于:在所述目标数据页在所述预设时间段的预测访问次数不小于所述当前LRU页在所述预设时间段的预测访问次数的情况下,判定将所述目标数据页移入所述页缓存。
根据本公开的一实施例,所述装置还包括:磁盘指标数据获取模块,用于获取磁盘输入输出指标的采集数据;参数调整模块,用于根据所述磁盘输入输出指标的采集数据获得所述预设时间段。
根据本公开的一实施例,所述参数调整模块,还用于:根据所述磁盘输入输出指标的采集数据对所述预设时间段进行动态调整,使所述磁盘输入输出指标中的磁盘占用指标和消费速度指标为预设状态。
根据本公开的再一方面,提供一种设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现如上述任一种方法。
根据本公开的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上述任一种方法。
本公开的实施例提供的消息处理方法,在多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且页缓存的空间被占满的情况下,根据多个消费者的消费参数获得目标数据页在预设时间段的预测访问次数,然后至少根据目标数据页在预设时间段的预测访问次数判断是否将目标数据页移入页缓存,在判定不将目标数据页移入页缓存的情况下,使目标消费者从磁盘上读取目标数据页,通过根据待读取的目标数据页的根据消费者的消费参数获得的预测访问次数来判断是否移入页缓存,从而可实现对进入页缓存的数据页进行控制,一定程度上减轻了消息中间件的页缓存污染。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1示出了相关技术中的页缓存的换页策略示意图。
图2示出本公开实施例中一种***结构的示意图。
图3示出本公开实施例中一种消息处理方法的流程图。
图4示出了本公开实施例提供的消息处理方法应用到图1的场景中的示意图。
图5是根据一示例性实施例示出的一种页缓存判断方法的流程图。
图6是根据一示例性实施例示出的一种参数优化方法的流程图。
图7是根据图3至图6示出的一种IO预测与控制方法的流程图。
图8是根据图3至图7示出的一种IO预测与控制***的结构框图。
图9示出本公开实施例中一种消息处理装置的框图。
图10示出本公开实施例中另一种消息处理装置的框图。
图11示出本公开实施例中一种电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。符号“/”一般表示前后关联对象是一种“或”的关系。
在本公开中,除非另有明确的规定和限定,“连接”等术语应做广义理解,例如,可以是电连接或可以互相通讯;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
如上所述,在多消费者、不同消费速度的复杂情况下,可能会出现某个消费者出现消息滞后的情况。图1示出了相关技术中的页缓存的换页策略示意图。如图1所示,消息中间件在磁盘的某个分区进行读取,其中数据链表所在的初始位置标识为0,标号1-9表示各位置的偏移量亦即位置标识。该消息中间件目前有生产者,消费者1、消费者2、消费者3和消费者4,生产者最新写入的消息存储在位置9,消费者编号越大表示越早开始读取位置0上的数据。t表示自上次该位置被访问以来截至当前时间所经历的时间,t4>t3>t2>t1。在当前时间,消费者4读取位置为9,消费者2读取位置为7,消费者1读取位置为6,在之前某一时刻,消费者3由于某些原因发生故障,出现了消息滞后的情况。在当前时刻,消费者3恢复,当前读取位置为1,消费落后其他消费者很多。假设页缓存只能缓存4个数据页内容,目前页缓存中的数据页为位置6、7、8、9的数据页,而消费者3读取的位置1的数据页需要进入页缓存,但此时页缓存已满。根据相关技术中采用的最近最少使用(Least Recently Used,LRU)原则,位置8的数据页为LRU页,则把位置8的数据页移出页缓存,将消费者3读取的位置1的数据页移入数据页。然而,在后续消费者1和2访问到位置8的数据页时,将促发的新的换页,而反复交替换页会大幅增加磁盘IO读取、降低性能,只能通过增加磁盘存储访问能力来保障产品的服务基本协议(Service-Level Agreement,SLA)性能指标。
因此,本公开提供了一种消息处理方法,通过根据待读取的目标数据页的根据消费者的消费参数获得的预测访问次数来判断是否移入页缓存,从而可实现对进入页缓存的数据页进行控制,一定程度上减轻了消息中间件的页缓存污染。
图2示出了可以应用本公开的消息处理方法或消息处理装置的示例性***架构20。
如图2所示,***架构20可以包括终端设备202、网络204和服务器206。终端设备202可以是具有显示屏并且支持输入、输出的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、虚拟现实设备、智能家居等等。网络204用以在终端设备202和服务器206之间提供通信链路的介质。网络204可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。服务器206可以是提供各种服务的服务器或服务器集群等,例如消息中间件主、从数据库服务器、生产者服务器集群、消费者服务器集群等等。
用户可以使用终端设备202通过网络204与服务器206交互,以接收或发送数据等。例如用户使用终端设备202通过网络204获取消息中间件服务器的运维数据,进行分析获得SLA指标。再例如用户通过终端设备202上的软件经由网络204对生产者服务器集群、消费者服务器集群进行管理。多个服务器206之间也可以通过网络204进行交互,例如生产者服务器集群向消息中间件服务器写入数据、消费者服务器集群从消息中间件服务器读取数据等等。
应该理解,图2中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图3是根据一示例性实施例示出的一种消息处理方法的流程图。如图3所示的方法例如可以应用于上述***的服务器端,也可以应用于上述***的终端设备。
参考图3,本公开实施例提供的方法30可以包括以下步骤。
在步骤S302中,获取消息队列的多个消费者的消费参数。
在一些实施例中,例如,消费者的消费参数可以包括消费者在消息队列中的当前偏移量和消费速度。以图1为例,消费者1的当前偏移量是6,消费者2的当前偏移量是7,以此类推。消费者的消费速度为消费者在单位时间内读取的页数。
在一些实施例中,例如,消息队列可以是Kafka(卡夫卡)消息中间件组件。
在步骤S304中,在多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且页缓存的空间被占满的情况下,根据多个消费者的消费参数获得目标数据页在预设时间段的预测访问次数。
在一些实施例中,图4示出了本公开实施例提供的消息处理方法应用到图1的场景中的示意图。如图4所示,对照图1,在之前某一时刻,消费者3(目标消费者)由于某些原因发生故障,出现了消息滞后的情况。在当前时刻,消费者3恢复,当前读取位置为1(待读取的目标数据页),消费落后其他消费者很多。假设页缓存只能缓存4个数据页内容,目前页缓存中的数据页为位置6、7、8、9的数据页,而消费者3读取的位置1的数据页需要进入页缓存,但此时页缓存已满。根据相关技术中采用的最近最少使用(Least Recently Used,LRU)原则,获得LRU页。本公开实施例提供的消息处理方法可通过图4中的IO预测与控制***实施,图4中的IO预测与控制***的组成模块的具体实施方式可参照图8。IO预测与控制***可实时获取各个消费者的消费参数,然后可根据消费者1-4的当前偏移量和消费速度,对在预设时间段内位置1的页和位置8的页的访问次数进行预测,例如图4中位置8的页在预设时间段内会被消费者1和消费者2访问,而位置1的页在预设时间段内不会被访问。具体实施方式可参照图5。
在另一些实施例中,也可仅采用上述方法获取待读取的目标数据页在预设时间段的预测访问次数,然后在其小于预设阈值时直接判定不将其移入页缓存。
在步骤S306中,至少根据目标数据页在预设时间段的预测访问次数判断是否将目标数据页移入页缓存。
在一些实施例中,以图4为例,选取预测访问次数较大的位置8的页进入页缓存。
在另一些实施例中,也可在待读取的目标数据页在预设时间段的预测访问次数小于预设阈值(例如可为1、2或3等等)时直接判定不将其移入页缓存。
在步骤S308中,在判定不将目标数据页移入页缓存的情况下,使目标消费者从磁盘上读取目标数据页。
在一些实施例中,例如,可通过图4中的IO预测与控制***,其中的执行模块将会代理文件***的IO操作,使用Direct IO(直接IO)的方式直接进行磁盘访问,读取目标数据页。
在一些实施例中,例如,在判定将目标数据页移入页缓存的情况下,将目标数据页移入页缓存,使目标消费者从页缓存读取目标数据页。
根据本公开实施例提供的消息处理方法,在多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且页缓存的空间被占满的情况下,根据多个消费者的消费参数获得目标数据页在预设时间段的预测访问次数,然后至少根据目标数据页在预设时间段的预测访问次数判断是否将目标数据页移入页缓存,在判定不将目标数据页移入页缓存的情况下,使目标消费者从磁盘上读取目标数据页。通过实现高频数据顺序读写、低频数据随机读写的策略,消除页缓存污染问题,降低不同速度消费者对消息队列整体速度的影响,进而分级保证了业务的处理能力和速度。
图5是根据一示例性实施例示出的一种页缓存判断方法的流程图。如图5所示的方法例如可以应用于上述***的服务器端,也可以应用于上述***的终端设备。图5为图3中根据目标数据页与当前LRU页在预设时间段的预测访问次数的比较情况来判断是否进入页缓存的实施方式。
参考图5,本公开实施例提供的方法50可以包括以下步骤。
在步骤S502中,获取消息队列的多个消费者的消费参数。
在一些实施例中,例如,消息队列各项数据可以包括各个消费者当前位置(lo1,…,lon),n为消费者的总数,n为正整数,消费速度(v1,…,vn),以及磁盘IO数据(diskIO,Dio),其中消费者位置为相对起始位置的偏移量大小,并按照从小到大进行排序。
在步骤S504中,在多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且页缓存的空间被占满的情况下,获取页缓存的当前最近最少使用LRU页。
在一些实施例中,例如,可以获取当前LRU页在消息队列中的索引位置,即在页缓存中通过LRU算法获得的最可能会被换出的页的索引位置loLRU。
在步骤S506中,根据多个消费者的消费参数获得目标数据页在预设时间段的预测访问次数和当前LRU页在预设时间段的预测访问次数。
在一些实施例中,可以根据多个消费者在消息队列中的当前偏移量获得目标数据页在消息队列中的索引位置,获得多个消费者中的当前偏移量小于目标数据页在消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于目标数据页在消息队列中的索引位置的消费者的个数,作为目标数据页在预设时间段的预测访问次数;获得多个消费者中的当前偏移量小于当前LRU页在消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于当前LRU页在消息队列中的索引位置的消费者的个数,作为当前LRU页在预设时间段的预测访问次数。
在一些实施例中,例如,设置初始预设时间段t值,消费者所读取数据页在未来时间段t内的预测访问次数(RC,read count)可由如下方式计算得到:对于消费者a∈[1,n],同时满足条件1)消费者i当前读取页的偏移量小于消费者a;2)(loa-loi)/vi<t,i∈[1,a]的i的个数,记为RCa。由此,可以计算出所有n个消费者的当前访问数据页在该未来时间段t内的预测访问次数,记为(RC1,…,RCn),以及当前LRU页的可能访问次数RCLRU。
在步骤S508中,在目标数据页在预设时间段的预测访问次数小于当前LRU页在预设时间段的预测访问次数的情况下,判定不将目标数据页移入页缓存。
在步骤S510中,在目标数据页在预设时间段的预测访问次数不小于当前LRU页在预设时间段的预测访问次数的情况下,判定将目标数据页移入页缓存。
在一些实施例中,例如,针对每个消费者,对比在当前时刻得到的RCi和RCLRU。若RCi<RCLRU,表明该数据页比LRU页在未来一段时间内有更少的访问次数,因此无须换页,该消费者通过IO代理模块直接进行磁盘读取,否则进行正常访问。
根据本公开实施例提供的是否进入页缓存的判断方法,结合消息队列时序访问数据的特性,建立IO控制与预测***,当消息队列在多消费者、不同消费速度等复杂情况下,根据消费者相关数据来决策得到消费者的IO代理模式,从而使低频数据页通过Direct IO的方式直接访问磁盘,避免对高频页缓存的污染,实现高频数据顺序读写、低频数据随机读写策略。
图6是根据一示例性实施例示出的一种参数优化方法的流程图。如图6所示的方法例如可以应用于上述***的服务器端,也可以应用于上述***的终端设备。
参考图6,本公开实施例提供的方法60可以包括以下步骤。
在步骤S602中,获取磁盘输入输出指标的采集数据。
在一些实施例中,以图4为例,图4中的IO预测与控制***中的指标采集模块可在采集消息队列相关数据的同时,获得磁盘IO等***数据,并上报分析决策模块。
在步骤S604中,根据磁盘输入输出指标的采集数据获得预设时间段。
在一些实施例中,根据磁盘输入输出指标的采集数据对预设时间段进行动态调整,使磁盘输入输出指标中的磁盘占用指标和消费速度指标为预设状态。例如,不同的预设时间段t的取值会决定访问次数(RC)的值,并最终影响消费者IO代理方案的确定,图4中的IO预测与控制***中的决策单元根据反馈的磁盘IO数据动态调整t的取值,使磁盘IO数据达到最少,消费速度达到最佳状态。
根据本公开实施例提供的参数优化方法,动态调整决策模型实现高频消费者缓存读写、低频消费者磁盘读写的IO访问策略,以求达到最低的磁盘占用和最佳的消费速度,解决在实际生产环境中的页缓存污染问题,改善运行效果。当消费速度受到影响时会自动介入处理,不需要人工解决慢消费者问题,同时也节省了为保证速度的额外的硬件开销,节省了资源。
图7是根据图3至图6示出的一种IO预测与控制方法的流程图。图7所示的IO预测与控制方法可由图8所示的IO预测与控制***实施。如图7所示,首先,指标采集模块采集消息队列相关数据、磁盘IO等***数据并上报分析决策模块(S702),计算单元根据上传数据计算每个消费者的预测指标值,例如每个消费者当前读取页在预设时间段的预测访问次数,然后决策单元根据决策模型决定当前各消费者的IO代理策略方案(S704)。然后执行策略方案(S706),并根据反馈磁盘IO数据,检测是否为最佳消费状态(S708),根据检测结果动态调整模型参数,优化代理策略(S710),直至最佳状态。
图8是根据图3至图7示出的一种IO预测与控制***的结构框图。参考图8,本公开实施例提供的装置80可以包括指标采集模块802、分析决策模块804和执行模块806,其中指标采集模块802可以包括消息队列采集单元8022和***指标采集单元8024,分析决策模块804可以包括计算单元8042和决策单元8044。
指标采集模块802可用于采集各项页缓存评价指标以及消息队列相关指标数据,并上报分析决策模块804。
消息队列采集单元8022可用于采集消息队列消费者消费位置、消费速度等指标。
***指标采集单元8024可用于采集页缓存LRU页的索引位置和磁盘IO指标。
分析决策模块804可用于根据采集数据做出决策,并根据反馈的IO数据动态调整直至最佳。
计算单元8042可用于计算一段时间内预测指标值,例如预测访问次数。
决策单元8044可用于根据决策模型计算结果,并根据反馈数据动态调整至最佳状态。
执行模块806可用于代理文件***的IO操作,该模块使用Direct IO的方式直接操作磁盘。
图9是根据一示例性实施例示出的一种消息处理装置的框图。如图9所示的装置例如可以应用于上述***的服务器端,也可以应用于上述***的终端设备。
参考图9,本公开实施例提供的装置90可以包括消息队列指标采集模块902、预测指标获得模块904、决策模块906和执行模块908。
消息队列指标采集模块902可用于获取消息队列的多个消费者的消费参数。
预测指标获得模块904可用于在多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且页缓存的空间被占满的情况下,根据多个消费者的消费参数获得目标数据页在预设时间段的预测访问次数。
决策模块906可用于至少根据目标数据页在预设时间段的预测访问次数判断是否将目标数据页移入页缓存。
执行模块908可用于在判定不将目标数据页移入页缓存的情况下,使目标消费者从磁盘上读取目标数据页。
图10是根据一示例性实施例示出的另一种消息处理装置的框图。如图10所示的装置例如可以应用于上述***的服务器端,也可以应用于上述***的终端设备。
参考图10,本公开实施例提供的装置100可以包括消息队列指标采集模块1002、LRU页获取模块1003、预测指标获得模块1004、第一计算模块1005、决策模块1006、执行模块1008、磁盘指标数据获取模块10010和参数调整模块10012,其中,预测指标获得模块1004可以包括目标数据页位置获得模块10042和第二计算模块10044。
消息队列指标采集模块1002可用于获取消息队列的多个消费者的消费参数。多个消费者的消费参数包括多个消费者中各个消费者在消息队列中的当前偏移量和消费速度。
LRU页获取模块1003可用于在目标消费者待读取的目标数据页不在页缓存中,并且页缓存的空间被占满的情况下,获取页缓存的当前最近最少使用LRU页。
LRU页获取模块1003还可用于获取当前LRU页在消息队列中的索引位置。
预测指标获得模块1004可用于在多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且页缓存的空间被占满的情况下,根据多个消费者的消费参数获得目标数据页在预设时间段的预测访问次数。
目标数据页位置获得模块10042可用于根据多个消费者在消息队列中的当前偏移量获得目标数据页在消息队列中的索引位置。
第二计算模块10044可用于获得多个消费者中的当前偏移量小于目标数据页在消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于目标数据页在消息队列中的索引位置的消费者的个数,作为目标数据页在预设时间段的预测访问次数。
第一计算模块1005可用于根据多个消费者的消费参数获得当前LRU页在预设时间段的预测访问次数。
第一计算模块1005还可用于获得多个消费者中的当前偏移量小于当前LRU页在消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于当前LRU页在消息队列中的索引位置的消费者的个数,作为当前LRU页在预设时间段的预测访问次数。
决策模块1006可用于至少根据目标数据页在预设时间段的预测访问次数判断是否将目标数据页移入页缓存。
决策模块1006还可用于在目标数据页在预设时间段的预测访问次数小于当前LRU页在预设时间段的预测访问次数的情况下,判定不将目标数据页移入页缓存。
决策模块1006还可用于在目标数据页在预设时间段的预测访问次数不小于当前LRU页在预设时间段的预测访问次数的情况下,判定将目标数据页移入页缓存。
执行模块1008可用于在判定不将目标数据页移入页缓存的情况下,使目标消费者从磁盘上读取目标数据页。
磁盘指标数据获取模块10010可用于获取磁盘输入输出指标的采集数据。
参数调整模块10012可用于根据磁盘输入输出指标的采集数据获得预设时间段。
参数调整模块10012还可用于根据磁盘输入输出指标的采集数据对预设时间段进行动态调整,使磁盘输入输出指标中的磁盘占用指标和消费速度指标为预设状态。
本公开实施例提供的装置中的各个模块的具体实现可以参照上述方法中的内容,此处不再赘述。
图11示出本公开实施例中一种电子设备的结构示意图。需要说明的是,图11示出的设备仅以计算机***为示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,设备1100包括中央处理单元(CPU)1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。在RAM 1103中,还存储有设备1100操作所需的各种程序和数据。CPU1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本公开的***中限定的上述功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括消息队列指标采集模块、预测指标获得模块、决策模块和执行模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如消息队列指标采集模块还可以被描述为“采集消息队列消费指标的模块”。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
获取消息队列的多个消费者的消费参数;在多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且页缓存的空间被占满的情况下,根据多个消费者的消费参数获得目标数据页在预设时间段的预测访问次数;至少根据目标数据页在预设时间段的预测访问次数判断是否将目标数据页移入页缓存;在判定不将目标数据页移入页缓存的情况下,使目标消费者从磁盘上读取目标数据页。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (10)
1.一种消息处理方法,其特征在于,包括:
获取消息队列的多个消费者的消费参数;
在所述多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且所述页缓存的空间被占满的情况下,根据所述多个消费者的消费参数获得所述目标数据页在预设时间段的预测访问次数;
至少根据所述目标数据页在所述预设时间段的预测访问次数判断是否将所述目标数据页移入所述页缓存;
在判定不将所述目标数据页移入所述页缓存的情况下,使所述目标消费者从磁盘上读取所述目标数据页。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述目标消费者待读取的目标数据页不在页缓存中,并且所述页缓存的空间被占满的情况下,获取所述页缓存的当前LRU页;
根据所述多个消费者的消费参数获得所述当前LRU页在所述预设时间段的预测访问次数;
所述至少根据所述目标数据页在所述预设时间段的预测访问次数判断是否将所述目标数据页移入所述页缓存包括:
在所述目标数据页在所述预设时间段的预测访问次数小于所述当前LRU页在所述预设时间段的预测访问次数的情况下,判定不将所述目标数据页移入所述页缓存。
3.根据权利要求2所述的方法,其特征在于,所述多个消费者的消费参数包括所述多个消费者中各个消费者在所述消息队列中的当前偏移量和消费速度;
所述获取所述页缓存的当前LRU页包括:
获取所述当前LRU页在所述消息队列中的索引位置;
所述根据所述多个消费者的消费参数获得所述当前LRU页在所述预设时间段的预测访问次数包括:
获得所述多个消费者中的当前偏移量小于所述当前LRU页在所述消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于所述当前LRU页在所述消息队列中的索引位置的消费者的个数,作为所述当前LRU页在所述预设时间段的预测访问次数。
4.根据权利要求2所述的方法,其特征在于,所述多个消费者的消费参数包括所述多个消费者中各个消费者在所述消息队列中的当前偏移量和消费速度;
所述根据所述多个消费者的消费参数获得所述目标数据页在预设时间段的预测访问次数包括:
根据所述多个消费者在所述消息队列中的当前偏移量获得所述目标数据页在所述消息队列中的索引位置;
获得所述多个消费者中的当前偏移量小于所述目标数据页在所述消息队列中的索引位置的消费者中,消费速度与预设时间段的乘积与当前偏移量的和大于所述目标数据页在所述消息队列中的索引位置的消费者的个数,作为所述目标数据页在所述预设时间段的预测访问次数。
5.根据权利要求2所述的方法,其特征在于,所述至少根据所述目标数据页在所述预设时间段的预测访问次数判断是否将所述目标数据页移入所述页缓存还包括:
在所述目标数据页在所述预设时间段的预测访问次数不小于所述当前LRU页在所述预设时间段的预测访问次数的情况下,判定将所述目标数据页移入所述页缓存。
6.根据权利要求1所述的方法,其特征在于,还包括:
获取磁盘输入输出指标的采集数据;
根据所述磁盘输入输出指标的采集数据获得所述预设时间段。
7.根据权利要求6所述的方法,其特征在于,所述根据所述磁盘输入输出指标数据获得所述预设时间段包括:
根据所述磁盘输入输出指标的采集数据对所述预设时间段进行动态调整,使所述磁盘输入输出指标中的磁盘占用指标和消费速度指标为预设状态。
8.一种消息处理装置,其特征在于,包括:
消息队列指标采集模块,用于获取消息队列的多个消费者的消费参数;
预测指标获得模块,用于在所述多个消费者中的目标消费者待读取的目标数据页不在页缓存中,并且所述页缓存的空间被占满的情况下,根据所述多个消费者的消费参数获得所述目标数据页在预设时间段的预测访问次数;
决策模块,用于至少根据所述目标数据页在所述预设时间段的预测访问次数判断是否将所述目标数据页移入所述页缓存;
执行模块,用于在判定不将所述目标数据页移入所述页缓存的情况下,使所述目标消费者从磁盘上读取所述目标数据页。
9.一种电子设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,其特征在于,所述处理器执行所述可执行指令时实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110776341.8A CN113419879B (zh) | 2021-07-09 | 2021-07-09 | 消息处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110776341.8A CN113419879B (zh) | 2021-07-09 | 2021-07-09 | 消息处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419879A CN113419879A (zh) | 2021-09-21 |
CN113419879B true CN113419879B (zh) | 2023-08-04 |
Family
ID=77720739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110776341.8A Active CN113419879B (zh) | 2021-07-09 | 2021-07-09 | 消息处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419879B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426553A (zh) * | 2011-11-11 | 2012-04-25 | 中国科学技术大学 | 基于双缓存预读的向用户传输数据的方法和装置 |
CN103595761A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于分布式文件***的数据处理方法和服务器 |
CN107666509A (zh) * | 2017-08-28 | 2018-02-06 | 深圳市诚壹科技有限公司 | 缓存控制方法及服务器 |
CN110688254A (zh) * | 2019-09-06 | 2020-01-14 | 北京达佳互联信息技术有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509404B2 (en) * | 2000-03-08 | 2009-03-24 | Oracle International Corporation | Methods and systems for partial page caching of dynamically generated content |
-
2021
- 2021-07-09 CN CN202110776341.8A patent/CN113419879B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426553A (zh) * | 2011-11-11 | 2012-04-25 | 中国科学技术大学 | 基于双缓存预读的向用户传输数据的方法和装置 |
CN103595761A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于分布式文件***的数据处理方法和服务器 |
CN107666509A (zh) * | 2017-08-28 | 2018-02-06 | 深圳市诚壹科技有限公司 | 缓存控制方法及服务器 |
CN110688254A (zh) * | 2019-09-06 | 2020-01-14 | 北京达佳互联信息技术有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
移动计算中一种基于最小代价的语义缓存替换算法;李智超等;《小型微型计算机***》;第1506-1508页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113419879A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194647B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN109756230B (zh) | 数据压缩存储方法、数据压缩方法、装置、设备及介质 | |
CN104424106B (zh) | 为存储优化操作分配存储设备的资源的方法和*** | |
KR20120102664A (ko) | 미래 사용 추정에 기반한 저장 메모리 할당 | |
CN113391765A (zh) | 基于分布式存储***的数据存储方法、装置、设备及介质 | |
CN107729570B (zh) | 用于服务器的数据迁移方法和装置 | |
CN113485649B (zh) | 数据存储方法、***、装置、介质与电子设备 | |
CN111367687A (zh) | 进程间数据通信方法和装置 | |
US10108522B1 (en) | Sampling technique to adjust application sampling rate | |
CN111881358B (zh) | 一种对象推荐***、方法、装置、电子设备和存储介质 | |
CN111383100A (zh) | 基于风险模型的全生命周期管控方法和装置 | |
CN109413694B (zh) | 一种基于内容流行度预测的小小区缓存方法及装置 | |
CN111970205A (zh) | 网关接口流量控制方法及*** | |
CN114721835A (zh) | 边缘数据中心服务器能耗预测方法、***、设备及介质 | |
CN111917661A (zh) | 数据传输方法、装置、电子设备和计算机可读存储介质 | |
CN115454637A (zh) | 图像渲染方法、装置、设备和介质 | |
CN113114540B (zh) | 一种带宽预测器的设置、服务调整方法及相关装置 | |
CN113419879B (zh) | 消息处理方法、装置、设备及存储介质 | |
CN112948444A (zh) | 一种缓存数据的管理方法和装置 | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
CN112306406A (zh) | 智能存储自动分级的方法、装置、存储介质及电子设备 | |
CN114257521B (zh) | 流量预测方法、装置、电子设备和存储介质 | |
CN114465919B (zh) | 一种网络服务测试方法、***、电子设备及存储介质 | |
US11669442B2 (en) | Co-operative memory management system | |
CN112785000A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220128 Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Applicant after: Tianyiyun Technology Co.,Ltd. Address before: No.31, Financial Street, Xicheng District, Beijing, 100033 Applicant before: CHINA TELECOM Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |