[发明专利]一种SMB协议写入性能的优化方法、装置及可读存储介质有效
申请号: | 202011382581.1 | 申请日: | 2020-11-30 |
公开(公告)号: | CN112445620B | 公开(公告)日: | 2022-12-27 |
发明(设计)人: | 马龙;李雪生 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F12/02 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 彭博 |
地址: | 215000 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 smb 协议 写入 性能 优化 方法 装置 可读 存储 介质 | ||
本发明提供了一种SMB协议写入性能的优化方法,包括:接收客户端发送的SMB协议写请求;在缓存子层创建存储缓冲空间,接收并解析待写入数据,并保存到存储缓冲空间中;调用写入接口,在存储缓冲空间创建缓存器列表,并向客户端发送写响应;将待写入数据写入编译子层,并销毁缓存器列表。本发明还提供了一种SMB协议写入性能的优化装置,执行SMB协议写入性能的优化方法,本发明通过对写请求流程中内存拷贝逻辑进行优化,同时在调用写入接口后,直接向客户端反馈,减少了写请求响应时间,提高数据的写入性能。
技术领域
本发明涉及信息处理技术领域,特别涉及一种SMB协议写入性能的优化方法及程序。
背景技术
Samba是在Linux和UNIX系统上实现SMB协议的一个软件,运行在服务端的程序,能够响应处理客户端发送的SMB协议请求。服务端可以通过 samba软件,将本地存储资源映射到客户端,为客户端提供网络存储服务。
客户端提出写请求时,需要跟服务端建立samba连接,连接建立成功后,服务端会产生一个smbd子进程,该子进程会挂载后端存储资源,建立lib实例,后续该客户端的所有SMB请求都由该smbd子进程处理,且通过该lib 实例访问存储资源。客户端向存储系统写入数据流程如图1所示,服务端smbd 子进程收到SMB协议写请求时,将待写入数据解析并保存到data内存空间后,调用写入接口操作将数据写入存储系统中,写入操作首先会创建lib层缓存器列表,创建缓存器列表时使用的是新的内存空间,然后将data内存空间中的数据拷贝到缓存器列表中的内存空间中,并将数据最终写入存储系统中,写入接口调用完成后,samba层会释放data内存空间。该过程中存在将数据从data内存空间拷贝到缓存器列表内存空间流程,当待写入数据量较大时,极易出现写入失败或部分数据丢失的情况,且该写入过程耗时较长,极大影响数据写入性能和效率。
发明内容
本发明为了提升samba软件程序写性能,对原有写请求处理流程进行优化,去除写流程中data内存空间到缓存器列表中内存空间的数据拷贝过程,并将发送写响应的时间提前,从而提高软件程序的写性能和响应效率。
本发明提供的技术方案为:
一种SMB协议写入性能的优化方法,包括:
接收客户端发送的SMB协议写请求;
在缓存子层创建存储缓冲空间,接收并解析待写入数据,并保存到存储缓冲空间中;
调用写入接口,在存储缓冲空间创建缓存器列表,并向客户端发送写响应;
将待写入数据写入编译子层,并销毁缓存器列表。
优选的是,待写入数据解析过程包括:
获取数据并保存为数组;
查找并添加缺失字段;
遍历数组,并获得对应的数据类型。
优选的是,数据类型包括:待写入数据的起始位置和待写入数据的数据长度。
优选的是,缓存器列表记录写入数据的位置和路径。
优选的是,将待写入数据写入所述编译子层包括将待写入数据拷贝到存储系统和创建实例。
优选的是,一种SMB协议写入性能的优化方法,还包括建立缓存子层和编译子层的通信连接,其包括如下步骤:
使用基于SMB通信协议将缓存子层的操作请求发送至编译子层;
编译子层接收缓存子层的操作请求,并对缓存子层的操作请求进行响应,并完成操作请求;
将响应由编译子层返还给缓存子层。
一种SMB协议写入性能的优化装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011382581.1/2.html,转载请声明来源钻瓜专利网。