[发明专利]多进程设备的网络连接方法和系统有效
申请号: | 201610101342.1 | 申请日: | 2016-02-24 |
公开(公告)号: | CN105721342B | 公开(公告)日: | 2017-08-25 |
发明(设计)人: | 麦茂识;牛志强;陈维;赵黎斌 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L12/911 | 分类号: | H04L12/911 |
代理公司: | 广州华进联合专利商标代理有限公司44224 | 代理人: | 何平,邓云鹏 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 设备 网络 连接 方法 系统 | ||
技术领域
本发明涉及网络技术领域,特别是涉及一种多进程设备的网络连接方法和系统。
背景技术
当设备中有多个进程/线程在等待同一资源时,每当资源可用,所有的进程/线程都来竞争资源,但只有一个进程才能获得资源,对其余进程而言,造成了性能的损耗,即为惊群问题。进程越多,惊群的影响也就越大。在多进程并发接收连接的服务器时,需要尽可能消除惊群问题带来的性能损耗,传统的方式是例如Nginx等服务器通过锁实现当前只有一个进程来接收连接的方法,如图1所示,各个进程共享了一个全局的互斥锁,在服务器初始化完毕,进程开始竞争该互斥锁,而持有互斥锁的进程才可以监听新连接,内核通过Epoll通知新连接的到来,在连接建立后该进程释放掉锁,其它进程在竞争互斥锁时才能有机会持有互斥锁。当前进程是否能继续参与竞争锁,必须判断其连接数是否超过限额,若超过,则标记无权继续竞争锁而不能接收新连接,其只能处理已连接的数据收发等业务逻辑,等连接检查逻辑发现释放连接到低于限额时,重新参与竞争而获得新连接,若未超过,则进程在处理完本次业务逻辑后,继续参与竞争接收新连接。
然而,采用传统的方式,因多个进程总是竞争锁以获得新连接,特别是在多核服务器下,进程数配置较多,则竞争失败的概率增大,导致存在较大的性能损耗,且进程通过竞争锁随机获得新连接,但在处理完各连接数据后,进程可能释放该连接也可能一直保持该连接,导致连接数会随着持续运行而不均,进程连接不均则负载不均,CPU(Central Processing Unit,中央处理器)需要更频繁的调度,会额外增加中断和切换,导致性能的损耗。
发明内容
基于此,有必要针对传统的方式因采用锁和连接数不均导致性能损耗的问题,提供一种多进程设备的网络连接方法,能均匀配置连接数,降低性能损耗。
此外,还有必要提供一种多进程设备的网络连接系统,能均匀配置连接数,降低性能损耗。
一种多进程设备的网络连接方法,包括以下步骤:
按照配置的组数及总进程数对进程进行分组得到每组的进程数;
根据每组的进程数获取每组进程中连接数最少的进程;
将所述每组进程中连接数最少的进程标记为可接收新连接的进程;
获取新连接;
将所述标记为可接收新连接的进程与所述新连接建立连接;
增加本进程的连接数,并将所述本进程标记为不可接收新连接。
一种多进程设备的网络连接系统,包括:
分组模块,用于按照配置的组数及总进程数对进程进行分组得到每组的进程数;
第一获取模块,用于根据每组的进程数获取每组进程中连接数最少的进程;
标记模块,用于将所述每组进程中连接数最少的进程标记为可接收新连接的进程;
第二获取模块,用于获取新连接;
建立模块,用于将所述标记为可接收新连接的进程与所述新连接建立连接;
计数模块,用于增加本进程的连接数;
所述标记模块还用于将所述本进程标记为不可接收新连接。
上述多进程设备的网络连接方法和系统,将设备的进程分成多个组,每次获取每组进程中连接数最少的进程,并将该连接数最少的进程标记为可接收新连接的进程,获取到新连接后,将可接收新连接的进程与新连接建立连接,并将该可接收新连接的进程标记为不可接收新连接的进程,实现了各组内进程不存在惊群影响,且每次选择连接数最少的进程作为可接收新连接的进程,能均匀配置各进程的连接数,降低性能损耗,不会因进程连接不均引起负载不均而导致处理器频繁的调度额外增加中断和上下文的切换。
附图说明
图1为传统的Nginx进程的连接均衡示意图;
图2为一个实施例中多进程设备的网络连接方法的应用环境示意图;
图3为一个实施例中多进程设备的网络连接方法的流程图;
图4为传统的Nginx对新连接的处理示意图;
图5为本发明的多进程设备的网络连接方法对新连接的处理示意图;
图6为另一个实施例中多进程设备的网络连接方法的流程图;
图7为一个实施例中多进程设备的网络连接系统的结构框图;
图8为另一个实施例中多进程设备的网络连接系统的结构框图;
图9为另一个实施例中多进程设备的网络连接系统的结构框图;
图10为另一个实施例中多进程设备的网络连接系统的结构框图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610101342.1/2.html,转载请声明来源钻瓜专利网。