CN103207808A - 多核系统中的处理方法及装置 - Google Patents
多核系统中的处理方法及装置 Download PDFInfo
- Publication number
- CN103207808A CN103207808A CN2012100111221A CN201210011122A CN103207808A CN 103207808 A CN103207808 A CN 103207808A CN 2012100111221 A CN2012100111221 A CN 2012100111221A CN 201210011122 A CN201210011122 A CN 201210011122A CN 103207808 A CN103207808 A CN 103207808A
- Authority
- CN
- China
- Prior art keywords
- data process
- heap
- nuclear
- information
- control process
- 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
Images
Abstract
本发明提出一种多核系统中的处理方法及系统。其中,多核包括第一核和至少一个第二核,该方法包括以下步骤:将控制进程绑定在所述第一核上;将数据进程绑定在所述至少一个第二核上,其中每个数据进程对应一个第二核;为所述控制进程和所述数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见;以及将所述控制进程的私有堆分配用于存储私有信息,和将所述控制进程的共享堆分配用于存储与数据进程相关的信息。根据本发明实施例的方法,可避免多核间配置的同步开销并提升多核系统的处理性能。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种多核系统中的处理方法及装置。
背景技术
在报文处理过程中,控制平面在向数据平面进行相关配置时,为保证配置信息的一致性,需要同步机制,特别是在基于多核CPU的系统中,随着核数的增长,核间的同步开销会迅速增长,并严重影响系统性能。
现有技术采用控制平面与数据平面混合的多核报文处理装置,控制平面与数据平面运行在相同的核上,各核间的配置信息、统计信息等采用共享的方式,当各核在处理报文需要查找或者修改共享信息时,需要采用同步机制,例如,自旋锁,即将要修改的信息锁住,并在修改后释放锁,当一个核需要修改信息时,其他核如果也需要修改该信息,则其他核需等待到锁释放后,才可以实施操作。同时,各核拥有独立的缓存(cache),当共享的数据内容被修改后,为保持缓存内容的一致性,各核间需进行缓存内容的同步。
现有技术存在的问题是,一方面由于需要采用同步机制,随着核数的增长,核间的同步开销将快速增长,使得系统性能无法随着系统核数的增长而线性增长,并且当核数增加到一定程度后性能反而下降,例如,现有技术的LVS(Linux虚拟服务器)系统,其系统的转发性能随着核数增长成log形曲线。另一方面,由于配置信息和统计信息在各核上的频繁更新和修改,会触发大量的核间缓存同步动作,影响系统的性能,同时带来严重的缓存缺失。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种可以避免多核间配置同步开销并降低配置中核上缓存缺失以及核间缓存同步开销的多核系统中的处理方法。
本发明的另一目的在于提出一种多核系统中的处理装置。
为了实现上述目的,根据本发明第一方面的实施例的多核系统中的处理方法包括以下步骤:将控制进程绑定在所述第一核上;将数据进程绑定在所述至少一个第二核上,其中每个数据进程对应一个第二核;为所述控制进程和所述数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见;以及将所述控制进程的私有堆分配用于存储私有信息,和将所述控制进程的共享堆分配用于存储与数据进程相关的信息。
根据本发明实施例的多核系统中的处理方法,采用控制进程和数据进程的多进程模型,当任何一个进程出现故障时不影响其他进程的正常工作,从而增强多核系统的可靠性;通过控制进程和数据进程将系统的控制平面与数据平面分离,使得多核系统在进行配置时不会打断数据平面处理过程,从而减少配置对数据处理的影响;分配第二核的私有堆及共享堆,减少修改数据时的缓存一致性保证的开销。根据本发明实施例的方法可使得多核系统的数据处理性能随着核数的增长而线性增长,例如实验表明从2~45核时,系统的性能成线性增长。
为了实现上述目的,根据本发明第二方面的实施例的多核系统中的处理装置,包括:绑定模块,所述绑定模块用于将控制进程绑定在所述第一核上,并且将数据进程绑定在所述至少一个第二核上,其中每个数据进程对应一个第二核;创建模块,所述创建模块用于为所述控制进程和所述数据进程创建私有堆和共享堆,其中每个核是对应的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见;以及第一分配模块,所述第一分配模块用于将所述控制进程的私有堆分配用于存储私有信息,和将所述控制进程的共享堆分配用于存储与数据进程相关的信息。
根据本发明实施例的多核系统中的处理装置,采用控制进程和数据进程的多进程模型,当任何一个进程出现故障时不影响其他进程的正常工作,从而增强多核系统的可靠性;通过绑定模块将系统的控制平面与数据平面分离,使得多核系统在进行配置时不会打断数据平面处理过程,从而减少配置对数据处理的影响;通过第一分配模块指定第二核的私有堆及共享堆,减少修改数据时的缓存一致性保证的开销。根据本发明实施例的装置可使得多核系统的数据处理性能随着核数的增长而线性增长。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的多核系统中的处理方法的流程图;
图2是根据本发明一个实施例的多核系统中的处理方法的流程图;
图3是根据本发明一个实施例的多核系统中的处理方法的流程图;
图4是根据本发明一个实施例的多核系统中的处理方法的流程图;
图5是根据本发明一个实施例的多核系统中的处理方法的流程图;
图6是根据本发明一个实施例的多核系统中的处理方法的流程图;
图7是根据本发明示例的负载均衡装置的部署原理图;
图8是根据本发明示例的报文处理过程的原理图;
图9是根据本发明示例的数据表存储的结构图;
图10是根据本发明一个实施例的多核系统中的处理装置的结构框图;
图11是根据本发明一个实施例的多核系统中的处理装置的结构框图;
图12是根据本发明一个实施例的多核系统中的处理装置的结构框图;
图13是根据本发明一个实施例的多核系统中的处理装置的结构框图;以及
图14是根据本发明一个实施例的多核系统中的处理装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考说明书附图描述根据本发明实施例的多核系统中的处理方法。
一种多核系统中的处理方法,其中多核包括第一核和至少一个第二核,该方法包括以下步骤:将控制进程绑定在第一核上;将数据进程绑定在至少一个第二核上,其中每个数据进程对应一个第二核;为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见;以及将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。
图1为根据本发明一个实施例的多核系统中的处理方法的流程图。
如图1所示,根据本发明实施例的多核系统中的处理方法包括下述步骤,其中,多核包括第一核和至少一个第二核。
步骤S101,将控制进程绑定在第一核上。
具体地,通过控制进程的属性设置可将该控制进程绑定在第一核上。该绑定关系为进程粘性,即该进程将时钟运行在该核上,而不会被操作系统调度到其他核上去执行。
步骤S102,将数据进程绑定在至少一个第二核上。
具体地,数据进程可以有多个,数据进程的数量决定第二核的数量,通过数据进程的属性设置可将数据进程绑定在第二核上,其中,一个数据进程对应于一个第二核。
在本发明的一个实施例中,步骤S101和步骤S102的执行可以不分先后顺序。
步骤S103,为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见。
步骤S104,将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。
根据本发明实施例的多核系统中的处理方法,采用控制进程和数据进程的多进程模型,当任何一个进程出现故障时不影响其他进程的正常工作,从而增强多核系统的可靠性;通过控制进程和数据进程将系统的控制平面与数据平面分离,使得多核系统在进行配置时不会打断数据平面处理过程,从而减少配置对数据处理的影响;分配第二核的私有堆及共享堆,减少修改数据时的缓存一致性保证的开销。根据本发明实施例的方法可使得多核系统的数据处理性能随着核数的增长而线性增长,例如实验表明从2~45核时,系统的性能成线性增长。
图2为根据本发明一个实施例的多核系统中的处理方法的流程图。
如图2所示,根据本发明实施例的多核系统中的处理方法包括下述步骤,其中多核包括第一核和至少一个第二核。
步骤S201,将控制进程绑定在第一核上。
具体地,通过控制进程的属性设置可将该控制进程绑定在第一核上。该绑定关系为进程粘性,即该进程将时钟运行在该核上,而不会被操作系统调度到其他核上去执行。
步骤S202,将数据进程绑定在至少一个第二核上。
具体地,数据进程可以有多个,数据进程的数量决定第二核的数量,通过数据进程的属性设置可将数据进程绑定在第二核上,其中,一个数据进程对应于一个第二核。
在本发明的一个实施例中,步骤S201和步骤S202的执行可以不分先后顺序。
步骤S203,为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见。
步骤S204,将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。
步骤S205,将数据进程的私有堆分配用于存储私有信息。
具体地,将数据进程的私有堆分配用于数据进程存储私有信息,数据进程通过私有堆分配自己使用的私有信息的存储空间,例如连接会话表空间等。
步骤S206,将数据进程的共享堆分配用于存储共享信息,共享信息包括配置信息和统计信息。
具体地,将数据进程的共享堆分配用于数据进程存储配置信息和统计信息,使得每个数据进程拥有独立的配置信息和统计信息的实体。
在本发明的一个实施例中,控制进程周期地请求获得数据进程的统计信息,其中周期可根据具体的应用场景设置,可以是远大于CPU时钟周期的任意值,从毫秒级到秒级均可,优选地是秒级的,例如为一秒至五秒。控制进程进行汇总数据进程的配置信息和统计信息的频率相对于数据进程的工作速度非常低,由此可以近似的认为这样的配置信息和统计信息的汇总过程在各核之间是没有竞争的。
在本发明的一个实施例中,控制进程和数据进程的权威核直接对自己的私有堆或共享堆中存储的数据进行修改。具体地,每个核是自己的共享堆或私有堆的权威核,则对自己的私有堆或共享堆中存储的缓存数据进行修改,无需向其他核的缓存发送修改请求,由此可减少修改数据时的缓存一致性保证的开销。
在本发明的一个实施例中,配置信息包括提供服务的服务器的IP地址以及服务流量阈值,统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
在本发明的一个实施例中,私有信息包括连接会话。
根据本发明实施例的多核系统中的处理方法,将数据进程的私有堆分配用于数据进程存储私有信息,共享堆分配用于存储配置信息及统计信息,可以增加多核系统的数据处理性能。
图3是根据本发明一个实施例的多核系统中的处理方法的流程图。
如图3所示,根据本发明实施例的多核系统中的处理方法包括下述步骤,其中多核包括第一核和至少一个第二核。
步骤S301,将控制进程绑定在第一核上。
具体地,通过控制进程的属性设置可将该控制进程绑定在第一核上。该绑定关系为进程粘性,即该进程将时钟运行在该核上,而不会被操作系统调度到其他核上去执行。
步骤S302,将数据进程绑定在至少一个第二核上。
具体地,数据进程可以有多个,数据进程的数量决定第二核的数量,通过数据进程的属性设置可将数据进程绑定在第二核上,其中,一个数据进程对应于一个第二核。
在本发明的一个实施例中,步骤S301和步骤S302的执行可以不分先后顺序。
步骤S303,为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见。
步骤S304,将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。
步骤S305,将数据进程的私有堆分配用于存储私有信息。
具体地,将数据进程的私有堆分配用于数据进程存储私有信息,数据进程通过私有堆分配自己使用的私有信息的存储空间,例如连接会话表空间等。
步骤S306,将数据进程的共享堆分配用于存储共享信息,共享信息包括配置信息和统计信息。
具体地,将数据进程的共享堆分配用于数据进程存储配置信息和统计信息,使得每个数据进程拥有独立的配置信息和统计信息的实体。
步骤S307,数据进程将配置信息和统计信息的地址告知控制进程。
具体地,各个数据进程在第二核上的配置信息和统计信息存储在各个第二核的共享堆空间,对于所有核可见,各个第二核的配置信息和统计信息的地址可以唯一的标识各个数据进程的配置信息和统计信息。
在本发明的一个实施例中,控制进程周期地请求获得数据进程的统计信息,其中周期可根据具体的应用场景设置,可以是远大于CPU时钟周期的任意值,从毫秒级到秒级均可,优选地是秒级的,例如为一秒至五秒。控制进程进行汇总数据进程的配置信息和统计信息的频率相对于数据进程的工作速度非常低,由此可以近似的认为这样的配置信息和统计信息的汇总过程在各核之间是没有竞争的。
在本发明的一个实施例中,控制进程和数据进程的权威核直接对自己的私有堆或共享堆中存储的数据进行修改。具体地,每个核是自己的共享堆或私有堆的权威核,则对自己的私有堆或共享堆中存储的缓存数据进行修改,由此可减少修改数据时的缓存一致性保证的开销。
在本发明的一个实施例中,配置信息包括提供服务的服务器的IP地址以及服务流量阈值,统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
在本发明的一个实施例中,私有信息包括连接会话。
根据本发明实施例的多核系统中的处理方法,数据进程将配置信息和统计信息的地址告知控制进程,各个第二核的配置信息和统计信息的地址可以唯一的标识各个数据进程的配置信息和统计信息,方便管理和操作。
图4为根据本发明一个实施例的多核系统中的处理方法的流程图。
如图4所示,根据本发明实施例的多核系统中的处理方法包括下述步骤,其中多核包括第一核和至少一个第二核。
步骤S401,将控制进程绑定在第一核上。
具体地,通过控制进程的属性设置可将该控制进程绑定在第一核上。该绑定关系为进程粘性,即该进程将时钟运行在该核上,而不会被操作系统调度到其他核上去执行。
步骤S402,将数据进程绑定在至少一个第二核上。
具体地,数据进程可以有多个,数据进程的数量决定第二核的数量,通过数据进程的属性设置可将数据进程绑定在第二核上,其中,一个数据进程对应于一个第二核。
在本发明的一个实施例中,步骤S401和步骤S402的执行可以不分先后顺序。
步骤S403,为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见。
步骤S404,将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。
步骤S405,将数据进程的私有堆分配用于存储私有信息。
具体地,将数据进程的私有堆分配用于数据进程存储私有信息,数据进程通过私有堆分配自己使用的私有信息的存储空间,例如连接会话表空间等。
步骤S406,将数据进程的共享堆分配用于存储共享信息,共享信息包括配置信息和统计信息。
具体地,将数据进程的共享堆分配用于数据进程存储配置信息和统计信息,使得每个数据进程拥有独立的配置信息和统计信息的实体。
步骤S407,数据进程将配置信息和统计信息的地址告知控制进程。
具体地,各个数据进程在第二核上的配置信息和统计信息存储在各个第二核的共享堆空间,对于所有核可见,各个第二核的配置信息和统计信息的地址可以唯一的标识各个数据进程的配置信息和统计信息。
步骤S408,控制进程通过指向数据进程的配置信息和统计信息的指针数组来处理数据进程的配置信息或统计信息。
具体地,指针数组用于存储各个数据进程的配置信息和统计信息的堆地址,控制进程根据指针数组实现对数据进程的控制操作。
在本发明的一个实施例中,控制进程周期地请求获得数据进程的统计信息,其中周期可根据具体的应用场景设置,可以是远大于CPU时钟周期的任意值,从毫秒级到秒级均可,优选地是秒级的,例如为一秒至五秒。控制进程进行汇总数据进程的配置信息和统计信息的频率相对于数据进程的工作速度非常低,由此可以近似的认为这样的配置信息和统计信息的汇总过程在各核之间是没有竞争的。
在本发明的一个实施例中,控制进程和数据进程的权威核直接对自己的私有堆或共享堆中存储的数据进行修改。具体地,每个核是自己的共享堆或私有堆的权威核,则对自己的私有堆或共享堆中存储的缓存数据进行修改,由此可减少修改数据时的缓存一致性保证的开销。
在本发明的一个实施例中,配置信息包括提供服务的服务器的IP地址以及服务流量阈值,统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
在本发明的一个实施例中,私有信息包括连接会话。
根据本发明实施例的多核系统中的处理方法,通过指针数组可以方便控制进程处理数据进程,提高多核系统的效率。
图5是根据本发明一个实施例的多核系统中的处理方法的流程图。
如图5所示,根据本发明实施例的多核系统中的处理方法包括下述步骤,其中多核包括第一核和至少一个第二核。
步骤S501,将控制进程绑定在第一核上。
具体地,通过控制进程的属性设置可将该控制进程绑定在第一核上。该绑定关系为进程粘性,即该进程将时钟运行在该核上,而不会被操作系统调度到其他核上去执行。
步骤S502,将数据进程绑定在至少一个第二核上。
具体地,数据进程可以有多个,数据进程的数量决定第二核的数量,通过数据进程的属性设置可将数据进程绑定在第二核上,其中,一个数据进程对应于一个第二核。
在本发明的一个实施例中,步骤S501和步骤S502的执行可以不分先后顺序。
步骤S503,为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见。
步骤S504,将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。
步骤S505,将数据进程的私有堆分配用于存储私有信息。
具体地,将数据进程的私有堆分配用于数据进程存储私有信息,数据进程通过私有堆分配自己使用的私有信息的存储空间,例如连接会话表空间等。
步骤S506,将数据进程的共享堆分配用于存储共享信息,共享信息包括配置信息和统计信息。
具体地,将数据进程的共享堆分配用于数据进程存储配置信息和统计信息,使得每个数据进程拥有独立的配置信息和统计信息的实体。
步骤S507,数据进程将配置信息和统计信息的地址告知控制进程。
具体地,各个数据进程在第二核上的配置信息和统计信息存储在各个第二核的共享堆空间,对于所有核可见,各个第二核的配置信息和统计信息的地址可以唯一的标识各个数据进程的配置信息和统计信息。
步骤S508,控制进程向数据进程的权威核请求获得数据进程的统计信息的权威副本,其中,控制进程通过指向数据进程的配置信息和统计信息的指针数组来请求获得所述数据进程的统计信息。
具体地,统计信息存储在各个数据进程所对应的第二核的共享堆中,当控制进程需要获得数据进程的统计信息时,需要向数据进程的权威核发送请求。
步骤S509,数据进程的权威核将统计信息的权威副本发送给控制进程。
步骤S510,控制进程向数据进程的权威核请求更新数据进程的配置信息,其中,控制进程通过指向数据进程的配置信息和统计信息的指针数组来请求更新数据进程的配置信息。
具体地,配置信息存储在各个数据进程所对应的第二核的共享堆中,当控制进程需要更新数据进程的配置信息时,需要向数据进程的权威核发送请求。
步骤S511,数据进程的权威核根据控制进程的请求来更新配置信息并将内存中的配置信息数据同步。
具体地,在控制进程请求之后,数据进程的权威核可以更新该数据进程的配置信息并负责与内存中的数据同步。指针数组用于存储各个数据进程的配置信息和统计信息的堆地址,控制进程根据指针数组实现对数据进程的请求操作。
在本发明的一个实施例中,控制进程周期地请求获得数据进程的统计信息,其中周期可根据具体的应用场景设置,可以是远大于CPU时钟周期的任意值,从毫秒级到秒级均可,优选地是秒级的,例如为一秒至五秒。控制进程进行汇总数据进程的配置信息和统计信息的频率相对于数据进程的工作速度非常低,由此可以近似的认为这样的配置信息和统计信息的汇总过程在各核之间是没有竞争的。
在本发明的一个实施例中,控制进程和数据进程的权威核直接对自己的私有堆或共享堆中存储的数据进行修改。具体地,每个核是自己的共享堆或私有堆的权威核,则对自己的私有堆或共享堆中存储的缓存数据进行修改,由此可减少修改数据时的缓存一致性保证的开销。
在本发明的一个实施例中,配置信息包括提供服务的服务器的IP地址以及服务流量阈值,统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
在本发明的一个实施例中,私有信息包括连接会话。
根据本发明实施例的多核系统中的处理方法,通过控制进程可以请求获得各个数据进程的统计信息并请求更新各个数据进程的配置信息。
图6是根据本发明一个实施例的多核系统中的处理方法的流程图。
如图6所示,根据本发明实施例的多核系统中的处理方法包括下述步骤,其中多核包括第一核和至少一个第二核。
步骤S601,将控制进程绑定在第一核上。
具体地,通过控制进程的属性设置可将该控制进程绑定在第一核上。该绑定关系为进程粘性,即该进程将时钟运行在该核上,而不会被操作系统调度到其他核上去执行。
步骤S602,将数据进程绑定在至少一个第二核上。
具体地,数据进程可以有多个,数据进程的数量决定第二核的数量,通过数据进程的属性设置可将数据进程绑定在第二核上,其中,一个数据进程对应于一个第二核。
在本发明的一个实施例中,步骤S601和步骤S602的执行可以不分先后顺序。
步骤S603,为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见。
步骤S604,将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。
步骤S605,将数据进程的私有堆分配用于存储私有信息。
具体地,将数据进程的私有堆分配用于数据进程存储私有信息,数据进程通过私有堆分配自己使用的私有信息的存储空间,例如连接会话表空间等。
步骤S606,将数据进程的共享堆分配用于存储共享信息,共享信息包括配置信息和统计信息。
具体地,将数据进程的共享堆分配用于数据进程存储配置信息和统计信息,使得每个数据进程拥有独立的配置信息和统计信息的实体。
步骤S607,数据进程将配置信息和统计信息的地址告知控制进程。
具体地,各个数据进程在第二核上的配置信息和统计信息存储在各个第二核的共享堆空间,对于所有核可见,各个第二核的配置信息和统计信息的地址可以唯一的标识各个数据进程的配置信息和统计信息。
步骤S608,控制进程向数据进程的权威核请求获得数据进程的统计信息的权威副本,其中,控制进程通过指向数据进程的配置信息和统计信息的指针数组来请求获得所述数据进程的统计信息。
具体地,统计信息存储在各个数据进程所对应的第二核的共享堆中,当控制进程需要获得数据进程的统计信息时,需要向数据进程的权威核发送请求。
步骤S609,数据进程的权威核将统计信息的权威副本发送给控制进程。
步骤S610,控制进程向数据进程的权威核请求更新数据进程的配置信息,其中,控制进程通过指向数据进程的配置信息和统计信息的指针数组来请求更新数据进程的配置信息。
具体地,配置信息存储在各个数据进程所对应的第二核的共享堆中,当控制进程需要更新数据进程的配置信息时,需要向数据进程的权威核发送请求。
步骤S611,对数据进程的配置信息上锁。
步骤S612,数据进程的权威核根据控制进程的请求来更新配置信息并将内存中的配置信息数据同步。
具体地,在控制进程请求之后,数据进程的权威核可以更新该数据进程的配置信息并负责与内存中的数据同步。指针数组用于存储各个数据进程的配置信息和统计信息的堆地址,控制进程根据指针数组实现对数据进程的请求操作。
在本发明的一个实施例中,当控制进程请求更新数据进程的配置信息时,可以对数据进程的配置信息上锁,然后数据进程更新自己的配置信息并负责与内存中的数据同步。通常,对于配置信息会上锁,对于统计信息基本不上锁。
在本发明的一个实施例中,控制进程周期地请求获得数据进程的统计信息,其中周期可根据具体的应用场景设置,可以是远大于CPU时钟周期的任意值,从毫秒级到秒级均可,优选地是秒级的,例如为一秒至五秒。控制进程进行汇总数据进程的配置信息和统计信息的频率相对于数据进程的工作速度非常低,由此可以近似的认为这样的配置信息和统计信息的汇总过程在各核之间是没有竞争的。
在本发明的一个实施例中,控制进程和数据进程的权威核直接对自己的私有堆或共享堆中存储的数据进行修改。具体地,每个核是自己的共享堆或私有堆的权威核,则对自己的私有堆或共享堆中存储的缓存数据进行修改,由此可减少修改数据时的缓存一致性保证的开销。
在本发明的一个实施例中,配置信息包括提供服务的服务器的IP地址以及服务流量阈值,统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
在本发明的一个实施例中,私有信息包括连接会话。
根据本发明实施例的多核系统中的处理方法,对需要更新的配置信息进行上锁操作,可以防止更新配置信息时发生冲突。
下面结合具体的示例说明本发明实施例的多核系统中的处理方法的应用。应理解的是,以下所描述的示例仅用作理解本发明实施例的多核系统中的处理方法及其应用场景,不能作为本发明保护范围的限制。
示例:
如图7所示,在一个负载均衡设备中,包括多核负载均衡设备,外网交换机(或路由器),内网交换机,内网服务器集群。内网服务器集群中的每一台服务器配置一个内网IP,任意具有内网IP的服务器可以互相通信;负载均衡设备的内网网络接口与内网交换机相连,接口上配置内网IP,负载均衡设备可以与任意内网服务器通信;负载均衡设备的外网网络接口与外网交换机(或路由器)相连,接口上配置外网IP,负载均衡设备可以与任意外网IP地址通信;外网交换机(或路由器)具有三层交换能力,其上需要将对外服务的IP地址的路由指向负载均衡设备的外网网络接口,使得任意外网用户访问对外服务的IP地址的报文可以转发到负载均衡设备的外网网络接口上,对外服务的IP地址是一个外网IP地址,是外网用户访问网络内容提供商提供的服务所使用的IP地址;内网交换机需要具有三层交换能力,其上将负载均衡设备所使用的IP地址的路由指向负载均衡设备的内网网络接口。
该负载均衡设备使用本发明实施例的多核系统中的处理方法进行报文处理,具体如下:
1.用户从外网访问服务时,其报文的目的地址为对外服务的IP地址;对外服务的IP地址是一个外网IP地址,是用户访问服务所使用的地址;用户发送的报文地址信息如图8中的IP报文1所示,源IP地址是SIP1,目的IP地址是DIP1,源端口是SPORT1,目的端口是DPORT1,协议类型是PROT;SIP1是用户的源IP地址,是一个外网地址;DIP1是对外服务的IP地址;SPORT1是用户请求报文的源端口;DPORT1是对外提供服务的端口,包括80端口等;PROT是该报文的协议类型,包括TCP等。
2.用户访问的报文到达图7所示外网交换机(或路由器)时,外网交换机(或路由器)根据本地的路由表,将目的IP为对外服务IP的用户访问报文转发给图7所示的负载均衡设备的外网网络接口。
3.外网交换机(或路由器)转发的报文,由图8所示的负载均衡设备的外网网络接口接收;该接口收到报文后,根据IP报文1的SIP1、DIP1、SPORT1、DPORT1、PROT,用CPU选择算法1计算处理该报文的CPU核序号;CPU选择算法1如下:
CPU核序号=F(SIP1,DIP1,SPORT1,DPORT1,PROT)%CPU核数。
所述F()为哈希函数,包括Bob Jenkins的jhash算法。
4.CPU核收到来自外网网络接口的报文后,根据如图9所示的服务表副本,查询服务表副本中是否存在一个条目,该条目中存储的IP地址、端口以及协议类型与该报文的目的IP地址、目的端口以及协议类型相同,如果不存在这样的条目,则将该报文丢弃;如果存在这样的条目,则进行下一步处理;服务表副本是一张存储该集群对外提供服务的IP地址、端口以及协议类型等信息的表,表中每一个条目中存储的信息包括一个外网IP地址、一个端口号、服务使用的协议类型等;各CPU核使用的服务表副本内容相同,但各CPU核仅能访问属于自己的服务表副本,不能访问其他核的表。
5.查询图9中的私有流信息表,如该表中存在一个条目,该条目的外网IP地址与报文的目的IP地址相同,该条目的外网目的端口与报文的外网目的端口相同,该条目的外网源IP地址与报文的源IP地址相同,该条目的外网源端口与报文的源端口相同,条目中存储的协议类型与报文的协议类型相同,则将该报文的源IP地址替换为条目中的内网源IP地址,将报文源端口替换为条目中的内网源端口,将报文的目的地址替换为条目中的内网目的IP地址,将报文中的目的端口替换为条目中的内网目的端口,并执行第7步;如果私有流信息表中,不存在这样的条目,则执行第6步;私有流信息表是一张存储经过负载均衡设备处理转发的数据流信息,其中存储的数据包括:该数据流的外网源IP地址,该数据流的外网源端口,该数据流的外网目的IP地址,该数据流的外网目的端口,该数据流的协议类型,该数据流的内网IP源地址,该数据流的内网源端口,该数据流的内网目的IP,该数据流的内网目的端口等信息;各CPU核的私有流信息表互不相同,且各CPU核仅能访问属于自己的私有流信息表,无法访问其他核的私有流信息表。
6.为该报文创建一个私有流信息表条目,并加入处理该报文的CPU核的私有流信息表中;替换报文的源、目的IP地址,源、目的端口;处理过程如下:
a)选择内网目的IP地址和目的端口,并替换报文的目的IP地址和目的端口:
报文处理的CPU核,从如图9所示的,属于自己的服务器信息表副本中,根据负载均衡算法选择一个服务器信息条目,将报文的目的IP和目的端口设定为选定的服务器信息条目中存储的服务器内网IP地址DIP2,将报文的目的端口设定为服务器提供服务的端口DPORT2;负载均衡算法包括轮询算法;服务器信息表副本是一张存储服务器信息的表,该表中存储所有内网服务器集群中的服务器的信息,这些信息包括服务器内网IP地址、服务器提供服务的端口、服务器的处理性能、服务器的优先级等信息;各CPU核所使用的服务器信息表副本内容相同,但各CPU核仅能访问属于自己的服务器信息表副本,不能访问属于其他核的表。
b)选择内网源IP地址和源端口,并替换报文的源IP地址和源端口:
从如图9所示的该CPU核的私有BIP列表中选择一个可用IP地址SIP2,将报文的源地址SIP1替换为SIP2,并将报文的源端口SPORT1替换为SPORT2。CPU核私有的BIP列表是一个内网IP地址列表,该列表中的IP地址,与其他任意一个核的BIP列表中IP地址不相同;该列表中的任意一个IP地址具有如下属性,即用CPU选择算法2对该IP地址进行计算后,获得的值等于该IP地址所属的CPU核的序号;CPU选择算法2包括以下算法:
f(IP)=(unsigned int)IP%CPU核数目
各CPU核的私有BIP表内容互不相同,且各CPU只能访问属于自己的BIP表,无法访问其他核的BIP表;
SPORT2具有如下属性:在当前CPU核上的私有流信息表中,不存在这样一个流,其内网目的IP为DIP2,其内网源IP为SIP2,其内网源端口为SPORT2;
c)创建一个新的私有流信息表条目,使得条目中的外网目的IP地址等于报文的目的IP地址DIP1,条目的外网源IP地址等于报文的源IP地址SIP1,条目的外网源端口等于条目的源端口SPORT1,条目的外网目的端口等于报文的目的端口DPORT1,条目的协议类型等于报文的协议类型,条目的内网目的IP地址等于DIP2,条目的内网源IP地址等于SIP2,条目的内网源端口等于SPORT2,条目的内网目的端口等于DPORT2;将该条目插入本CPU核的私有流信息表中。
d)执行第7步。
7.CPU核处理完报文后,将报文通过如图8所示的内网网络接口发送往如图7所示的内网交换机。
8.内网交换机收到报文后,根据如图8所示的IP报文2的目的IP地址DIP2,查询本地路由表,将报文转发给内网IP地址为DIP2的服务器。
9.内网服务器集群中IP地址为DIP2的服务器收到报文后,经处理后,需要向用户返回信息时,发送报文地址信息如图8中IP报文2的报文给内网交换机。内网交换机根据本地的路由信息,将该报文转发给负载均衡设备。
10.负载均衡设备通过内网网络接口收到报文后,根据CPU选择算法2,对报文的目的IP地址DIP2进行计算,获得对应的CPU核序号,将报文发送给该CPU核。
11.CPU核收到来自内网网络接口的报文后,根据报文的源、目的IP地址,源、目的端口和协议类型,在该CPU核的私有流信息表中查询;如果表中存在这样一个条目,该条目的内网源IP地址等于报文的目的IP地址,该条目的内网目的IP地址等于报文的源IP地址,该条目的内网源端口等于报文的目的端口,该条内网目的端口等于报文的源端口,该条目的协议类型等于报文的协议类型,则将报文的源IP替换为条目中的外网目的IP地址,将报文的目的IP替换为条目中的外网源IP地址,将报文的源端口替换为条目的外网目的端口,将报文的目的端口替换为条目的外网源端口。
12.CPU核在处理完来自内网的报文后,将报文通过外网网络接口发送给外网交换机(或路由器)。
13.外网交换机(或路由器)将来自负载均衡设备外网网络接口的报文根据本地路由表,将报文转发给用户。
该示例可以采用多种现有的多核处理器,能够充分利用多核处理器核数多的优势,通过在每个CPU核中建立服务表副本、私有流信息表、服务器信息表副本及私有BIP表,每个CPU核只能访问属于自己的表,不能访问其他核的表,每个CPU核只能对属于自己的私有的表进行操作,例如对私有流信息表进行添加的操作,每个CPU核的服务表副本及服务器信息表副本相同,但只能对属于自己的表进行查询操作。因此,负载均衡处理的性能不受多核间竞争的影响,可使处理性能随着核数的增长线性的增长。
下面参考说明书附图描述根据本发明实施例的多核系统中的处理装置。
一种多核系统中的处理装置,其中多核包括第一核和至少一个第二核,该装置包括:绑定模块,绑定模块用于将控制进程绑定在第一核上,并且将数据进程绑定在至少一个第二核上,其中每个数据进程对应一个第二核;创建模块,创建模块用于为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见;以及第一分配模块,第一分配模块用于将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。
图10是根据本发明一个实施例的多核系统中的处理装置的结构框图。
如图10所示,多核系统中的处理装置包括绑定模块100、创建模块200和第一分配模块300,其中,多核包括第一核和至少一个第二核。
具体地,绑定模块100用于将控制进程绑定在第一核上,并且将数据进程绑定在至少一个第二核上。绑定模块100通过控制进程的属性设置可将该控制进程绑定于第一核,通过数据进程的属性设置可将数据进程绑定于第二核,数据进程可以有多个,数据进程的数量决定第二核的数量,其中,一个数据进程对应于一个第二核。该绑定关系为进程粘性,即该进程将时钟运行在该核上,而不会被操作系统调度到其他核上去执行。
创建模块200用于为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见。
第一分配模块300用于将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。
根据本发明实施例的多核系统中的处理装置,采用控制进程和数据进程的多进程模型,当任何一个进程出现故障时不影响其他进程的正常工作,从而增强多核系统的可靠性;通过绑定模块将系统的控制平面与数据平面分离,使得多核系统在进行配置时不会打断数据平面处理过程,从而减少配置对数据处理的影响;通过第一分配模块指定第二核的私有堆及共享堆,减少修改数据时的保证缓存一致性的开销。根据本发明实施例的装置可使得多核系统的数据处理性能随着核数的增长而线性增长。
图11是根据本发明一个实施例的多核系统中的处理装置的结构框图。如图11所示,多核系统中的处理装置包括绑定模块100、创建模块200、第一分配模块300和第二分配模块400,其中,多核包括第一核和至少一个第二核。
具体地,绑定模块100用于将控制进程绑定在第一核上,并且将数据进程绑定在至少一个第二核上。创建模块200用于为控制进程和数据进程创建私有堆和共享堆,其中每个核是对应的共享堆或私有堆的权威核,私有堆仅对作为权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程。第一分配模块300用于将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。第二分配模块400用于将数据进程的私有堆分配用于存储私有信息,并将数据进程的共享堆分配用于存储配置共享信息,其中共享信息包括信息和统计信息。
具体地,第二分配模块400将数据进程的私有堆分配用于数据进程存储私有信息,数据进程通过私有堆分配自己使用的私有信息的存储空间,例如连接会话表空间等。第二分配模块400将数据进程的共享堆分配用于数据进程存储配置信息和统计信息,使得每个数据进程拥有独立的配置信息和统计信息的实体。
在本发明的一个实施例中,配置信息包括提供服务的服务器的IP地址以及服务流量阈值,统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
在本发明的一个实施例中,私有信息包括连接会话。
根据本发明实施例的多核系统中的处理装置,通过第二分配模块将数据进程的私有堆分配用于数据进程存储私有信息,共享堆分配用于存储配置信息及统计信息,可以增加多核系统的数据处理性能。
图12是根据本发明一个实施例的多核系统中的处理装置的结构框图。如图12所示,多核系统中的处理装置包括绑定模块100、创建模块200、第一分配模块300、第二分配模块400和发送模块500,其中,多核包括第一核和至少一个第二核。
具体地,绑定模块100用于将控制进程绑定在第一核上,并且将数据进程绑定在至少一个第二核上。创建模块200用于为控制进程和数据进程创建私堆和共享堆,其中每个核是对应的共享堆或私有堆的权威核,私有堆仅对作为权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程。第一分配模块300用于将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。第二分配模块400用于将数据进程的私有堆分配用于存储私有信息,并将数据进程的共享堆分配用于存储配置共享信息,其中共享信息包括信息和统计信息。发送模块500用于将数据进程的配置信息和统计信息的地址发送给控制进程。
具体地,各个数据进程在第二核上的配置信息和统计信息存储在各个第二核的共享堆空间,对于所有核可见,通过发送模块500将各个第二核的配置信息和统计信息的内存地址发送给控制进程,控制进程可以根据各个第二核的配置信息和统计信息的内存地址唯一的标识各个数据进程的配置信息和统计信息。
在本发明的一个实施例中,配置信息包括提供服务的服务器的IP地址以及服务流量阈值,统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
在本发明的一个实施例中,私有信息包括连接会话。
在本发明的一个实施例中,控制进程通过指向数据进程的配置信息和统计信息的指针数组来处理数据进程。
根据本发明实施例的多核系统中的处理装置,发送模块将数据进程的配置信息和统计信息地址告知控制进程,各个第二核的配置信息和统计信息的地址可以唯一的标识各个数据进程的配置信息和统计信息,方便管理和操作,通过指针数组可以方便实现对数据进程的控制,提高多核系统的效率。
图13是根据本发明一个实施例的多核系统中的处理装置的结构框图。如图13所示,多核系统中的处理装置包括绑定模块100、创建模块200、第一分配模块300、第二分配模块400、发送模块500、请求模块600和更新模块700,其中,多核包括第一核和至少一个第二核。
具体地,绑定模块100用于将控制进程绑定在第一核上,并且将数据进程绑定在至少一个第二核上。创建模块200用于为控制进程和数据进程创建私堆和共享堆,其中每个核是对应的共享堆或私有堆的权威核,私有堆仅对作为权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程。第一分配模块300用于将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。第二分配模块400用于将数据进程的私有堆分配用于存储私有信息,并将数据进程的共享堆分配用于存储配置共享信息,其中共享信息包括信息和统计信息。发送模块500用于将数据进程的配置信息和统计信息的地址发送给控制进程。控制进程通过请求模块600向数据进程的权威核请求获得数据进程的统计信息的权威副本或请求更新数据进程的配置信息。数据进程的权威核根据控制进程的请求来使用更新模块700更新配置信息并将内存中的配置信息数据同步。其中,数据进程的权威核通过发送模块500将统计信息的权威副本发送给控制进程,请求模块600通过指向数据进程的配置信息和统计信息的指针数组来请求获得数据进程的统计信息或请求更新数据进程的配置信息。
在本发明的一个实施例中,控制进程通过请求模块600请求数据进程更新配置信息之后,可以对配置信息上锁。通过对需要更新的配置信息进行上锁操作,可以防止配置信息更新时可能发生的冲突。
在本发明的一个实施例中,配置信息包括提供服务的服务器的IP地址以及服务流量阈值,统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
在本发明的一个实施例中,私有信息包括连接会话。
根据本发明实施例的多核系统中的处理装置,控制模块通过指针数组可以方便实现对数据进程的控制,提高多核系统的效率。
图14是根据本发明一个实施例的多核系统中的处理装置的结构框图。如图14所示,多核系统中的处理装置包括绑定模块100、创建模块200、第一分配模块300、第二分配模块400、发送模块500、请求模块600、更新模块700和统计模块800,其中,多核包括第一核和至少一个第二核。
具体地,绑定模块100用于将控制进程绑定在第一核上,并且将数据进程绑定在至少一个第二核上。创建模块200用于为控制进程和数据进程创建私堆和共享堆,其中每个核是对应的共享堆或私有堆的权威核,私有堆仅对作为权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程。第一分配模块300用于将控制进程的私有堆分配用于存储私有信息,和将控制进程的共享堆分配用于存储与数据进程相关的信息。第二分配模块400用于将数据进程的私有堆分配用于存储私有信息,并将数据进程的共享堆分配用于存储配置共享信息,其中共享信息包括信息和统计信息。发送模块500用于将数据进程的配置信息和统计信息的地址发送给控制进程。控制进程通过请求模块600向数据进程的权威核请求获得数据进程的统计信息的权威副本或请求更新数据进程的配置信息。数据进程的权威核根据控制进程的请求来使用更新模块700更新配置信息并将内存中的配置信息数据同步。其中,数据进程的权威核通过发送模块500将统计信息的权威副本发送给控制进程,请求模块600通过指向数据进程的配置信息和统计信息的指针数组来请求获得数据进程的统计信息或请求更新数据进程的配置信息控制进程通过使用统计模块800周期地请求获得数据进程的统计信息。
具体地,控制进程周期地通过统计模块800统计数据进程的统计信息,其中周期可根据具体的应用场景设置,可以是远大于CPU时钟周期的任意值,从毫秒级到秒级均可,优选地是秒级的,例如为一秒至五秒。
具体地,配置信息或统计信息存储在各个数据进程所对应的第二核的共享堆中,当控制进程请求处理数据进程的配置信息或统计信息时,通过请求模块600向数据进程发送请求。
在本发明的一个实施例中,控制进程通过请求模块600请求数据进程更新配置信息之后,可以对配置信息上锁。通过对需要更新的配置信息进行上锁操作,可以防止配置信息更新时可能发生的冲突。
在本发明的一个实施例中,配置信息包括提供服务的服务器的IP地址以及服务流量阈值,统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
在本发明的一个实施例中,私有信息包括连接会话。
在本发明的一个实施例中,每个核是自己的共享堆或私有堆的权威核,可以直接对自己的私有堆或共享堆中存储的缓存数据进行修改,无需向其他核的缓存发送修改请求,由此可减少修改数据时的缓存一致性保证的开销。
根据本发明实施例的多核系统中的处理装置,可以减少修改数据时的缓存一致性保证的开销。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (22)
1.一种多核系统中的处理方法,其特征在于,所述多核包括第一核和至少一个第二核,所述方法包括以下步骤:
将控制进程绑定在所述第一核上;
将数据进程绑定在所述至少一个第二核上,其中每个数据进程对应一个第二核;
为所述控制进程和所述数据进程创建私有堆和共享堆,其中每个核是对应的进程的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见;以及
将所述控制进程的私有堆分配用于存储私有信息,和将所述控制进程的共享堆分配用于存储与数据进程相关的信息。
2.根据权利要求1所述的方法,其特征在于,进一步包括步骤:
将所述数据进程的私有堆分配用于存储私有信息;以及
将所述数据进程的共享堆分配用于存储共享信息,所述共享信息包括配置信息和统计信息。
3.根据权利要求2所述的方法,其特征在于,进一步包括步骤:
所述数据进程将所述配置信息和所述统计信息的地址告知所述控制进程。
4.根据权利要求3所述的方法,其特征在于,进一步包括步骤:
所述控制进程通过指向所述数据进程的配置信息和统计信息的指针数组来处理所述数据进程的配置信息或统计信息。
5.根据权利要求4所述的方法,其特征在于,进一步包括步骤:
所述控制进程向所述数据进程的权威核请求获得所述数据进程的所述统计信息的权威副本;
所述数据进程的权威核将所述统计信息的权威副本发送给所述控制进程;
所述控制进程向所述数据进程的权威核请求更新所述数据进程的所述配置信息;以及
所述数据进程的权威核根据所述控制进程的请求来更新所述配置信息并将内存中的配置信息数据同步,
其中,所述控制进程通过指向所述数据进程的配置信息和统计信息的指针数组来请求获得所述数据进程的统计信息或请求更新所述数据进程的配置信息。
6.根据权利要求5所述的方法,其特征在于,进一步包括:
对所述配置信息上锁。
7.根据权利要求2至4中任一项所述的方法,其特征在于,
所述控制进程周期地请求获得所述数据进程的统计信息。
8.根据权利要求7所述的方法,其特征在于,所述周期是一秒至五秒。
9.根据权利要求2至4中任一项所述的方法,其特征在于,
所述控制进程和所述数据进程的权威核直接对自己的私有堆或共享堆中存储的数据进行修改。
10.根据权利要求2至4中任一项所述的方法,其特征在于,所述配置信息包括提供服务的服务器的IP地址以及服务流量阈值,所述统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
11.根据权利要求2至4中任一项所述的方法,其特征在于,所述私有信息包括连接会话。
12.一种多核系统中的处理装置,其特征在于,所述多核包括第一核和至少一个第二核,所述装置包括:
绑定模块,所述绑定模块用于将控制进程绑定在所述第一核上,并且将数据进程绑定在所述至少一个第二核上,其中每个数据进程对应一个第二核;
创建模块,所述创建模块用于为所述控制进程和所述数据进程创建私有堆和共享堆,其中每个核是对应的共享堆或私有堆的权威核,私有堆仅对权威核上绑定的控制进程或数据进程可见,共享堆对于所有核上绑定的控制进程或数据进程可见;以及
第一分配模块,所述第一分配模块用于将所述控制进程的私有堆分配用于存储私有信息,和将所述控制进程的共享堆分配用于存储与数据进程相关的信息。
13.根据权利要求12所述的装置,其特征在于,进一步包括第二分配模块,所述第二分配模块用于:
将所述数据进程的私有堆分配用于存储私有信息;以及
将所述数据进程的共享堆分配用于存储共享信息,所述共享信息包括配置信息和统计信息。
14.根据权利要求13所述的装置,其特征在于,进一步包括:
发送模块,所述发送模块用于将所述数据进程的所述配置信息和所述统计信息的地址发送给所述控制进程。
15.根据权利要求14所述的装置,其特征在于:
所述控制进程通过指向所述数据进程的配置信息和统计信息的指针数组来处理所述数据进程。
16.根据权利要求15所述的装置,其特征在于,进一步包括:
请求模块,所述控制进程通过所述请求模块向所述数据进程的权威核请求获得所述数据进程的所述统计信息的权威副本或请求更新所述数据进程的所述配置信息;以及
更新模块,所述数据进程的权威核根据所述控制进程的请求来使用所述更新模块更新所述配置信息并将内存中的配置信息数据同步,
其中,所述数据进程的权威核通过所述发送模块将所述统计信息的权威副本发送给所述控制进程,所述请求模块通过指向所述数据进程的配置信息和统计信息的指针数组来请求获得所述数据进程的统计信息或请求更新所述数据进程的配置信息。
17.根据权利要求16所述的装置,其特征在于,
对所述配置信息上锁。
18.根据权利要求13至15中任一项所述的装置,其特征在于,进一步包括:
统计模块,所述控制进程通过使用所述统计模块而周期地请求获得所述数据进程的统计信息。
19.根据权利要求18所述的装置,其特征在于,所述周期是一秒至五秒。
20.根据权利要求13至15中任一项所述的装置,其特征在于:
所述控制进程和所述数据进程的权威核直接对自己的私有堆或共享堆中存储的数据进行修改。
21.根据权利要求13至15中任一项所述的方法,其特征在于,所述配置信息包括提供服务的服务器的IP地址以及服务流量阈值,所述统计信息包括预定时间段内的连接数目、连接速率以及实际流量。
22.根据权利要求13至15中任一项所述的方法,其特征在于,所述私有信息包括连接会话。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210011122.1A CN103207808B (zh) | 2012-01-13 | 2012-01-13 | 多核系统中的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210011122.1A CN103207808B (zh) | 2012-01-13 | 2012-01-13 | 多核系统中的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103207808A true CN103207808A (zh) | 2013-07-17 |
CN103207808B CN103207808B (zh) | 2016-08-31 |
Family
ID=48755038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210011122.1A Active CN103207808B (zh) | 2012-01-13 | 2012-01-13 | 多核系统中的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103207808B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104994032A (zh) * | 2015-05-15 | 2015-10-21 | 京信通信技术(广州)有限公司 | 一种信息处理的方法和装置 |
CN105187235A (zh) * | 2015-08-12 | 2015-12-23 | 广东睿江科技有限公司 | 一种报文处理方法和装置 |
CN106302383A (zh) * | 2016-07-22 | 2017-01-04 | 北京奇虎科技有限公司 | 数据访问请求的处理方法及处理装置 |
CN106462506A (zh) * | 2014-05-06 | 2017-02-22 | 谷歌公司 | 呼入数据的受控缓存注入 |
CN106789723A (zh) * | 2016-12-20 | 2017-05-31 | 东软集团股份有限公司 | 多核网络转发限速的方法和装置 |
CN107832151A (zh) * | 2017-11-10 | 2018-03-23 | 东软集团股份有限公司 | 一种cpu资源分配方法、装置及设备 |
CN111031105A (zh) * | 2019-11-26 | 2020-04-17 | 北京百度网讯科技有限公司 | 消息频率的统计方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008923A (zh) * | 2007-01-26 | 2007-08-01 | 浙江大学 | 面向异构多核体系的分段式存储空间管理方法 |
WO2008108129A1 (ja) * | 2007-03-06 | 2008-09-12 | Nec Corporation | メモリアクセス制御システム、メモリアクセス制御方法およびそのプログラム |
US20080244221A1 (en) * | 2007-03-30 | 2008-10-02 | Newell Donald K | Exposing system topology to the execution environment |
CN101853149A (zh) * | 2009-03-31 | 2010-10-06 | 张力 | 多核系统中单生产者/单消费者队列的处理方法及装置 |
CN101901207A (zh) * | 2010-07-23 | 2010-12-01 | 中国科学院计算技术研究所 | 异构共享存储多处理机系统的操作系统及其工作方法 |
-
2012
- 2012-01-13 CN CN201210011122.1A patent/CN103207808B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008923A (zh) * | 2007-01-26 | 2007-08-01 | 浙江大学 | 面向异构多核体系的分段式存储空间管理方法 |
WO2008108129A1 (ja) * | 2007-03-06 | 2008-09-12 | Nec Corporation | メモリアクセス制御システム、メモリアクセス制御方法およびそのプログラム |
US20080244221A1 (en) * | 2007-03-30 | 2008-10-02 | Newell Donald K | Exposing system topology to the execution environment |
CN101853149A (zh) * | 2009-03-31 | 2010-10-06 | 张力 | 多核系统中单生产者/单消费者队列的处理方法及装置 |
CN101901207A (zh) * | 2010-07-23 | 2010-12-01 | 中国科学院计算技术研究所 | 异构共享存储多处理机系统的操作系统及其工作方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462506A (zh) * | 2014-05-06 | 2017-02-22 | 谷歌公司 | 呼入数据的受控缓存注入 |
CN104994032A (zh) * | 2015-05-15 | 2015-10-21 | 京信通信技术(广州)有限公司 | 一种信息处理的方法和装置 |
CN104994032B (zh) * | 2015-05-15 | 2018-09-25 | 京信通信系统(中国)有限公司 | 一种信息处理的方法和装置 |
CN105187235A (zh) * | 2015-08-12 | 2015-12-23 | 广东睿江科技有限公司 | 一种报文处理方法和装置 |
CN106302383A (zh) * | 2016-07-22 | 2017-01-04 | 北京奇虎科技有限公司 | 数据访问请求的处理方法及处理装置 |
CN106789723A (zh) * | 2016-12-20 | 2017-05-31 | 东软集团股份有限公司 | 多核网络转发限速的方法和装置 |
CN106789723B (zh) * | 2016-12-20 | 2019-12-06 | 东软集团股份有限公司 | 多核网络转发限速的方法和装置 |
CN107832151A (zh) * | 2017-11-10 | 2018-03-23 | 东软集团股份有限公司 | 一种cpu资源分配方法、装置及设备 |
CN107832151B (zh) * | 2017-11-10 | 2020-09-25 | 东软集团股份有限公司 | 一种cpu资源分配方法、装置及设备 |
CN111031105A (zh) * | 2019-11-26 | 2020-04-17 | 北京百度网讯科技有限公司 | 消息频率的统计方法、装置、电子设备及存储介质 |
CN111031105B (zh) * | 2019-11-26 | 2022-06-28 | 北京百度网讯科技有限公司 | 自动驾驶中消息频率的统计方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103207808B (zh) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103207808A (zh) | 多核系统中的处理方法及装置 | |
CN103346981B (zh) | 虚拟交换方法、相关装置和计算机系统 | |
CN112087312A (zh) | 一种提供边缘服务的方法、装置和设备 | |
CN109426549A (zh) | 针对虚拟环境的加速器互连分配 | |
CN107278359A (zh) | 云计算系统中报文处理的方法、主机和系统 | |
KR20190057109A (ko) | 네트워크 슬라이스를 관리하기 위한 방법 및 관리 유닛 | |
CN104951353A (zh) | 一种对vnf实现加速处理的方法及装置 | |
CN108664660A (zh) | 时序数据库的分布式实现方法、装置、设备及存储介质 | |
CN104954468A (zh) | 资源的分配方法及装置 | |
CN109981493B (zh) | 一种用于配置虚拟机网络的方法和装置 | |
US10122654B2 (en) | Divided hierarchical network system based on software-defined networks | |
CN101997924A (zh) | 云存储文件传输协议(cftp) | |
US10439901B2 (en) | Messaging queue spinning engine | |
CN106416147A (zh) | 一种用于软件定义协议网络节点的系统和方法 | |
CN110808857B (zh) | 实现Kubernetes集群的网络互通方法、装置、设备以及存储介质 | |
CN110830574B (zh) | 一种基于docker容器实现内网负载均衡的方法 | |
CN104883302B (zh) | 一种数据包转发的方法、装置及系统 | |
CN106104505A (zh) | 一种cpu及多cpu系统管理方法 | |
CN109964507A (zh) | 网络功能的管理方法、管理单元及系统 | |
CN109327319A (zh) | 部署网络切片的方法、设备及系统 | |
CN109240796A (zh) | 虚拟机信息获取方法及装置 | |
CN111813577A (zh) | 一种数据处理的方法、装置以及计算机可读存储介质 | |
CN111835729B (zh) | 报文转发方法、系统、存储介质和电子设备 | |
ES2264627B2 (es) | Metodo y aparato para reconfigurar un sistema de servidores. | |
CN105207908B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |