CN105027081A - 一种轮询和中断的切换方法及装置 - Google Patents

一种轮询和中断的切换方法及装置 Download PDF

Info

Publication number
CN105027081A
CN105027081A CN201380002798.7A CN201380002798A CN105027081A CN 105027081 A CN105027081 A CN 105027081A CN 201380002798 A CN201380002798 A CN 201380002798A CN 105027081 A CN105027081 A CN 105027081A
Authority
CN
China
Prior art keywords
invalid
wrap count
value
threshold value
flow
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
CN201380002798.7A
Other languages
English (en)
Other versions
CN105027081B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105027081A publication Critical patent/CN105027081A/zh
Application granted granted Critical
Publication of CN105027081B publication Critical patent/CN105027081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (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)

Abstract

本发明实施例涉及计算机网络技术领域,公开了一种轮询和中断的切换方法及装置,该方法包括初始化程序,以进入轮询状态;实时监测网络流量并获取网络流量的流量值;根据流量值调整预先存储的无效轮询次数阈值,以获得调整后的无效轮询次数阈值;统计无效轮询次数值;比较无效轮询次数值是否大于调整后的无效轮询次数阈值;若无效轮询次数值大于调整后的无效轮询次数阈值,则退出轮询状态并进入中断状态。实施本发明实施例,可以实现轮询和中断的切换,能够保证CPU的高效利用率且减少了频繁中断带来的延迟,提高了处理网络业务的性能。

Description

