多进程设备的网络连接方法和系统技术方案

技术编号:13334002 阅读:155 留言:0更新日期:2016-07-12 04:43
本发明专利技术涉及一种多进程设备的网络连接方法和系统。所述方法包括以下步骤:按照配置的组数及总进程数对进程进行分组得到每组的进程数;根据每组的进程数获取每组进程中连接数最少的进程;将所述每组进程中连接数最少的进程标记为可接收新连接的进程;获取新连接;将所述标记为可接收新连接的进程与所述新连接建立连接,且增加本进程的连接数,并将所述本进程标记为不可接收新连接。上述多进程设备的网络连接方法和系统,每次选择每组进程中连接数最少的进程作为可接收新连接的进程,与新连接建立连接,能均匀配置各进程的连接数,降低性能损耗。

【技术实现步骤摘要】
多进程设备的网络连接方法和系统
本专利技术涉及网络
,特别是涉及一种多进程设备的网络连接方法和系统。
技术介绍
当设备中有多个进程/线程在等待同一资源时,每当资源可用,所有的进程/线程都来竞争资源,但只有一个进程才能获得资源,对其余进程而言,造成了性能的损耗,即为惊群问题。进程越多,惊群的影响也就越大。在多进程并发接收连接的服务器时,需要尽可能消除惊群问题带来的性能损耗,传统的方式是例如Nginx等服务器通过锁实现当前只有一个进程来接收连接的方法,如图1所示,各个进程共享了一个全局的互斥锁,在服务器初始化完毕,进程开始竞争该互斥锁,而持有互斥锁的进程才可以监听新连接,内核通过Epoll通知新连接的到来,在连接建立后该进程释放掉锁,其它进程在竞争互斥锁时才能有机会持有互斥锁。当前进程是否能继续参与竞争锁,必须判断其连接数是否超过限额,若超过,则标记无权继续竞争锁而不能接收新连接,其只能处理已连接的数据收发等业务逻辑,等连接检查逻辑发现释放连接到低于限额时,重新参与竞争而获得新连接,若未超过,则进程在处理完本次业务逻辑后,继续参与竞争接收新连接。然而,采用传统的方式,因多个进程总是竞争锁以获得新连接,特别是在多核服务器下,进程数配置较多,则竞争失败的概率增大,导致存在较大的性能损耗,且进程通过竞争锁随机获得新连接,但在处理完各连接数据后,进程可能释放该连接也可能一直保持该连接,导致连接数会随着持续运行而不均,进程连接不均则负载不均,CPU(CentralProcessingUnit,中央处理器)需要更频繁的调度,会额外增加中断和切换,导致性能的损耗。专利
技术实现思路
基于此,有必要针对传统的方式因采用锁和连接数不均导致性能损耗的问题,提供一种多进程设备的网络连接方法,能均匀配置连接数,降低性能损耗。此外,还有必要提供一种多进程设备的网络连接系统,能均匀配置连接数,降低性能损耗。一种多进程设备的网络连接方法,包括以下步骤:按照配置的组数及总进程数对进程进行分组得到每组的进程数;根据每组的进程数获取每组进程中连接数最少的进程;将所述每组进程中连接数最少的进程标记为可接收新连接的进程;获取新连接;将所述标记为可接收新连接的进程与所述新连接建立连接;增加本进程的连接数,并将所述本进程标记为不可接收新连接。一种多进程设备的网络连接系统,包括:分组模块,用于按照配置的组数及总进程数对进程进行分组得到每组的进程数;第一获取模块,用于根据每组的进程数获取每组进程中连接数最少的进程;标记模块,用于将所述每组进程中连接数最少的进程标记为可接收新连接的进程;第二获取模块,用于获取新连接;建立模块,用于将所述标记为可接收新连接的进程与所述新连接建立连接;计数模块,用于增加本进程的连接数;所述标记模块还用于将所述本进程标记为不可接收新连接。上述多进程设备的网络连接方法和系统,将设备的进程分成多个组,每次获取每组进程中连接数最少的进程,并将该连接数最少的进程标记为可接收新连接的进程,获取到新连接后,将可接收新连接的进程与新连接建立连接,并将该可接收新连接的进程标记为不可接收新连接的进程,实现了各组内进程不存在惊群影响,且每次选择连接数最少的进程作为可接收新连接的进程,能均匀配置各进程的连接数,降低性能损耗,不会因进程连接不均引起负载不均而导致处理器频繁的调度额外增加中断和上下文的切换。附图说明图1为传统的Nginx进程的连接均衡示意图;图2为一个实施例中多进程设备的网络连接方法的应用环境示意图;图3为一个实施例中多进程设备的网络连接方法的流程图;图4为传统的Nginx对新连接的处理示意图;图5为本专利技术的多进程设备的网络连接方法对新连接的处理示意图;图6为另一个实施例中多进程设备的网络连接方法的流程图;图7为一个实施例中多进程设备的网络连接系统的结构框图;图8为另一个实施例中多进程设备的网络连接系统的结构框图;图9为另一个实施例中多进程设备的网络连接系统的结构框图;图10为另一个实施例中多进程设备的网络连接系统的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。可以理解,本专利技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本专利技术的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。图2为一个实施例中多进程设备的网络连接方法的应用环境示意图。如图2所示,以设备为服务器为例,该应用环境包括服务器210和至少一个客户端220。服务器210与客户端220通过网络进行连接。客户端220可为多个,采用客户端220a、客户端220b、客户端220c表示等。客户端220可为手机、平板电脑、台式计算机、个人数字助理、穿戴式设备等。服务器210可包括硬件和运行于硬件上的操作系统和应用程序。硬件可包括网卡、处理器(一个或多个)和存储器等。处理器为多个,采用处理器1、处理器2等表示。操作系统可为Linux、IOS、Windows等。本实施例中,操作系统采用的是Linux操作系统。服务器210上运行多个进程如P1、P2、……、Pn,采用主进程配置绑定某一个系统端口,其余各进程通过该端口,在新连接到来通知后,同多个客户端220建立连接以处理多个业务请求。服务器210通过TCP(TransmissionControlProtocol,传输控制协议)协议等与客户端220进行通信。服务器210按照配置的组数及总进程数对进程进行分组得到每组的进程数,并对每组进程中每个进程分别进行标号,获取每组进程中连接数小于连接数阈值、连接数最少且最早建立连接的进程,将该进程标记为可接收新连接的进程,如此每次都筛选出连接数最少的进程,能够均衡各进程的连接数,从而降低由于进程负载不均导致的处理器频繁调度下的中断和上下文切换的性能损耗。且每个分组同时最多只有一个进程可以接收连接,组内不存在惊群问题。多个分组的每个分组都有一个进程可以接收连接,即多个进程并发接收连接,相比于单个进程,提高了对新连接的响应速度。此外,在其他实施例中,设备可为有多个进程,需要连接多个其他设备的设备。图3为一个实施例中多进程设备的网络连接方法的流程图。如图3所示,一种多进程设备的网络连接方法,包括以下步骤:步骤302,按照配置的组数及总进程数对进程进行分组得到每组的进程数。具体地,组数和总进程数可根据设备的处理能力及业务逻辑繁忙、阻塞情况进行确定。通常,组数应该尽可能少,以最大程序降低惊群的影响。但在业务逻辑繁忙、阻塞处理多时,根据情况提高分组的组数,提高对连接的响应速度。总进程数为N,组数为M,则每组的进程数为K=N/M。步骤304,根据每组的进程数获取每组进程中连接数最少的进程。具体地,获取每组进程中各个进程的连接数,再比较各个进程的连接数,得到连接数最少的进程。步骤306,将该每组进程中连接数最少的进程标记为可接收新连接的进程。具体地,将各组进程中连接数最少的进程标记本文档来自技高网
...
多进程设备的网络连接方法和系统

