CN113645156A - 交换机sai层消息队列调节方法、系统、终端及存储介质 - Google Patents
交换机sai层消息队列调节方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN113645156A CN113645156A CN202110808795.9A CN202110808795A CN113645156A CN 113645156 A CN113645156 A CN 113645156A CN 202110808795 A CN202110808795 A CN 202110808795A CN 113645156 A CN113645156 A CN 113645156A
- Authority
- CN
- China
- Prior art keywords
- queue
- length
- message queue
- management process
- setting
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 125
- 230000008569 process Effects 0.000 claims abstract description 92
- 238000012544 monitoring process Methods 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims abstract description 23
- 239000000872 buffer Substances 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 14
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101000772194 Homo sapiens Transthyretin Proteins 0.000 description 1
- 102100029290 Transthyretin Human genes 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种交换机SAI层消息队列调节方法、系统、终端及存储介质,包括:利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数;消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度;监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度。本发明能够实现SAI层消息队列长度的动态设置,避免了消息遗漏或长度不合理占用内存的问题,且在设置消息队列长度过程中不会在CPU繁忙时抢占CPU资源,不影响CPU的业务处理效率。
Description
技术领域
本发明涉及交换机技术领域,具体涉及一种交换机SAI层消息队列调节方法、系统、终端及存储介质。
背景技术
交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。交换是按照通信两端传输信息的需要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术的统称。交换机根据工作位置的不同,可以分为广域网交换机和局域网交换机。广域的交换机就是一种在通信系统中完成信息交换功能的设备,它应用在数据链路层。交换机有多个端口,每个端口都具有桥接功能,可以连接一个局域网或一台高性能服务器或工作站。实际上,交换机有时被称为多端口网桥。
网络设备管理的一大烦恼来自于不同厂商的设备使用不同的操作系统,,这些系统命令格式不统一,对协议的支持程度不一致,甚至在系统逻辑上也不一致.笔者所管理的网络有十几个品牌的系统,,在系统升级,版本管理,漏洞与安全管理上都要花费较多的时间和精力。新一代开源网络操作系统SONiC能够解决这些问题。随着SONIC的日趋成熟,在互联网行业应用会越来越多,SONIC+白盒交换机的方式或许会成为将来数据中心的主流接入交换机。
然而SONiC系统运行在白盒交换机上的方式模块间的解耦越来越大。模块都会从数据库中读取数据,而模块间的数据传递和同步。交换芯片和上层的各个模块之间多了一层SAI,这个SAI层是一个标准,这个标准定义好了交换芯片的哪些属性和动作,可以设置。比如说一个port的属性交speed,定义了port的速率,SAI层就定义了一个属性名称是SAI_PORT_ATTR_SPEED。这个自上而下的属性设置就是从数据层面到控制层面的数据交换。但是数据交换是双向的。当SAI层有消息需要汇报给上层的时候,SONiC的实现机制是先让消息加入队列,然后在从队列里那消息进行处理。但是这个队列一般是固定长度,而且在代码编译阶段就固定好了。这就会造成消息遗漏,或者更严重的内存泄露。比如一个队列过长,而内存较小,会导致内存占满。所以动态的设定队列长度,可以让不同的硬件配置的机器获得最佳性能和稳定性。
目前的SONiC系统中并没有这个功能。而且没有相关的架构可以直接设置队列长度。
发明内容
针对现有技术的上述不足,本发明提供一种交换机SAI层消息队列调节方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种交换机SAI层消息队列调节方法,包括:
利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数;
消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度;
监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度。
进一步的,利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数,包括:
在队列长度设置文件中存储用户输入的队列长度;
将队列长度设置文件的文件路径作为参数入口添加至消息队列管理进程。
进一步的,消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度,包括:
消息队列管理进程启动后自带所述队列长度位置参数;
消息队列管理进程监控CPU资源占用率,并在CPU资源占用率低于40%时,根据队列长度位置参数读取队列长度设置文件中的队列长度值;
利用map变量缓存所述队列长度值。
进一步的,监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度,包括:
消息队列管理进程定期读取消息队列的数据量,并将数据量与当前消息队列的总数据量的比例作为队列占用率;
若监控到队列占用率超过90%,则读取缓存的队列长度,并将读取的队列长度设置为消息队列的实际长度。
第二方面,本发明提供一种交换机SAI层消息队列调节系统,包括:
参数设置单元,用于利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数;
长度读取单元,用于消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度;
长度设置单元,用于监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度。
进一步的,所述参数设置单元包括:
文件存储模块,用于在队列长度设置文件中存储用户输入的队列长度;
入口添加模块,用于将队列长度设置文件的文件路径作为参数入口添加至消息队列管理进程。
进一步的,所述长度读取单元包括:
进程启动模块,用于消息队列管理进程启动后自带所述队列长度位置参数;
资源监控模块,用于消息队列管理进程监控CPU资源占用率,并在CPU资源占用率低于40%时,根据队列长度位置参数读取队列长度设置文件中的队列长度值;
长度缓存模块,用于利用map变量缓存所述队列长度值。
进一步的,所述长度设置单元包括:
队列监控模块,用于消息队列管理进程定期读取消息队列的数据量,并将数据量与当前消息队列的总数据量的比例作为队列占用率;
长度设置模块,用于若监控到队列占用率超过90%,则读取缓存的队列长度,并将读取的队列长度设置为消息队列的实际长度。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的交换机SAI层消息队列调节方法,基于消息队列管理进程启动自带参数的功能,通过在SAI层的消息队列管理进程增设参数入口构建能够读取用户设定的队列长度的通道,实现在CPU空闲时自动读取并缓存队列长度,并在现有消息队列数据量过大时将缓存的队列长度设置为消息队列实际长度。本发明能够实现SAI层消息队列长度的动态设置,避免了消息遗漏或长度不合理占用内存的问题,且在设置消息队列长度过程中不会在CPU繁忙时抢占CPU资源,不影响CPU的业务处理效率。
本发明提供的交换机SAI层消息队列调节系统,基于消息队列管理进程启动自带参数的功能,通过参数设置单元在SAI层的消息队列管理进程增设参数入口构建能够读取用户设定的队列长度的通道,实现长度读取单元在CPU空闲时自动读取并缓存队列长度,并且长度设置单元在现有消息队列数据量过大时将缓存的队列长度设置为消息队列实际长度。本发明能够实现SAI层消息队列长度的动态设置,避免了消息遗漏或长度不合理占用内存的问题,且在设置消息队列长度过程中不会在CPU繁忙时抢占CPU资源,不影响CPU的业务处理效率。
本发明提供的终端,包括运行交换机SAI层消息队列调节方法的处理器,基于消息队列管理进程启动自带参数的功能,通过在SAI层的消息队列管理进程增设参数入口构建能够读取用户设定的队列长度的通道,实现在CPU空闲时自动读取并缓存队列长度,并在现有消息队列数据量过大时将缓存的队列长度设置为消息队列实际长度。本发明能够实现SAI层消息队列长度的动态设置,避免了消息遗漏或长度不合理占用内存的问题,且在设置消息队列长度过程中不会在CPU繁忙时抢占CPU资源,不影响CPU的业务处理效率。
本发明提供的存储介质,存储有执行交换机SAI层消息队列调节方法的程序,基于消息队列管理进程启动自带参数的功能,通过在SAI层的消息队列管理进程增设参数入口构建能够读取用户设定的队列长度的通道,实现在CPU空闲时自动读取并缓存队列长度,并在现有消息队列数据量过大时将缓存的队列长度设置为消息队列实际长度。本发明能够实现SAI层消息队列长度的动态设置,避免了消息遗漏或长度不合理占用内存的问题,且在设置消息队列长度过程中不会在CPU繁忙时抢占CPU资源,不影响CPU的业务处理效率。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
Map变量是一个指向map结构体类型的指针。
CPU中央处理器(central processing unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种交换机SAI层消息队列调节系统。
如图1所示,该方法包括:
步骤110,利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数;
步骤120,消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度;
步骤130,监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度。
为了便于对本发明的理解,下面以本发明交换机SAI层消息队列调节方法的原理,结合实施例中对交换机SAI层消息队列进行调节的过程,对本发明提供的交换机SAI层消息队列调节方法做进一步的描述。
具体的,所述交换机SAI层消息队列调节方法包括:
S1、利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数。
浪潮自研交换机的软件系统中,处理消息队列的一个进程叫做syncd。而这个进程本身的设计中是可以在启动时加入启动参数的。Syncd进程启动的时候可以带有参数,可以实现自己的参数入口函数,因此为Syncd进程设计的一个参数入口传递进来的参数是一个文件路径。用户可以通过修改此文件路径下的长度设置文件中的一个属性值,来设定扩展的消息队列长度。长度设置文件对接用户交互接口,用户端可通过用户交互接口向长度设置文件写入最新的消息队列长度。
具体的,在队列长度设置文件中存储用户输入的队列长度;将队列长度设置文件的文件路径作为参数入口添加至消息队列管理进程。
由此实现用户设定参数的读取。
S2、消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度。
消息队列管理进程启动后自带所述队列长度位置参数;消息队列管理进程监控CPU资源占用率,并在CPU资源占用率低于40%时,根据队列长度位置参数读取队列长度设置文件中的队列长度值;利用map变量缓存所述队列长度值。
当消息队列中没有数据,也就是SONiC系统不是很忙的时候,此时去改变队列的长度是毫无意义的,因为无论的消息队列长度是长还是短,里面都没有数据或有很少的数据,都不会造成消息队列长度不足造成的消息数据丢失。所以当消息队列中数据满的时候来设置比较好。但是当队列中的数据满的时候,一般情况下,CPU都是处于繁忙状态,这个时候去读取队列长度设置文件,无疑是更增加了CPU的开销,这样就会和处理业务的时间片来竞争CPU。
因此本实施例设定CPU资源占用率阈值为40%,CPU资源占用率低于40%时CPU处于空闲状态。在CPU空闲的时候,去读取我们通过参数设置的文件,读取到的队列长度值,先保存到一个map变量里面(syncd本身也有一个用map存放的机制)。从map变量读取队列长度值的速度远大于从参数入口读取队列长度设置文件中读取队列长度值。
S3、监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度。
消息队列管理进程定期读取消息队列的数据量,并将数据量与当前消息队列的总数据量的比例作为队列占用率;若监控到队列占用率超过90%,则读取缓存的队列长度,并将读取的队列长度设置为消息队列的实际长度。
消息队列管理进程每隔30s读取一次消息队列的数据量,同时消息队列管理计算数据量与当前消息队列的总数据量的比例作为队列占用率。本实施例设定数据阈值为90%,一旦队列占用率达到90%即触发消息队列长度调整,消息队列管理进程从map缓存中提取队列长度,并将该队列长度设置为消息队列的实际长度,实现对消息队列的动态扩容。这个队列长度值是事先保存在map中的,所以访问速度会很块,这样就可以实现在队列满的时候即CPU满负荷的时候设置队列长度,不会和业务逻辑抢占CPU。从而用很少的代价,换取了队列长度的动态改变这个功能。
本实施例采用读取这个队列长度值的过程和修改队列长度的过程分离的策略,实现了在消息队列数据将满时在不影响CPU业务效率的情况下及时扩充消息队列。
具体流程如下:
(1)利用syncd进程本身自带参数启动的特性,来加入用户所需要的队列长度的设置入口。
(2)采用队列长度的获取和设置分离的模式,来节省CPU,减少和业务逻辑竞争CPU的时间片,从而为客户提高硬件资源的利用率。
(3)为了减少不必要的CPU开销,当文件中的队列长度改变的时候,不会立即设置他的长度,只是在CPU空闲的时候把长度从文件中读取出来,保存到能够快速访问的map结构体中,然后再改变队列的长度。
(4)当队列快满的时候,我们从map中获取长度值,来设置队列长度。
本实施例提供的交换机SAI层消息队列调节方法,基于消息队列管理进程启动自带参数的功能,通过在SAI层的消息队列管理进程增设参数入口构建能够读取用户设定的队列长度的通道,实现在CPU空闲时自动读取并缓存队列长度,并在现有消息队列数据量过大时将缓存的队列长度设置为消息队列实际长度。本实施例能够实现SAI层消息队列长度的动态设置,避免了消息遗漏或长度不合理占用内存的问题,且在设置消息队列长度过程中不会在CPU繁忙时抢占CPU资源,不影响CPU的业务处理效率。
如图2所示,该系统200包括:
参数设置单元210,用于利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数;
长度读取单元220,用于消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度;
长度设置单元230,用于监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度。
可选地,作为本发明一个实施例,所述参数设置单元包括:
文件存储模块,用于在队列长度设置文件中存储用户输入的队列长度;
入口添加模块,用于将队列长度设置文件的文件路径作为参数入口添加至消息队列管理进程。
可选地,作为本发明一个实施例,所述长度读取单元包括:
进程启动模块,用于消息队列管理进程启动后自带所述队列长度位置参数;
资源监控模块,用于消息队列管理进程监控CPU资源占用率,并在CPU资源占用率低于40%时,根据队列长度位置参数读取队列长度设置文件中的队列长度值;
长度缓存模块,用于利用map变量缓存所述队列长度值。
可选地,作为本发明一个实施例,所述长度设置单元包括:
队列监控模块,用于消息队列管理进程定期读取消息队列的数据量,并将数据量与当前消息队列的总数据量的比例作为队列占用率;
长度设置模块,用于若监控到队列占用率超过90%,则读取缓存的队列长度,并将读取的队列长度设置为消息队列的实际长度。
本实施例提供的交换机SAI层消息队列调节系统,基于消息队列管理进程启动自带参数的功能,通过参数设置单元在SAI层的消息队列管理进程增设参数入口构建能够读取用户设定的队列长度的通道,实现长度读取单元在CPU空闲时自动读取并缓存队列长度,并且长度设置单元在现有消息队列数据量过大时将缓存的队列长度设置为消息队列实际长度。本实施例能够实现SAI层消息队列长度的动态设置,避免了消息遗漏或长度不合理占用内存的问题,且在设置消息队列长度过程中不会在CPU繁忙时抢占CPU资源,不影响CPU的业务处理效率。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的交换机SAI层消息队列调节方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明基于消息队列管理进程启动自带参数的功能,通过在SAI层的消息队列管理进程增设参数入口构建能够读取用户设定的队列长度的通道,实现在CPU空闲时自动读取并缓存队列长度,并在现有消息队列数据量过大时将缓存的队列长度设置为消息队列实际长度。本发明能够实现SAI层消息队列长度的动态设置,避免了消息遗漏或长度不合理占用内存的问题,且在设置消息队列长度过程中不会在CPU繁忙时抢占CPU资源,不影响CPU的业务处理效率,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种交换机SAI层消息队列调节方法,其特征在于,包括:
利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数;
消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度;
监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度。
2.根据权利要求1所述的方法,其特征在于,利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数,包括:
在队列长度设置文件中存储用户输入的队列长度;
将队列长度设置文件的文件路径作为参数入口添加至消息队列管理进程。
3.根据权利要求2所述的方法,其特征在于,消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度,包括:
消息队列管理进程启动后自带所述队列长度位置参数;
消息队列管理进程监控CPU资源占用率,并在CPU资源占用率低于40%时,根据队列长度位置参数读取队列长度设置文件中的队列长度值;
利用map变量缓存所述队列长度值。
4.根据权利要求1所述的方法,其特征在于,监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度,包括:
消息队列管理进程定期读取消息队列的数据量,并将数据量与当前消息队列的总数据量的比例作为队列占用率;
若监控到队列占用率超过90%,则读取缓存的队列长度,并将读取的队列长度设置为消息队列的实际长度。
5.一种交换机SAI层消息队列调节系统,其特征在于,包括:
参数设置单元,用于利用SAI层的消息队列管理进程的带参数启动功能设定所述消息队列管理进程的队列长度位置参数;
长度读取单元,用于消息队列管理进程启动后监控CPU资源占用率,并在监控到CPU资源占用率低于预设阈值时,根据所述队列长度位置参数读取并缓存所述队列长度;
长度设置单元,用于监控消息队列的数据量,并将监控到消息队列的数据量超过预设数据阈值后,将缓存的队列长度设置为所述消息队列的实际长度。
6.根据权利要求5所述的系统,其特征在于,所述参数设置单元包括:
文件存储模块,用于在队列长度设置文件中存储用户输入的队列长度;
入口添加模块,用于将队列长度设置文件的文件路径作为参数入口添加至消息队列管理进程。
7.根据权利要求6所述的系统,其特征在于,所述长度读取单元包括:
进程启动模块,用于消息队列管理进程启动后自带所述队列长度位置参数;
资源监控模块,用于消息队列管理进程监控CPU资源占用率,并在CPU资源占用率低于40%时,根据队列长度位置参数读取队列长度设置文件中的队列长度值;
长度缓存模块,用于利用map变量缓存所述队列长度值。
8.根据权利要求5所述的系统,其特征在于,所述长度设置单元包括:
队列监控模块,用于消息队列管理进程定期读取消息队列的数据量,并将数据量与当前消息队列的总数据量的比例作为队列占用率;
长度设置模块,用于若监控到队列占用率超过90%,则读取缓存的队列长度,并将读取的队列长度设置为消息队列的实际长度。
9.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-4任一项所述的方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110808795.9A CN113645156B (zh) | 2021-07-16 | 2021-07-16 | 交换机sai层消息队列调节方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110808795.9A CN113645156B (zh) | 2021-07-16 | 2021-07-16 | 交换机sai层消息队列调节方法、系统、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113645156A true CN113645156A (zh) | 2021-11-12 |
CN113645156B CN113645156B (zh) | 2023-08-08 |
Family
ID=78417626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110808795.9A Active CN113645156B (zh) | 2021-07-16 | 2021-07-16 | 交换机sai层消息队列调节方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113645156B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174671A (zh) * | 2022-07-12 | 2022-10-11 | 网络通信与安全紫金山实验室 | 一种数据报文传输系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180034718A1 (en) * | 2016-07-28 | 2018-02-01 | Cisco Technology, Inc. | Detecting and measuring microbursts in a networking device |
CN111782488A (zh) * | 2020-07-10 | 2020-10-16 | 中国工商银行股份有限公司 | 消息队列监控方法、装置、电子设备和介质 |
CN112559173A (zh) * | 2020-12-07 | 2021-03-26 | 北京知道创宇信息技术股份有限公司 | 资源调节方法、装置、电子设备和可读存储介质 |
-
2021
- 2021-07-16 CN CN202110808795.9A patent/CN113645156B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180034718A1 (en) * | 2016-07-28 | 2018-02-01 | Cisco Technology, Inc. | Detecting and measuring microbursts in a networking device |
CN111782488A (zh) * | 2020-07-10 | 2020-10-16 | 中国工商银行股份有限公司 | 消息队列监控方法、装置、电子设备和介质 |
CN112559173A (zh) * | 2020-12-07 | 2021-03-26 | 北京知道创宇信息技术股份有限公司 | 资源调节方法、装置、电子设备和可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174671A (zh) * | 2022-07-12 | 2022-10-11 | 网络通信与安全紫金山实验室 | 一种数据报文传输系统及方法 |
CN115174671B (zh) * | 2022-07-12 | 2024-02-06 | 网络通信与安全紫金山实验室 | 一种数据报文传输系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113645156B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107018175B (zh) | 移动云计算平台的调度方法和装置 | |
RU2566330C2 (ru) | Гетерогенная сеть межсоединений с учетом производительности и трафика | |
US9832275B2 (en) | Message processing method, device and system for internet of things | |
US20200364080A1 (en) | Interrupt processing method and apparatus and server | |
CN114546913B (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
CN107426113B (zh) | 报文接收方法及网络设备 | |
CN109783151A (zh) | 规则变更的方法和装置 | |
CN116800616B (zh) | 虚拟化网络设备的管理方法及相关装置 | |
CN105635298A (zh) | 一种基于业务隔离原理的数据采集设备统一接入系统 | |
CN109947580A (zh) | 中断处理方法、装置、设备和存储介质 | |
CN110557432B (zh) | 一种缓存池均衡优化方法、系统、终端及存储介质 | |
CN114710571B (zh) | 数据包处理系统 | |
CN113325940A (zh) | 智能设备的功耗管控方法、系统、终端及存储介质 | |
CN113645156A (zh) | 交换机sai层消息队列调节方法、系统、终端及存储介质 | |
CN109992420A (zh) | 一种并行pcie-ssd性能优化方法及系统 | |
CN109616149A (zh) | 一种eMMC主机控制器、eMMC控制系统及控制方法 | |
CN109120539B (zh) | 一种实现数据传输处理的方法及装置 | |
CN112260967A (zh) | 一种交换机电压调节方法、系统、终端及存储介质 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN109828719A (zh) | 基于云监控的commitLog文件所在磁盘控制方法、装置及相关设备 | |
CN113608896B (zh) | 一种动态切换数据流的方法、系统、介质及终端 | |
CN115914375A (zh) | 分布式消息平台容灾处理方法及装置 | |
CN107589907A (zh) | 数据处理方法、电子设备及计算机可读存储介质 | |
CN114356970A (zh) | 一种存储系统资源缓存方法及装置 | |
CN113485749A (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 |