一种轮询和中断的切换方法及装置 技术领域
本发明涉及计算机网络技术领域,具体涉及一种轮询和中断的切换方法及 装置。 背景技术
随着通用 CPU ( Central Processing Unit, 中央处理器)处理能力的快速提 高,通用平台处理网络业务的能力也在逐渐加强。用软件在通用平台上实现网 络业务相比于目前的用定制硬件实现网路业务具有以下优势: 业务定制灵活、 平台标准化性价比高、 业务上线速度快、 新增业务不需要占用场地等。 但是, 目前通用平台的操作系统在处理网络业务时存在大量的系统调用和多次拷贝, 且上下文切换比较频繁, 这样的处理性能难以满足网络业务的需求。
目前,加速通用平台处理网络业务的方法是根据因网络接口被阻塞而导致 的业务连接连续被中断的次数和业务连接被挂起的次数来调整检测网络接口 数据的轮询周期,通过控制轮询周期来调节网路业务的处理性能以及 CPU的利 用率,但是这种方法需要等待轮询周期的到来才能够处理网络业务,导致了较 高的延迟。 发明内容
本发明实施例公开了一种轮询和中断的切换方法及装置,用于解决网络业 务处理延迟以及 CPU利用率低的问题。
本发明实施例第一方面公开了一种轮询和中断的切换方法, 所述方法包 括:
初始化程序, 以进入轮询状态;
实时监测网络流量并获取所述网络流量的流量值;
根据所述流量值调整预先存储的无效轮询次数阈值,以获得调整后的无效 轮询次数阈值; 统计无效轮询次数值;
比较所述无效轮询次数值是否大于所述调整后的无效轮询次数阈值; 若所述无效轮询次数值大于所述调整后的无效轮询次数阈值,则退出所述 轮询状态并进入中断状态。
在本发明实施例第一方面的第一种可能的实现方式中,所述根据所述流量 值调整预先存储的无效轮询次数阈值, 以获得调整后的无效轮询次数阈值之 前, 所述方法还包括:
存储用户输入的无效轮询次数阈值。
结合本发明实施例第一方面或本发明实施例第一方面的第一种可能的实 现方式,在本发明实施例第一方面的第二种可能的实现方式中, 所述方法还包 括:
若所述无效轮询次数值小于等于所述调整后的无效轮询次数阈值,则保持 所述轮询状态。
结合本发明实施例第一方面的第二种可能的实现方式,在本发明实施例第 一方面的第三种可能的实现方式中,所述根据所述流量值调整预先存储的无效 轮询次数阈值包括:
若所述流量值大于预设流量阈值, 则增加所述无效轮询次数阈值; 或 若所述流量值小于等于预设流量阈值, 则减小所述无效轮询次数阈值。 结合本发明实施例第一方面的第三种可能的实现方式,在本发明实施例第 一方面的第四种可能的实现方式中, 所述统计无效轮询次数值包括:
若轮询时未检测到数据包, 则将所述无效轮询次数值增加; 若轮询时检测 到数据包, 则将所述无效轮询次数值清零或减少。
本发明实施例第二方面公开了一种轮询和中断的切换装置, 所述装置包 括:
初始化单元, 用于初始化程序, 以进入轮询状态;
监测单元, 用于实时监测网络流量并获取所述网络流量的流量值; 调整单元, 用于根据所述流量值调整预先存储的无效轮询次数阈值, 以获 得调整后的无效轮询次数阈值;
统计单元, 用于统计无效轮询次数值;
比较单元,用于比较所述无效轮询次数值是否大于所述调整后的无效轮询 次数阈值;
切换单元,用于当所述无效轮询次数值大于所述调整后的无效轮询次数阈 值时, 退出所述轮询状态并进入中断状态。
在本发明实施例第二方面的第一种可能的实现方式中, 所述装置还包括: 存储单元, 用于存储用户输入的无效轮询次数阈值。
结合本发明实施例第二方面或本发明实施例第二方面的第一种可能的实 现方式,在本发明实施例第二方面的第二种可能的实现方式中, 所述切换单元 还用于当所述无效轮询次数值小于等于所述调整后的无效轮询次数阈值时,保 持所述轮询状态。
结合本发明实施例第二方面的第二种可能的实现方式,在本发明实施例第 二方面的第三种可能的实现方式中, 所述调整单元具体用于:
当所述流量值大于预设流量阈值时, 增加所述无效轮询次数阈值; 或 当所述流量值小于等于预设流量阈值时, 减小所述无效轮询次数阈值。 结合本发明实施例第二方面的第三种可能的实现方式,在本发明实施例第 二方面的第四种可能的实现方式中,所述统计单元具体用于当轮询时未检测到 数据包时, 将所述无效轮询次数值增加; 当轮询时检测到数据包时, 将所述无 效轮询次数值清零或减少。
本发明实施例第三方面公开了一种轮询和中断的切换装置,包括存储器和 处理器, 所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器 中存储的程序代码, 用于执行以下操作:
初始化程序, 以进入轮询状态;
实时监测网络流量并获取所述网络流量的流量值;
根据所述流量值调整预先存储的无效轮询次数阈值,以获得调整后的无效 轮询次数阈值; 统计无效轮询次数值;
比较所述无效轮询次数值是否大于所述调整后的无效轮询次数阈值; 若所述无效轮询次数值大于所述调整后的无效轮询次数阈值,则退出所述 轮询状态并进入中断状态。
在本发明实施例第三方面的第一种可能的实现方式中,所述处理器还执行 以下操作:
存储用户输入的无效轮询次数阈值。
结合本发明实施例第三方面或本发明实施例第三方面的第一种可能的实 现方式,在本发明实施例第三方面的第二种可能的实现方式中, 所述处理器还 执行以下操作:
若所述无效轮询次数值小于等于所述调整后的无效轮询次数阈值,则保持 所述轮询状态。
结合本发明实施例第三方面的第二种可能的实现方式,在本发明实施例第 三方面的第三种可能的实现方式中,所述处理器根据所述流量值调整预先存储 的无效轮询次数阈值的方式具体为:
若所述流量值大于预设流量阈值, 则增加所述无效轮询次数阈值; 或 若所述流量值小于等于预设流量阈值, 则减小所述无效轮询次数阈值。 结合本发明实施例第三方面的第三种可能的实现方式,在本发明实施例第 三方面的第四种可能的实现方式中,所述处理器统计无效轮询次数值的方式具 体为:
若轮询时未检测到数据包, 则将所述无效轮询次数值增加; 若轮询时检测 到数据包, 则将所述无效轮询次数值清零或减少。
实施本发明实施例具有如下有益效果: 初始化程序进入轮询状态之后, 实 时监测网络流量并获取网络流量的流量值,根据获取到的流量值调整预先存储 的无效轮询次数阈值, 统计出无效轮询次数值后, 比较无效轮询次数值是否大 于调整后的无效轮询次数阈值,若无效轮询次数值大于调整后的无效轮询次数 阈值, 则退出轮询状态并进入中断状态。 实施本发明实施例可以实现轮询和中 断的切换, 能够保证 CPU的高效利用率且减少了频繁中断带来的延迟, 提高了 处理网络业务的性能。 附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要 使用的附图作筒单地介绍,显而易见地, 下面描述中的附图仅仅是本发明的一 些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还 可以根据这些附图获得其他的附图。
图 1是本发明实施例公开的一种轮询和中断的切换方法的流程示意图; 图 2是本发明实施例公开的另一种轮询和中断的切换方法的流程示意图; 图 3是本发明实施例公开的一种轮询和中断的切换装置的结构示意图; 图 4是本发明实施例公开的另一种轮询和中断的切换装置的结构示意图; 图 5是本发明实施例公开的又一种轮询和中断的切换装置的结构示意图。 具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
本发明提供了一种轮询和中断的切换方法及装置,实施本发明实施例可以 实现轮询和中断的切换,能够保证 CPU的高效利用率且减少了频繁中断带来的 延迟, 提高了处理网络业务的性能。 以下分别进行详细说明。
请参阅图 1 ,图 1是本发明实施例公开的一种轮询和中断的切换方法的流程 示意图。 其中, 图 1所示的方法可以应用在 Windows系列操作系统、 Unix类操 作系统、 Linux类操作系统以及 Mac操作系统等, 本发明实施例不做限定。 如 图 1所示, 该轮询和中断的切换方法可以包括以下步骤:
S101、 初始化程序, 以进入轮询状态。
本发明实施例中,初始化程序可以包括初始化各种参数, 关闭中断以进入 轮询状态。 轮询是一种 CPU决策如何提供周边设备服务的方式, 它是由 CPU定 时发出询问,依次询问每一个周边设备是否需要某服务, 即让 CPU以一定的周 期按照次序查询每个外设, 看它是否有数据 I/O ( Input/Output )的要求, 若有, 则进行相应的 I/O, 若没有, 则轮询下一个外设。 中断是 CPU在执行一个程序 时, 对系统发生的某个事件(程序自身或外界的原因)做出的一种反应, 即 CPU暂停正在执行的程序, 保留现场后自动转去处理相应的事件, 处理完该事 件后, 到适当的时间返回断点, 继续完成被打断的程序, 如果有必要, 被中断 的程序可以在后来的某个时间恢复, 并继续执行。
5102、 实时监测网络流量并获取网络流量的流量值。
本发明实施例中, 获取到网络流量的流量值可以用来表示网络流量的大 小, 流量值可以通过预先设置的计算模型获得。 举例来说, 本发明实施例中, 队列深度可以用来表示网络流量的流量值, 即队列深度小可以说明网络流量 小, 队列深度大可以说明网络流量比较大, 为了增加精度, 可以增加统计的次 数, 即可以使用下面公式中的流量饱和度来表示网络流量的大小。
>^队列深度
流量饱和度 = ^-— ^
队列大小 χ Ν
上述公式中的队列深度是队列上的消息数, Ν为统计的次数, 队列大小为 一个队列能容纳的最大的消息数。
5103、根据流量值调整预先存储的无效轮询次数阈值, 以获得调整后的无 效轮询次数阈值。
本发明实施例中, 系统中存储有用户设置的无效轮询次数阈值, 用户设置 的无效轮询次数阈值越大则可以说明用户对性能和延迟的要求越高。
作为一种可选的实施方式,根据流量值调整预先存储的无效轮询次数阈值 的方式可以具体为:
若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或
若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。
举例来说, 若用流量饱和度来表示网络流量的大小, 当流量饱和度大于预 设流量饱和度时, 表示网络流量大, 则适当增加无效轮询次数阈值; 当流量饱 和度小于等于预设流量饱和度时,表示网络流量小, 则适当减小无效轮询次数 阈值, 本发明实施例可以使用下面的公式来调整无效轮询次数阈值。
无效轮询次数阐值 =无效轮询次数阐值 +幅度 x(流量饱和度-预设流量饱和度〕 上述公式中, 等号左边的无效轮询次数阈值是调整后的无效轮询次数阈 值, 等号右边的无效轮询次数阈值是预先存储的无效轮询次数阈值, 幅度可以 是一个大于零的数, 用来表示调整无效轮询次数阈值的速度, 即幅度值越大表 示调整的速度越快, 幅度值越小表示调整的速度越慢。
举例来说, 若用队列深度来表示网络流量的大小, 当队列深度大于 0时, 则可以使用下面的公式来调整无效轮询次数阈值:
无效轮询次数阈值=无效轮询次数阈值 +队列深度 当队列深度等于 0时, 则可以使用下面的公式来调整无效轮询次数阈值: 无效轮询次数阈值=无效轮询次数阈值- 1
本发明实施例中,调整后的无效轮询次数阈值的最小值可以为预先存储的 无效轮询次数阈值或 1 , 本发明实施例不做限定。
S104、 统计无效轮询次数值。
作为一种可选的实施方式, 统计无效轮询次数值的方式可以具体为: 若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。
本发明实施例中, 轮询可以轮询一个网络设备也可以轮询多个网络设备, 当轮询一个网络设备时, 若轮询该网络设备时未检测到数据包, 则将无效轮询 次数值增加(如加 1 ) , 若连续轮询该网络设备未检测到数据包的次数大于调整 后的无效轮询次数阈值, 则退出当前的轮询状态并切换到中断状态, 若轮询该 网络设备时检测到数据包, 则将无效轮询次数值清零或减少。
本发明实施例中,轮询也可以是轮询一组网络设备, 即可以轮询多个注册 在设备轮询队列中的网络设备,轮询完注册在设备轮询队列中的网络设备称为 一次轮询, 若在一次轮询中未检测到数据包, 则将无效轮询次数值增加(如加 1 ), 若连续未轮询到数据包的次数大于调整后的无效轮询次数阈值, 则退出当 前的轮询状态并切换到中断状态, 若在一次轮询中检测到数据包, 则将无效轮 询次数值清零或减少。
5105、 比较无效轮询次数值是否大于调整后的无效轮询次数阈值。
5106、若无效轮询次数值大于调整后的无效轮询次数阈值, 则退出轮询状 态并进入中断状态。
本发明实施例中, 若无效轮询次数值大于调整后的无效轮询次数阈值, 则 将轮询状态切换为中断状态;若无效轮询次数值小于等于调整后的无效轮询次 数阈值,则继续保持当前的轮询状态直到无效轮询次数值大于调整后的无效轮 询次数阈值。
本发明实施例中, 中断状态即开启中断, 程序阻塞, 本发明实施例可以采 用信号量作为标识信息来表示程序阻塞, 即当程序阻塞时, 信号量置为 0。 当 程序不阻塞时, 即由中断状态切换为轮询状态时, 信号量置为 1 (或非零的正 整数)。
作为一种可选的实施方式, 中断状态切换为轮询状态的方式可以为: 若接 收到来自网络设备的数据包, 则发出中断信号; 内核的 UIO ( Userspace I/O, 用户空间 I/O技术)模块将中断信号转发到 UIO文件描述符上; 唤醒用于监控 UIO文件描述符的 epoll/select程序; epoll/sdect程序处理该中断信号对应的中断 处理函数; 中断处理函数通过将信号量由 0置为 1 (或非零的正整数)来唤醒收 发包程序, 即进入轮询状态。
作为另一种可选的实施方式, 中断状态切换为轮询状态的方式可以为: 若 检测到有数据包要发送,则发送线程将要发送的数据包发送至收发包线程的接 收队列中, 并将信号量由 0置为 1 (或非零的正整数), 即进入轮询状态。
实施本发明实施例具有如下有益效果: 初始化程序进入轮询状态之后, 实 时监测网络流量并获取网络流量的流量值,根据获取到的流量值调整预先存储 的无效轮询次数阈值, 统计出无效轮询次数值后, 比较无效轮询次数值是否大 于调整后的无效轮询次数阈值,若无效轮询次数值大于调整后的无效轮询次数 阈值, 则退出轮询状态并进入中断状态。 实施本发明实施例可以实现轮询和中 断的切换, 能够保证 CPU的高效利用率且减少了频繁中断带来的延迟, 提高了 处理网络业务的性能。 请参阅图 2,图 2是本发明实施例公开的另一种轮询和中断的切换方法的流 程示意图。 其中, 图 2所示的方法可以应用在 Windows系列操作系统、 Unix类 操作系统、 Linux类操作系统以及 Mac操作系统等, 本发明实施例不做限定。 如图 2所示, 该轮询和中断的切换方法可以包括以下步骤:
5201、 初始化程序, 以进入轮询状态。
5202、 存储用户输入的无效轮询次数阈值。
本发明实施例中, 系统中存储有用户设置的无效轮询次数阈值, 用户设置 的无效轮询次数阈值越大则可以说明用户对性能和延迟的要求越高。
5203、 实时监测网络流量并获取网络流量的流量值。
本发明实施例中, 获取到网络流量的流量值可以用来表示网络流量的大 小, 流量值可以通过预先设置的计算模型获得。 举例来说, 本发明实施例中, 队列深度可以用来表示网络流量的流量值, 即队列深度小可以说明网络流量 小, 队列深度大可以说明网络流量比较大, 为了增加精度, 可以增加统计的次 数, 即可以使用下面公式中的流量饱和度来表示网络流量的大小。
y A列深度
流量饱和度
队列大小 χ Ν
上述公式中的队列深度是队列上的消息数, Ν为统计的次数, 队列大小为 一个队列能容纳的最大的消息数。
5204、根据流量值调整预先存储的无效轮询次数阈值, 以获得调整后的无 效轮询次数阈值。
作为一种可选的实施方式,根据流量值调整预先存储的无效轮询次数阈值 的方式可以具体为:
若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或
若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。
5205、 统计无效轮询次数值。
作为一种可选的实施方式, 统计无效轮询次数值的方式可以具体为: 若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。
本发明实施例中, 轮询可以轮询一个网络设备也可以轮询多个网络设备, 当轮询一个网络设备时, 若轮询该网络设备时未检测到数据包, 则将无效轮询 次数值增加(如加 1 ) , 若连续轮询该网络设备未检测到数据包的次数大于调整 后的无效轮询次数阈值, 则退出当前的轮询状态并切换到中断状态, 若轮询该 网络设备时检测到数据包, 则将无效轮询次数值清零或减少。
本发明实施例中,轮询也可以是轮询一组网络设备, 即可以轮询多个注册 在设备轮询队列中的网络设备,轮询完注册在设备轮询队列中的网络设备称为 一次轮询, 若在一次轮询中未检测到数据包, 则将无效轮询次数值增加(如加
1 ), 若连续未轮询到数据包的次数大于调整后的无效轮询次数阈值, 则退出当 前的轮询状态并切换到中断状态, 若在一次轮询中检测到数据包, 则将无效轮 询次数值清零或减少。
5206、 比较无效轮询次数值是否大于调整后的无效轮询次数阈值。
5207、若无效轮询次数值大于调整后的无效轮询次数阈值, 则退出轮询状 态并进入中断状态。
本发明实施例中, 若无效轮询次数值大于调整后的无效轮询次数阈值, 则 将轮询状态切换为中断状态;若无效轮询次数值小于等于调整后的无效轮询次 数阈值,则继续保持当前的轮询状态直到无效轮询次数值大于调整后的无效轮 询次数阈值。
实施本发明实施例具有如下有益效果: 初始化程序进入轮询状态之后,存 储用户输入的无效轮询次数阈值, 实时监测网络流量并获取网络流量的流量 值,根据获取到的流量值调整预先存储的无效轮询次数阈值, 统计出无效轮询 次数值后, 比较无效轮询次数值是否大于调整后的无效轮询次数阈值, 若无效 轮询次数值大于调整后的无效轮询次数阈值, 则退出轮询状态并进入中断状 态。 实施本发明实施例可以实现轮询和中断的切换, 能够保证 CPU的高效利用 率且减少了频繁中断带来的延迟, 提高了处理网络业务的性能。 请参阅图 3 ,图 3是本发明实施例公开的一种轮询和中断的切换装置的结构 示意图。 如图 3所示, 该轮询和中断的切换装置 300可以包括: 初始化单元 301、 监测单元 302、 调整单元 303、 统计单元 304、 比较单元 305以及切换单元 306, 其中:
初始化单元 301用于初始化程序, 以进入轮询状态。
监测单元 302用于实时监测网络流量并获取网络流量的流量值。
本发明实施例中, 获取到网络流量的流量值可以用来表示网络流量的大 小, 流量值可以通过预先设置的计算模型获得。 举例来说, 本发明实施例中, 队列深度可以用来表示网络流量的流量值, 即队列深度小可以说明网络流量 小, 队列深度大可以说明网络流量比较大, 为了增加精度, 可以增加统计的次 数, 即可以使用下面公式中的流量饱和度来表示网络流量的大小。
y A列深度
流量饱和度 =
队列大小 χ Ν
上述公式中的队列深度是队列上的消息数, Ν为统计的次数, 队列大小为 一个队列能容纳的最大的消息数。
调整单元 303用于根据流量值调整预先存储的无效轮询次数阈值, 以获得 调整后的无效轮询次数阈值。
本发明实施例中, 系统中存储有用户设置的无效轮询次数阈值, 用户设置 的无效轮询次数阈值越大则可以说明用户对性能和延迟的要求越高。
作为一种可选的实施方式, 调整单元 303根据流量值调整预先存储的无效 轮询次数阈值的方式可以具体为:
若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或
若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。
统计单元 304用于统计无效轮询次数值。
作为一种可选的实施方式, 统计单元 304统计无效轮询次数值的方式可以 具体为:
若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。
本发明实施例中, 轮询可以轮询一个网络设备也可以轮询多个网络设备, 当轮询一个网络设备时, 若轮询该网络设备时未检测到数据包, 则将无效轮询 次数值增加(如加 1 ) , 若连续轮询该网络设备未检测到数据包的次数大于调整 后的无效轮询次数阈值, 则退出当前的轮询状态并切换到中断状态, 若轮询该 网络设备时检测到数据包, 则将无效轮询次数值清零或减少。
本发明实施例中,轮询也可以是轮询一组网络设备, 即可以轮询多个注册 在设备轮询队列中的网络设备,轮询完注册在设备轮询队列中的网络设备称为 一次轮询, 若在一次轮询中未检测到数据包, 则将无效轮询次数值增加(如加
1 ), 若连续未轮询到数据包的次数大于调整后的无效轮询次数阈值, 则退出当 前的轮询状态并切换到中断状态, 若在一次轮询中检测到数据包, 则将无效轮 询次数值清零或减少。
比较单元 305用于比较无效轮询次数值是否大于调整后的无效轮询次数阈 值。
切换单元 306用于当无效轮询次数值大于调整后的无效轮询次数阈值时, 退出轮询状态并进入中断状态。
作为一种可选的实施方式, 切换单元 306还用于当无效轮询次数值小于等 于调整后的无效轮询次数阈值时, 保持轮询状态。
实施本发明实施例可以实现轮询和中断的切换,能够保证 CPU的高效利用 率且减少了频繁中断带来的延迟, 提高了处理网络业务的性能。 请参阅图 4,图 4是本发明实施例公开的另一种轮询和中断的切换装置的结 构示意图。如图 4所示,该轮询和中断的切换装置 400可以包括:初始化单元 401、 监测单元 403、 调整单元 404、 统计单元 405、 比较单元 406以及切换单元 407, 其中:
初始化单元 401用于初始化程序, 以进入轮询状态。
监测单元 403用于实时监测网络流量并获取网络流量的流量值。 本发明实施例中, 获取到网络流量的流量值可以用来表示网络流量的大 小, 流量值可以通过预先设置的计算模型获得。 举例来说, 本发明实施例中, 队列深度可以用来表示网络流量的流量值, 即队列深度小可以说明网络流量 小, 队列深度大可以说明网络流量比较大, 为了增加精度, 可以增加统计的次 数, 即可以使用下面公式中的流量饱和度来表示网络流量的大小。
y A列深度
流量饱和度 =厶,,
队列大小 χ Ν
上述公式中的队列深度是队列上的消息数, Ν为统计的次数, 队列大小为 一个队列能容纳的最大的消息数。
调整单元 404用于根据流量值调整预先存储的无效轮询次数阈值, 以获得 调整后的无效轮询次数阈值。
作为一种可选的实施方式, 调整单元 404根据流量值调整预先存储的无效 轮询次数阈值的方式可以具体为:
若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或
若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。
统计单元 405用于统计无效轮询次数值。
作为一种可选的实施方式, 统计单元 405统计无效轮询次数值的方式可以 具体为:
若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。 值。
切换单元 407用于当无效轮询次数值大于调整后的无效轮询次数阈值时, 退出轮询状态并进入中断状态。
作为一种可选的实施方式, 切换单元 407还可以用于当无效轮询次数值 Ί、 于等于调整后的无效轮询次数阈值时, 保持轮询状态。
作为一种可选的实施方式, 该装置 400还可以包括存储单元 402:
存储单元 402用于存储用户输入的无效轮询次数阈值。 本发明实施例中, 系统中存储有用户设置的无效轮询次数阈值, 用户设置 的无效轮询次数阈值越大则可以说明用户对性能和延迟的要求越高。
实施本发明实施例可以实现轮询和中断的切换,能够保证 CPU的高效利用 率且减少了频繁中断带来的延迟, 提高了处理网络业务的性能。 请参阅图 5 ,图 5是本发明实施例公开的又一种轮询和中断的切换装置的结 构示意图。 如图 5所示, 该轮询和中断的切换装置 500可以包括存储器 501和处 理器 502,存储器 501存储一组程序代码,且处理器 502用于调用存储器 501中存 储的程序代码, 用于执行以下操作:
初始化程序, 以进入轮询状态;
实时监测网络流量并获取网络流量的流量值;
根据流量值调整预先存储的无效轮询次数阈值,以获得调整后的无效轮询 次数阈值;
统计无效轮询次数值;
比较无效轮询次数值是否大于调整后的无效轮询次数阈值;
若无效轮询次数值大于调整后的无效轮询次数阈值,则退出轮询状态并进 入中断状态。
在一个实施例中,处理器 502用于调用存储器 501中存储的程序代码,还用 于执行以下操作:
存储用户输入的无效轮询次数阈值。
在一个实施例中,处理器 502用于调用存储器 501中存储的程序代码,还用 于执行以下操作:
若无效轮询次数值小于等于调整后的无效轮询次数阈值, 则保持轮询状 态。
在一个实施例中, 处理器 502根据流量值调整预先存储的无效轮询次数阈 值的方式具体为:
若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或
若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。 在一个实施例中, 处理器 502统计无效轮询次数值的方式具体为: 若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。
实施本发明实施例可以实现轮询和中断的切换,能够保证 CPU的高效利用 率且减少了频繁中断带来的延迟, 提高了处理网络业务的性能。
需要说明的是, 在上述实施例中, 对各个实施例的描述都各有侧重, 某个 实施例中没有详细描述的部分, 可以参见其他实施例的相关描述。 其次, 本领 域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例, 所涉及 的动作和单元并不一定是本发明所必须的。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、 合并和删 减。
本发明实施例装置中的单元可以根据实际需要进行合并、 划分和删减。 本发明实施例中所述单元, 可以通过通用集成电路, 例如 CPU ( Central Processing Unit, 中央处理器), 或通过 ASIC ( Application Specific Integrated Circuit, 专用集成电路)来实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机 可读取存储介质中, 该程序在执行时, 可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM )或随机存储记忆体(Random Access Memory, RAM )等。
以上对本发明实施例所提供的一种轮询和中断的切换方法及装置进行了 上实施例的说明只是用于帮助理解本发明的方法及其核心思想; 同时,对于本 领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会 有改变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。

