一种cifs网络带宽的优化方法、装置和介质

文档序号:1589721 发布日期:2020-01-03 浏览:13次 >En<

阅读说明:本技术 一种cifs网络带宽的优化方法、装置和介质 (Method, device and medium for optimizing CIFS (common information File System) network bandwidth ) 是由 戚勇 吕玉彬 李佩 于 2019-09-05 设计创作,主要内容包括:本发明公开了一种CIFS网络带宽的优化方法、装置和介质,其中,该方法包括:当客户端与服务端连接时,启动通道链路并建立多个通道;为每个通道建立对应通道线程以用于处理通道的网络IO请求;通过通道和对应通道线程进行数据传输。本发明通过建立多个通道的方式提高了数据从客户端到服务端的smbd服务进程的传输效率,通过为每个通道建立对应的通道线程,提高了各通道处理网络IO请求的效率,把从客户端到服务端的smbd服务进程的数据传输过程由单通道单进程变成了多通道多进程,提升了文件传输的性能和效率。(The invention discloses a method, a device and a medium for optimizing CIFS network bandwidth, wherein the method comprises the following steps: when the client is connected with the server, starting a channel link and establishing a plurality of channels; establishing a corresponding channel thread for each channel for processing a network IO request of the channel; and carrying out data transmission through the channel and the corresponding channel thread. The invention improves the transmission efficiency of the smbd service process from the client to the server by establishing a plurality of channels, improves the efficiency of each channel for processing the network IO request by establishing a corresponding channel thread for each channel, changes the data transmission process of the smbd service process from the client to the server from a single channel to a multi-channel multi-process, and improves the performance and efficiency of file transmission.)

一种CIFS网络带宽的优化方法、装置和介质

技术领域

本发明涉及计算机领域,特别是涉及一种CIFS网络带宽的优化方法、装置和介质。

背景技术

随着网络的发展,应用通用Internet文件系统(CIFS协议)传递数据被越来越多的企业应用于广域网。

现有的CIFS传输协议工作方式如图1所示,客户端与服务端的smbd服务进程通过单通道单进程实现数据的交互,数据从smbd服务进程到文件系统的落盘采用的是多进程的方式。采用单通道单进程的方式从客户端到服务端的smbd服务进程进行数据传输限制了文件传输的性能和效率。

发明内容

本发明的目的是提供一种CIFS网络带宽的优化方法、装置和介质,当客户端与服务端连接时,通过建立多个通道和通道对应的通道线程实现数据的传输,以此提升文件传输的性能和效率。

为实现上述目的,本发明提供一种CIFS网络带宽的优化方法,包括:

当客户端与服务端连接时,启动通道链路并建立多个通道;

为每个所述通道建立对应通道线程以用于处理所述通道的网络IO请求;

通过所述通道和对应通道线程进行数据传输。

优选地,还包括:

当所述通道线程接收到非网络IO请求时,将所述非网络IO请求转发给主线程。

优选地,还包括:

当所述数据传输发生异常时,销毁对应的所述通道线程。

优选地,所述通过所述通道和对应通道线程进行数据传输具体为:

通过所述通道和对应通道线程传输带有编号的所述数据。

优选地,还包括:

当各所述通道线程收到所述数据后,为所述数据按带有所述通道信息的方式顺序编号并申请相应内存父节点。

优选地,还包括:

控制所述通道线程按照互斥的模式访问TDB数据库。

优选地,还包括:

当所述通道线程对日志进行操作时,控制日志函数执行加锁操作;

当所述通道线程完成对所述日志的操作时,控制所述日志函数执行放锁操作。

为实现上述目的,本发明还提供一种CIFS网络带宽的优化装置,包括:

启动模块,用于当客户端与服务端连接时,启动通道链路并建立多个通道;

建立线程模块,用于为每个所述通道建立对应通道线程以用于处理所述通道的网络IO请求;

传输模块,用于通过所述通道和对应通道线程进行数据传输。

为实现上述目的,本发明还提供一种CIFS网络带宽的优化装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一项所述的CIFS网络带宽的优化方法的步骤。

为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的CIFS网络带宽的优化方法的步骤。

本发明所提供的CIFS网络带宽的优化方法,包括:当客户端与服务端连接时,服务端启动通道链路并建立多个通道,为每个通道建立对应通道线程以用于处理通道的网络IO请求。通过通道和对应通道线程进行数据传输。本发明通过建立多个通道的方式提高了数据从客户端到服务端的smbd服务进程的传输效率。通过为每个通道建立对应的通道线程,提高了各通道处理网络IO请求的效率,把从客户端到服务端的smbd服务进程的数据传输过程由单通道单进程变成了多通道多进程,提升了文件传输的性能和效率。

本发明提供的CIFS网络带宽的优化装置及介质也具有CIFS网络带宽的优化方法同样的有益效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种CIFS传输数据的示意图;

图2为本发明实施例提供的一种CIFS网络带宽的优化方法的流程图;