【技术保护点】
一种多进程设备的网络连接方法,包括以下步骤:按照配置的组数及总进程数对进程进行分组得到每组的进程数;根据每组的进程数获取每组进程中连接数最少的进程;将所述每组进程中连接数最少的进程标记为可接收新连接的进程;获取新连接;将所述标记为可接收新连接的进程与所述新连接建立连接;增加本进程的连接数,并将所述本进程标记为不可接收新连接。

【技术特征摘要】
1.一种多进程设备的网络连接方法,包括以下步骤:按照配置的组数及总进程数对进程进行分组得到每组的进程数;获取每组进程中各个进程的连接数,再比较各个进程的连接数,得到连接数最少的进程;将所述每组进程中连接数最少的进程标记为可接收新连接的进程;获取新连接;将所述标记为可接收新连接的进程与所述新连接建立连接;增加本进程的连接数,并将所述本进程标记为不可接收新连接。2.根据权利要求1所述的方法,其特征在于,在所述获取每组进程中连接数最少的进程的步骤之后,所述方法还包括:判断每组进程中连接数最少的进程的连接数是否小于连接数阈值;若是,则将每组进程中连接数最少的进程标记为可接收新连接的进程,若否,则当前组内进程均标记为不可接收新连接。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取每组进程中连接数小于连接数阈值、连接数最少且最早建立连接的进程,将所述进程标记为可接收新连接的进程。4.根据权利要求1所述的方法,其特征在于,将所述每组进程中连接数最少的进程标记为可接收新连接的进程的步骤之后,所述方法还包括:所述标记为可接收新连接的进程处理已连接数据的收发;在本次数据的收发处理完毕后,判断所述标记为可接收新连接的进程是否可接收新连接,若是,则监听新连接,若否,则继续处理已连接数据的收发。5.根据权利要求3所述的方法,其特征在于,在监听新连接的步骤之后,所述方法还包括:判断是否有新连接,若是,则获取新连接,若否,则继续处理已连接数据的收发。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:将每组进程中的各个进程的连接数在各进程间通过内存共享。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:检测每组进程中是否有进程释放连接,若是,则减少释放连接的进程的连接数,若否,则不作处理。8.一种多进程设备的网络连接系统,其特征在于,包括:分组模块,用于按照配置的组数及总进程数对进程进行分组得到每组的进程数;第一获取模块,用于获取每组进程中各个进程的连接数,再比较各个进程的连接数,得到连接数最少的进程;标记模块,用于将所述每组...

【专利技术属性】
技术研发人员:麦茂识牛志强陈维赵黎斌
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1