Claims (1)

  1. 权 利 要 求
    1、 一种轮询和中断的切换方法, 其特征在于, 包括:
    初始化程序, 以进入轮询状态;
    实时监测网络流量并获取所述网络流量的流量值;
    根据所述流量值调整预先存储的无效轮询次数阈值,以获得调整后的无效 轮询次数阈值;
    统计无效轮询次数值;
    比较所述无效轮询次数值是否大于所述调整后的无效轮询次数阈值; 若所述无效轮询次数值大于所述调整后的无效轮询次数阈值,则退出所述 轮询状态并进入中断状态。
    2、 如权利要求 1所述的方法, 其特征在于, 所述根据所述流量值调整预先 存储的无效轮询次数阈值, 以获得调整后的无效轮询次数阈值之前, 所述方法 还包括:
    存储用户输入的无效轮询次数阈值。
    3、 如权利要求 1或 2所述的方法, 其特征在于, 所述方法还包括: 若所述无效轮询次数值小于等于所述调整后的无效轮询次数阈值,则保持 所述轮询状态。
    4、 如权利要求 3所述的方法, 其特征在于, 所述根据所述流量值调整预先 存储的无效轮询次数阈值包括:
    若所述流量值大于预设流量阈值, 则增加所述无效轮询次数阈值; 或 若所述流量值小于等于预设流量阈值, 则减小所述无效轮询次数阈值。
    5、如权利要求 4所述的方法,其特征在于,所述统计无效轮询次数值包括: 若轮询时未检测到数据包, 则将所述无效轮询次数值增加; 若轮询时检测 到数据包, 则将所述无效轮询次数值清零或减少。
    6、 一种轮询和中断的切换装置, 其特征在于, 包括: 初始化单元, 用于初始化程序, 以进入轮询状态;
    监测单元, 用于实时监测网络流量并获取所述网络流量的流量值; 调整单元, 用于根据所述流量值调整预先存储的无效轮询次数阈值, 以获 得调整后的无效轮询次数阈值;
    统计单元, 用于统计无效轮询次数值;
    比较单元,用于比较所述无效轮询次数值是否大于所述调整后的无效轮询 次数阈值;
    切换单元,用于当所述无效轮询次数值大于所述调整后的无效轮询次数阈 值时, 退出所述轮询状态并进入中断状态。
    7、 如权利要求 6所述的装置, 其特征在于, 所述装置还包括:
    存储单元, 用于存储用户输入的无效轮询次数阈值。
    8、 如权利要求 6或 7所述的装置, 其特征在于, 所述切换单元还用于当所 述无效轮询次数值小于等于所述调整后的无效轮询次数阈值时,保持所述轮询 状态。
    9、 如权利要求 8所述的装置, 其特征在于, 所述调整单元具体用于: 当所述流量值大于预设流量阈值时, 增加所述无效轮询次数阈值; 或 当所述流量值小于等于预设流量阈值时, 减小所述无效轮询次数阈值。
    10、 如权利要求 9所述的装置, 其特征在于, 所述统计单元具体用于当轮 询时未检测到数据包时,将所述无效轮询次数值增加; 当轮询时检测到数据包 时, 将所述无效轮询次数值清零或减少。
    11、 一种轮询和中断的切换装置, 包括存储器和处理器, 其特征在于, 所 述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程 序代码, 用于执行以下操作:
    初始化程序, 以进入轮询状态;
    实时监测网络流量并获取所述网络流量的流量值; 根据所述流量值调整预先存储的无效轮询次数阈值,以获得调整后的无效 轮询次数阈值;
    统计无效轮询次数值;
    比较所述无效轮询次数值是否大于所述调整后的无效轮询次数阈值; 若所述无效轮询次数值大于所述调整后的无效轮询次数阈值,则退出所述 轮询状态并进入中断状态。
    12、如权利要求 11所述的装置,其特征在于,所述处理器还执行以下操作: 存储用户输入的无效轮询次数阈值。
    13、 如权利要求 11或 12所述的装置, 其特征在于, 所述处理器还执行以下 操作:
    若所述无效轮询次数值小于等于所述调整后的无效轮询次数阈值,则保持 所述轮询状态。
    14、 如权利要求 13所述的装置, 其特征在于, 所述处理器根据所述流量值 调整预先存储的无效轮询次数阈值的方式具体为:
    若所述流量值大于预设流量阈值, 则增加所述无效轮询次数阈值; 或 若所述流量值小于等于预设流量阈值, 则减小所述无效轮询次数阈值。
    15、 如权利要求 14所述的装置, 其特征在于, 所述处理器统计无效轮询次 数值的方式具体为:
    若轮询时未检测到数据包, 则将所述无效轮询次数值增加; 若轮询时检测 到数据包, 则将所述无效轮询次数值清零或减少。