图3为本发明实施例提供的一种CIFS网络带宽的优化装置的结构图;

图4为本发明实施例提供的另一种CIFS网络带宽的优化装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

本发明的核心是提供一种CIFS网络带宽的优化方法、装置和介质,当客户端与服务端连接时,通过建立多个通道和通道对应的通道线程实现数据的传输,以此提升文件传输的性能和效率。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图2为本发明实施例提供的一种CIFS网络带宽的优化方法的流程图,如图2所示,CIFS网络带宽的优化方法包括:

S10:当客户端与服务端连接时,启动通道链路并建立多个通道。

S20:为每个通道建立对应通道线程以用于处理通道的网络IO请求。

S30:通过通道和对应通道线程进行数据传输。

需要说明的是,本实施例的执行主体是服务端的控制器。对于步骤S10来说,服务端初始化通道,对端口进行监听,等待客户端的连接,当客户端与服务端连接时,服务端启动通道链路并根据用户的实际需求建立多个通道以用于传输客户端到服务端的数据。需要说明的是,多个通道传递的数据组合在一起与原先一个通道传输的数据相同。

对于步骤S20来说,服务端为每个通道建立对应通道线程以用于处理该通道的网络IO请求。需要说明的是网络IO请求,具体指读写请求。建立通道线程的代码如下:

smbXsrv_client_connection_pass_loop

pthread_create(xx,smbd_channel_thread,xx)。

对于步骤S30来说,当建立好通道和对应通道线程后就可以为客户端与服务端传输数据。具体的实施场景为,服务端初始化通道,对端口进行监听,等待客户端的连接,当客户端与服务端连接时,服务端启动通道链路并根据用户的实际带宽需求和客户端将要发送的数据的大小建立3个通道,服务端为每个通道建立对应通道线程,客户端将要发送的数据分成3块送入对应通道,通道线程处理对应通道的网络IO,服务端收到客户端发送的数据。

本发明所提供的CIFS网络带宽的优化方法,包括:当客户端与服务端连接时,服务端启动通道链路并建立多个通道,为每个通道建立对应通道线程以用于处理通道的网络IO请求。通过通道和对应通道线程进行数据传输。本发明通过建立多个通道的方式提高了数据从客户端到服务端的smbd服务进程的传输效率。通过为每个通道建立对应的通道线程,提高了各通道处理网络IO请求的效率,把从客户端到服务端的smbd服务进程的数据传输过程由单通道单进程变成了多通道多进程,提升了文件传输的性能和效率。

在上一实施例的基础上,在另一实施例中,当通道线程接收到非网络IO请求时,将非网络IO请求转发给主线程。

当通道线程接收到非网络IO请求时,将非网络IO请求转发给主线程,可以理解的是,主线程对非网络IO请求进行处理后将处理结果返回通道线程并发送至对应客户端。

需要说明的是主线程,当客户端初始化通道时,服务端除了为每个通道建立对应通道线程以用于处理通道的网络IO请求外,还建立了一个主线程,用于处理通道线程接收到的非网络IO请求。本发明的非网络IO请求是指网络IO请求以外的请求。

本实施例所提供的将非网络IO请求转发给主线程的方法减少了对现有技术的单线程的代码的修改,增加了系统的稳定性。

在上一实施例的基础上,在另一实施例中,当数据传输发生异常时,销毁对应的通道线程。

在具体实施中,如果数据传输发生异常的是个别通道,则销毁发生异常的通道的资源即删除异常通道所占用的内存等资源,其它通道仍可正常工作,如果数据传输发生异常的是主线程,则销毁所有通道的资源。本发明不对数据传输异常作具体的定义,数据传输异常可能是数据处理异常,也可能是通道断开等其他异常情况。

本实施例所提供的数据传输异常时的解决办法增强了系统的鲁棒性,避免由于数据异常引起系统锁死等不良后果。

在上一实施例的基础上,在另一实施例中,通过通道和对应通道线程传输带有编号的数据。

需要说明的是带有编号的数据,客户端或服务端将大块数据分割为小块数据通过各通道进行小块数据传输,为了便于客户端或服务端还原数据,客户端将各通道和对应通道线程传输的数据进行编号。作为优选的实施方式,把编号信息存储到小块数据的头部。例如,客户端与服务端连接,根据用户的带宽要求和客户端所传输的数据的大小建立3个通道,并为3个通道建立对应的通道线程,客户端将所传输的数据分成3个数据块,并为这3个数据块编号,将编号的3个数据块传送到对应通道,通道线程处理通道的网络IO请求,服务端根据数据块的编号将数据还原。

本实施例传输的带有编号的数据有利于将接收的数据还原。

在上一实施例的基础上,在另一实施例中,当各通道线程收到数据后,为数据按带有通道信息的方式顺序编号并申请相应内存父节点。

