一种ceph集群的网络通讯方法、存储介质及处理器与流程

文档序号:29497920发布日期:2022-04-06 16:11阅读:262来源:国知局
一种ceph集群的网络通讯方法、存储介质及处理器与流程

1.本发明属于网络通讯技术领域,具体涉及一种ceph集群的网络通讯方法、存储介质及处理器。


背景技术:

2.现有版本中的ceph集群的网络通讯是采用事件驱动型的epoll机制,它首先需要在linux系统中创建epoll实例,同时还要准备好工作线程池,而这个工作线程池的大小是需要事先确定好的,当客户端发过来的网络连接建立完成后,会将socket文件描述符添加到epoll实例的一个内部列表中, 同时会取一个工作线程与这个socket文件描述符进行关联,即一个socket文件描述符对应一个工作线程,当该文件描述符上发生读或写事件时,对应的工作线程就会处理相应的网络包。
3.这种机制被广泛用于需要高性能高并发连接的应用场景中,然而ceph集群中在使用这种机制来提供异步消息通讯方法时存在工作线程间负载不均衡问题,从而会导致网络吞吐量的下降,影响上层的应用性能。针对这种异步通讯方法存在的问题,目前尚未提出有效地解决方案。


技术实现要素:

4.本发明的目的在于提供一种ceph集群的网络通讯方法、存储介质及处理器,解决现有技术中ceph集群中在使用这种机制来提供异步消息通讯方法时存在工作线程间负载不均衡问题的技术问题。
5.为了解决上述技术问题,本发明采用技术方案实现:一种ceph集群的网络通讯方法,在linux系统中创建epoll实例和工作线程池,按照多线程异步消息机制对socket进行读/写操作;所述多线程异步消息机制为一个socket文件描述符关联多个工作线程的机制,且每个文件描述符关联工作线程的数目可以动态自适应调整。
6.本发明中,采用多线程、异步通讯机制,工作线程在处理所关联的fd事件过程中,如果同时有其它fd2读写事件触发,就可以将fd2关联到其它空闲工作线程进行处理,这样就可以提高网络io处理效率。且动态自适应调整文件描述符关联工作线程的数目,对fd关联的工作线程的负载进行有效地控制,解决了传统的异步并发消息机制大量负载不均衡问题。
7.进一步改进,文件描述符关联工作线程的数目动态自适应调整的过程如下:在创建工作线程池过程中,设置监控线程和锁时间阀值,客户端发起io请求时,根据预先设置的锁时间阀值进行判断:i)如果监控线程监控到当前文件描述符关联的所有工作线程的锁时间均大于设定的锁时间阀值,则删除该文件描述符关联的相应工作线程;然后将该文件描述符与工作线程池中其他锁时间较短的工作线程相关联,由它来处理文件描述符相关的数据包;
i i)如果如果监控线程监控到当前文件描述符关联的所有工作线程的锁时间均小于等于设定的锁时间阀值,则选择一个空闲的工作线程,将文件描述符添加到该工作线程中epoll的内部列表中。
8.进一步改进,在删除文件描述符关联的工作相应线程过程中,根据lru规则将删除使用率最少的那个工作线程。
9.进一步改进,在选择空闲工作线程过程中,选择处理数据量负载较小的工作线程。
10.一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在程序运行时控制所述计算机可读存储介质所在设备执行上述的ceph集群的网络通讯方法。
11.一种ceph集群的网络通讯处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的ceph集群的网络通讯方法。
12.与现有技术相比,本发明技术方案具有如下有益效果:本发明中,采用多线程、异步通讯机制,工作线程在处理所关联的fd事件过程中,如果同时有其它fd2读写事件触发,就可以将fd2关联到其它空闲工作线程进行处理,这样就可以提高网络io处理效率。且动态自适应调整文件描述符关联工作线程的数目,对fd关联的工作线程的负载进行有效地控制,解决了传统的异步并发消息机制大量负载不均衡问题。
附图说明
13.图1为本发明所述一种ceph集群的网络通讯方法的流程图。
具体实施方式
14.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
15.实施例一:如图1所示,一种ceph集群的网络通讯方法,在linux系统中创建epoll实例和工作线程池,按照多线程异步消息机制对socket进行读/写操作;所述多线程异步消息机制为一个socket文件描述符关联多个工作线程的机制,且每个文件描述符关联工作线程的数目可以动态自适应调整。
16.本发明中,采用多线程、异步通讯机制,工作线程在处理所关联的fd事件过程中,如果同时有其它fd2读写事件触发,就可以将fd2关联到其它空闲工作线程进行处理,这样就可以提高网络io处理效率。且动态自适应调整文件描述符关联工作线程的数目,对fd关联的工作线程的负载进行有效地控制,解决了传统的异步并发消息机制大量负载不均衡问题。
17.本发明中采用一个socket文件描述符对应多个工作线程。例如,现在有一个工作线程,被分配给了文件描述符fd1和文件描述符fd2,如果是使用现有技术中一个socket文件描述符对应一个工作线的异步消息机制,当该工作线程在处理fd1时,而fd2上发生了读写事件,那么该工作线程必须等到处理完fd1后才能处理fd2。但如果是使用本发明的多线程的消息机制,fd2上的读写事件可以被另一个空闲的工作线程来处理,这样性能相对于之前的方法就有了极大的提升。
18.在本实施例中,在初始化工作线程池过程中,设定锁时间阀值;文件描述符关联工作线程的数目动态自适应调整的过程如下:当客户端发起io请求时,根据预先设置的锁时间阀值进行判断:i)如果当前文件描述符关联的所有工作线程的锁时间均大于该阀值,删除该文件描述符关联的相应工作线程;然后将该文件描述符与线程池中其他锁时间较短的工作线程相关联,由它来处理文件描述符相关的数据包;i i)如果小于该阀值,选择一个空闲的工作线程,将文件描述符添加到该工作线程中epoll的内部列表中。
19.针对现有技术中的一个fd关联一个工作线程机制,不存在数据竞争导致的乱序问题,而引入多个工作线程就必须加入锁机制,但是fd的锁时间不宜太长,不然就降低网络吞吐量,所以根据锁时间长短动态调整每个fd关联的工作线程数目。创建监控线程,使其负责监控fd所关联所有工作线程锁时间,将它与设定的阀值进行比较,如果是超过了阀值,就以lru的方式删除fd中关联的相应线程;如果没有超过,则选择一个空闲的线程,把它添加进来。
20.在本实施例中,在删除文件描述符关联的工作相应线程过程中,根据lru规则将删除使用率最少的那个工作线程。
21.本发明中,fd为file description的缩写,表示文件描述符。
22.实施例二:一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在程序运行时控制所述计算机可读存储介质所在设备执行上述的ceph集群的网络通讯方法。
23.实施例三:一种ceph集群的网络通讯处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的ceph集群的网络通讯方法。
24.在本实施例中,在选择空闲工作线程过程中,选择处理数据量负载较小的工作线程。上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1