CN201380002798.7A 2013-12-20 2013-12-20 一种轮询和中断的切换方法及装置 Active CN105027081B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/090094 WO2015089824A1 (zh) 2013-12-20 2013-12-20 一种轮询和中断的切换方法及装置

Publications (2)

Publication Number Publication Date
CN105027081A true CN105027081A (zh) 2015-11-04
CN105027081B CN105027081B (zh) 2018-09-07

Family

ID=53401992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380002798.7A Active CN105027081B (zh) 2013-12-20 2013-12-20 一种轮询和中断的切换方法及装置

Country Status (2)

Country Link
CN (1) CN105027081B (zh)
WO (1) WO2015089824A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107861897A (zh) * 2017-11-06 2018-03-30 郑州云海信息技术有限公司 一种中断和轮询触发方法、系统、设备及计算机存储介质
CN109086232A (zh) * 2018-07-26 2018-12-25 郑州云海信息技术有限公司 一种事务处理的方法及装置
CN109191291A (zh) * 2018-07-26 2019-01-11 阿里巴巴集团控股有限公司 一种调整轮询策略的方法及装置
CN109936502A (zh) * 2017-12-15 2019-06-25 迈普通信技术股份有限公司 数据接收方法及数据传输设备
CN113377527A (zh) * 2021-04-26 2021-09-10 佳源科技股份有限公司 一种基于流量强度自适应的流媒体转发处理装置与方法
CN113726402A (zh) * 2021-07-20 2021-11-30 西安空间无线电技术研究所 一种基于星载rs485双总线自适应控制方法
CN115756143A (zh) * 2022-11-30 2023-03-07 深圳市领创星通科技有限公司 数据包处理的节能方法、装置、计算机设备和存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106375239B (zh) * 2016-08-25 2019-02-12 北京智芯微电子科技有限公司 一种网络数据接收的处理方法及装置
CN108134708B (zh) * 2016-12-01 2021-05-25 腾讯科技(深圳)有限公司 监控第三方接口的方法和装置
CN111143032A (zh) * 2019-12-20 2020-05-12 上海交通大学 一种基于请求应答的半虚拟化i/o系统和方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020035626A1 (en) * 2000-09-21 2002-03-21 Yasushi Higuchi Network management system
CN1859183A (zh) * 2005-12-30 2006-11-08 华为技术有限公司 一种实现设备状态轮询的方法及装置
US7290076B2 (en) * 2005-04-14 2007-10-30 Intel Corporation Optmizing an interrupt-latency or a polling rate for a hardware platform and network profile combination by adjusting current timer values for both receive and transmit directions of traffic and calculating a new timer value to be used for both receive and transmit directions of traffic
CN101335595A (zh) * 2008-07-25 2008-12-31 中兴通讯股份有限公司 下行数据接收过程中自动调节接收性能的方法及移动终端
US20110023040A1 (en) * 2009-07-24 2011-01-27 Apple Inc. Power-efficient interaction between multiple processors
CN102779075A (zh) * 2012-06-28 2012-11-14 华为技术有限公司 一种在多处理器核系统中进行调度的方法、装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020035626A1 (en) * 2000-09-21 2002-03-21 Yasushi Higuchi Network management system
US7290076B2 (en) * 2005-04-14 2007-10-30 Intel Corporation Optmizing an interrupt-latency or a polling rate for a hardware platform and network profile combination by adjusting current timer values for both receive and transmit directions of traffic and calculating a new timer value to be used for both receive and transmit directions of traffic
CN1859183A (zh) * 2005-12-30 2006-11-08 华为技术有限公司 一种实现设备状态轮询的方法及装置
CN101335595A (zh) * 2008-07-25 2008-12-31 中兴通讯股份有限公司 下行数据接收过程中自动调节接收性能的方法及移动终端
US20110023040A1 (en) * 2009-07-24 2011-01-27 Apple Inc. Power-efficient interaction between multiple processors
CN102779075A (zh) * 2012-06-28 2012-11-14 华为技术有限公司 一种在多处理器核系统中进行调度的方法、装置及系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107861897A (zh) * 2017-11-06 2018-03-30 郑州云海信息技术有限公司 一种中断和轮询触发方法、系统、设备及计算机存储介质
CN109936502A (zh) * 2017-12-15 2019-06-25 迈普通信技术股份有限公司 数据接收方法及数据传输设备
CN109936502B (zh) * 2017-12-15 2022-05-17 迈普通信技术股份有限公司 数据接收方法及数据传输设备
CN109086232A (zh) * 2018-07-26 2018-12-25 郑州云海信息技术有限公司 一种事务处理的方法及装置
CN109191291A (zh) * 2018-07-26 2019-01-11 阿里巴巴集团控股有限公司 一种调整轮询策略的方法及装置
CN113377527A (zh) * 2021-04-26 2021-09-10 佳源科技股份有限公司 一种基于流量强度自适应的流媒体转发处理装置与方法
CN113377527B (zh) * 2021-04-26 2023-06-02 佳源科技股份有限公司 一种基于流量强度自适应的流媒体转发处理装置与方法
CN113726402A (zh) * 2021-07-20 2021-11-30 西安空间无线电技术研究所 一种基于星载rs485双总线自适应控制方法
CN113726402B (zh) * 2021-07-20 2022-08-12 西安空间无线电技术研究所 一种基于星载rs485双总线自适应控制方法
CN115756143A (zh) * 2022-11-30 2023-03-07 深圳市领创星通科技有限公司 数据包处理的节能方法、装置、计算机设备和存储介质
CN115756143B (zh) * 2022-11-30 2024-03-12 深圳市领创星通科技有限公司 数据包处理的节能方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN105027081B (zh) 2018-09-07
WO2015089824A1 (zh) 2015-06-25

