System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据传输,具体涉及请求管理方法、装置、计算机设备以及存储介质。
技术介绍
1、smb(server message block protocol,服务器信息块协议)技术是微软公司提供的一种不同计算节点之间实现文件共享访问的协议技术,在windows系统上默认已经集成了该技术,对于linux系统,则一般借助第三方服务套件,当前常用的第三方服务套件主要是samba,该samba可以对客户端发送的smb请求进行处理,以实现服务端与客户端之间的数据传输。
2、这里,如图1所示为上述samba的架构图,其中,该samba采用的是多进程的结构。具体的,主进程为用于管理服务端中的samba运行状态的进程,子进程用于与客户端连接,并响应于smb请求为客户端提供服务,通常来说,每个子进程可以与至少一个客户端相关联。
3、基于此,可以适应于客户端的增加控制子进程的建立,然而,随着客户端数量增多,进程数量也随之增大,当客户端数量过多时,在服务端同样会有很多的子进程占用,从而带来较高的系统资源占用,降低系统的处理效率,甚至影响系统运行。
技术实现思路
1、有鉴于此,本专利技术提供了一种请求管理方法、装置、计算机设备以及存储介,以解决samba架构中子进程数量膨胀导致系统资源占用过高的问题。
2、第一方面,本专利技术提供了一种请求管理方法,该方法包括:
3、响应于客户端发送的目标服务的协商请求,在接收线程组中为客户端确定第一目标线程,其中,目标服
4、基于第一目标线程,接收客户端发送的目标服务对应的服务请求;
5、在工作线程组中为服务请求分配或者建立满足执行条件的第二目标线程,以基于第二目标线程执行服务请求。
6、在本专利技术实施例中,首先可以响应于客户端发送的目标服务的协商请求,在接收线程组中为客户端建立或者分配第一目标线程,其中,目标服务用于进行服务端与客户端之间进行数据共享,协商请求用于请求与服务端建立通信。然后,可以基于第一目标线程,接收客户端发送的目标服务对应的服务请求,并在工作线程组中为服务请求分配或者建立满足执行条件的第二目标线程,以基于第二目标线程执行服务请求,从而采用接收线程组与工作线程组结合的方式管理服务请求,细化了服务请求的管理粒度,以便于更合理的管理线程数量,进而降低了服务端的系统资源占用,提高了系统的处理效率。
7、在一种可选的实施方式中,响应于客户端发送的目标服务的协商请求,在接收线程组中为客户端确定第一目标线程,包括:
8、向客户端展示服务端中的待共享文件列表;
9、获取客户端响应于对待共享文件列表中目标数据的共享指令生成的协商请求;
10、将协商请求发送至主线程;
11、在主线程接收到协商请求后,将协商请求发送至接收线程组;
12、基于接收线程组,获取客户端的套接字句柄;
13、获取预先为接收线程组设置的第一数量阈值,其中,第一数量阈值用于指示接收线程组所能容纳的最大第一线程数量;
14、确定接收线程组中第一线程的数量是否达到第一数量阈值;
15、若是,基于预设分配次序,在第一线程确定第一目标线程;
16、若否,在接收线程组中建立第一目标线程;
17、将套接字句柄分发给第一目标线程。
18、在本专利技术实施例中,可以适应于请求连接的客户端的加入,在接收线程组中建立或者分配对应的第一目标线程,这里,每个第一目标线程可以对应多个客户端,从而避免随着客户端接入数量的增加导致第一线程的数量持续增加,降低了服务端的系统资源占用。
19、在一种可选的实施方式中,上述方法还包括:
20、在接收到句柄配置请求后,为接收线程组配置与第一数量阈值相匹配的管道句柄,其中,管道句柄用于进行主线程与接收线程组中第一线程间的通信,主线程用于接收协商请求。
21、在本专利技术实施例中,可以通过第一数量阈值限制接收线程组中第一线程的数量,从而避免第一线程的数量无限增长下去,进而影响到服务端系统的正常运行。
22、在一种可选的实施方式中,上述方法还包括:
23、监测接收线程组中每个第一线程对应的关联客户端的计数,得到不对应关联客户端的空闲第一线程;
24、回收空闲第一线程。
25、在本专利技术实施例中,可以确定空闲第一线程并回收,从而在保障客户端访问性能的同时,减少对服务端系统资源的占用,以提高服务器的整体性能。
26、在一种可选的实施方式中,在工作线程组中为服务请求分配或者建立满足执行条件的第二目标线程,包括:
27、查询工作线程组中各个第二线程的占用状态,确定是否存在空闲第二线程;
28、若是,将服务请求分配至空闲第二线程;
29、若否,在工作线程组中第二线程的数量未达到第二数量阈值时,为服务请求建立第二目标线程。
30、在本专利技术实施例中,在通过上述工作线程组执行上述smb请求时,若工作线程组中不存在空闲线程,则可以为该smb请求分配或者建立第二目标线程,从而在控制第二线程总量的情况下,保障了客户端的访问性能。
31、在一种可选的实施方式中,上述方法还包括:
32、在工作线程组中不存在空闲第二线程,且第二线程的数量达到第二数量阈值时,将服务请求存入任务队列,以等待第二目标线程或者空闲第二线程调取任务队列。
33、在本专利技术实施例中,可以通过任务队列暂存接收线程组发送的smb请求,并基于该任务队列将smb请求分配给对应的第二线程进行执行,从而保证空闲第二线程可以更高效地处理smb任务队列中的smb请求。
34、在一种可选的实施方式中,上述方法还包括:
35、检测工作线程组中的空闲第二线程,并将任务队列中的服务请求分配至空闲第二线程;或者在第二线程的占用状态变更为空闲状态时,响应于第二线程向任务队列发送的获取请求,将服务请求分配至空闲第二线程。
36、在本专利技术实施例中,可以通过任务队列暂存接收线程组发送的smb请求,并基于该任务队列将smb请求分配给对应的第二线程进行执行,从而保证空闲第二线程可以更高效地处理smb任务队列中的smb请求。
37、在一种可选的实施方式中,上述方法还包括:
38、监测接工作程组中空闲第二线程对应的空闲时间;
39、在空闲时间超出时间阈值后,回收空闲第二线程。
40、在本专利技术实施例中,可以对空闲时间超出时间阈值的空闲第二线程进行回收,从而在保障客户端访问性能的同时,减少对服务端系统资源的占用,以提高服务器的整体性能。
41、第二方面,本专利技术提供了一种请求管理装置,该装置包括:
42、确定模块,用于响应于客户端发送的目标服务的协商请求,在接收线程本文档来自技高网...
【技术保护点】
1.一种请求管理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述响应于客户端发送的目标服务的协商请求,在接收线程组中为所述客户端确定第一目标线程,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述在工作线程组中为所述服务请求分配或者建立满足执行条件的第二目标线程,包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种请求管理装置,其特征在于,所述装置包括:
10.一种计算机设备,其特征在于,包括:
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至8中任一项所述的请求管理方法。
【技术特征摘要】
1.一种请求管理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述响应于客户端发送的目标服务的协商请求,在接收线程组中为所述客户端确定第一目标线程,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述在工作线程组中为所述服务请求分配或者建立满足执行条件的第二目标线程,包括:
...
【专利技术属性】
技术研发人员:李世杰,
申请(专利权)人:郑州浪潮数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。