需要说明的是申请相应内存父节点,即为不同通道线程申请不同内存父节点,避免多线程同时更新同一内存节点。当服务端接收到客户端本次传递的所有数据后,根据内存父节点带有的通道信息的顺序编号还原客户端传递的信息,并释放本次申请的父节点。

在具体实施中,当各通道线程收到数据后为其按带有通道信息的方式顺序编号并根据编号为其申请内存父节点以便于数据的存储。

本实施例为数据按带有通道信息的方式顺序编号并申请相应内存父节点避免了多线程同时更新同一内存节点,实现了多线程安全访问内存。

在上一实施例的基础上,在另一实施例中,控制通道线程按照互斥的模式访问TDB数据库,即当一个通道线程访问TDB数据库时,其他线程只能排队等待,只有当前一个访问TDB数据库的线程离开后才允许下一个通道线程访问TDB数据库,使同一时刻只有一个通道线程访问TDB数据库,避免多线程同时访问TDB数据库,造成访问错误。

在上一实施例的基础上,在另一实施例中,当通道线程对日志进行操作时,控制日志函数执行加锁操作,当通道线程完成对日志的操作时,控制日志函数执行放锁操作,使同一时刻只有一个通道线程对日志进行操作,避免多线程同时对日志进行操作,出现错误。例如,当通道线程a控制日志进行打印时,日志函数执行加锁操作,使其它想对日志进行操作的通道线程等待,直到通道线程a完成打印操作,日志函数执行放锁操作,其它想对日志进行操作的通道线程中的一个执行其想对日志进行的操作,日志函数执行加锁动作,以此规则依次访问日志。

上文详细描述了CIFS网络带宽的优化方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的CIFS网络带宽的优化装置。

图3为本发明实施例提供的一种CIFS网络带宽的优化装置的结构图,如图3所示,CIFS网络带宽的优化装置具体包括:

启动模块10,用于当客户端初始化通道时,启动通道链路并建立多个通道;

建立线程模块20,用于为每个通道建立对应通道线程以用于处理通道的网络IO请求;

传输模块30,用于通过通道和对应通道线程进行数据传输。

由于CIFS网络带宽的优化装置部分的实施例与方法部分的实施例相互对应,因此CIFS网络带宽的优化装置的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本发明所提供的CIFS网络带宽的优化装置,包括:当客户端与服务端连接时,服务端启动通道链路并建立多个通道,为每个通道建立对应通道线程以用于处理通道的网络IO请求。通过通道和对应通道线程进行数据传输。本发明通过建立多个通道的方式提高了数据从客户端到服务端的smbd服务进程的传输效率。通过为每个通道建立对应的通道线程,提高了各通道处理网络IO请求的效率,把从客户端到服务端的smbd服务进程的数据传输过程由单通道单进程变成了多通道多进程,提升了文件传输的性能和效率。

作为优选地实施方式,还包括:

转发模块,用于当通道线程接收到非网络IO请求时,将非网络IO请求转发给主线程。

作为优选地实施方式,还包括:

销毁模块,用于当数据传输发生异常时,销毁对应的通道线程。

作为优选地实施方式,还包括:

申请父节点模块,用于当各通道线程收到数据后,为数据按带有通道信息的方式顺序编号并申请相应内存父节点。

作为优选地实施方式,还包括:

互斥模块,用于控制通道线程按照互斥的模式访问TDB数据库。

作为优选地实施方式,还包括:

控制模块,用于当通道线程对日志进行操作时,控制日志函数执行加锁操作;

当通道线程完成对日志的操作时,控制日志函数执行放锁操作。

本发明还提供一种CIFS网络带宽的优化装置。图4为本发明实施例提供的另一种CIFS网络带宽的优化装置的结构图,如图4所示,该装置包括:

存储器40,用于存储计算机程序;

处理器41,用于执行计算机程序时实现如上述任一实施例的CIFS网络带宽的优化方法的步骤。

其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器41可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器41可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器40至少用于存储以下计算机程序401,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任一实施例公开的CIFS网络带宽的优化方法中的相关步骤。另外,存储器40所存储的资源还可以包括操作系统402和数据403等,存储方式可以是短暂存储或者永久存储。其中,操作系统402可以为Windows。数据403可以包括但不限于上述方法所涉及到的数据。

在一些实施例中,CIFS网络带宽的优化装置还可包括有显示屏42、输入输出接口43、通信接口44、电源45以及通信总线46。

本领域技术人员可以理解,图4中示出的结构并不构成CIFS网络带宽的优化装置的限定,可以包括比图示更多或更少的组件。

本申请实施例提供的CIFS网络带宽的优化装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的CIFS网络带宽的优化方法,效果同上。

本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的CIFS网络带宽的优化方法的步骤。

可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例中提供的计算机可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的CIFS网络带宽的优化方法的步骤,效果同上。

以上对本发明所提供的一种CIFS网络带宽的优化方法、装置和介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种资源匹配方法、装置、服务器及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!