Similar Documents

Publication Publication Date Title
CN105027081A (zh) 一种轮询和中断的切换方法及装置
US10868767B2 (en) Data transmission method and apparatus in optoelectronic hybrid network
US10454850B2 (en) Apparatus and method for buffering data in a switch
US6035333A (en) Method and system for providing congestion control in a data communications network
US8732263B2 (en) Self clocking interrupt generation in a network interface card
WO2000052895A3 (en) Method and apparatus for interrupt handling
CN103929334A (zh) 网络异常通知方法和装置
US10380047B2 (en) Traffic-dependent adaptive interrupt moderation
CN103997465A (zh) 一种生成cnm的方法及设备
CN104838361A (zh) 一种核间进程通信的方法、装置及系统
CN110968402A (zh) 一种cpu工作控制方法、装置、设备及存储介质
CN105245463A (zh) 一种流量控制方法和设备
CN109379246A (zh) 一种内存的检测方法及装置
CN113472523A (zh) 用户态协议栈报文处理优化方法、系统、装置及存储介质
CN117097679A (zh) 一种网络中断的聚合方法、装置及网络通信设备
CN101997777B (zh) 中断处理方法、装置和网络设备
CN107766268A (zh) 存储设备的中断发送方法、装置、系统、设备及存储介质
CN109450941B (zh) 一种抗DDoS的SDN控制器消息调度方法
US8006006B2 (en) System and method for aggregating transmit completion interrupts
CN116318626A (zh) 一种RoCE网络中标记ECN的方法、装置、电子设备及存储介质
WO2018106392A1 (en) Technologies for multi-core wireless network data transmission
CN112996044A (zh) 一种5g通信虚拟化网元网络拥塞的控制方法和系统
CN105245471A (zh) 报文发送方法及报文发送装置
CN110968403A (zh) 一种cpu工作控制方法、装置、设备及存储介质
JP2005519393A5 (zh)

Legal Events

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