[发明专利]一种samba多线程性能打点方法及装置在审
申请号: | 201711310251.X | 申请日: | 2017-12-11 |
公开(公告)号: | CN108037988A | 公开(公告)日: | 2018-05-15 |
发明(设计)人: | 孙业宽 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 samba 多线程 性能 打点 方法 装置 | ||
本发明公开了一种samba多线程性能打点方法,包括:接收性能打点请求;主线程将各个性能打点请求分发至相应的业务线程;基于预先建立的samba各个线程与性能打点数组内的各个数组成员的一一对应关系,各业务线程根据性能打点请求,分别统计各自的性能打点数据。该方法通过将各个线程和各个数组成员进行一一对应,即每个线程维护一个性能打点数据成员,避免了多个线程同时访问一个成员的资源竞争情况,大大减少了互斥锁的调用,减少了CPU调度压力,节约了系统资源;且满足了samba单进程多线程架构性能打点数据的统计。本发明还公开了一种samba多线程性能打点装置和一种计算机可读存储介质,同样具有上述有益效果。
技术领域
本发明涉分布式存储技术领域,特别涉及一种samba多线程性能打点方法及装置。
背景技术
目前,samba的进程架构一般为单进程单线程架构,其顺序处理一个客户端的请求。在处理过程中,通过在SMB协议关键字处理流程的开始和结束统计该关键字处理的总时延、总次数、平均时延及最大时延,在调用底层文件系统操作接口的开始和结束统计调用该接口的总时延、总次数、平均时延及最大时延,完成性能打点统计。而samba的单进程单线程顺序处理客户端请求的架构是性能提升的优化点,但是,也有修改samba现有架构,将单进程单线程的架构改为单进程多线程架构,这样可同时处理多个请求以提升samba的性能。
此时,原有的性能打点统计方法就不再适应samba单进程多线程架构。现有针对samba单进程多线程架构,可以使用加互斥锁的方式来实现性能打点统计。但是,SMB协议关键字和底层文件系统调用在客户端读写业务复杂时会调用非常频繁,频繁的加锁和释放锁,使得CPU的处理压力较大。
发明内容
本发明的目的是提供一种samba多线程性能打点方法及装置,以满足samba单进程多线程架构性能打点数据的统计,同时通过减少互斥锁的调用以减少CPU调度,进而节约系统资源。
为实现上述目的,本发明提供如下技术方案:
一种samba多线程性能打点方法,包括:
接收性能打点请求;
主线程将各个所述性能打点请求分发至相应的业务线程;
基于预先建立的samba各个线程与性能打点数组内的各个数组成员的一一对应关系,各所述业务线程根据所述性能打点请求,分别统计各自的性能打点数据。
可选地,在所述接收性能打点请求之前,还包括:
初始化所述性能打点数组,其中,所述性能打点数据内的数组成员数与线程数相同,成员值为零;
初始化线程共享资源变量、线程私有数据和线程索引号为零;
判断所述线程索引号与线程数的大小,若所述线程索引号大于所述线程数,则结束进程;
若所述线程索引号小于所述线程数,则加互斥锁,并将所述线程共享资源变量加一,所述线程私有数据设置为所述线程共享资源变量减一;
释放所述互斥锁,并将所述索引号加一,继续判断所述线程索引号与所述线程数的大小并执行相应操作,直至所有所述线程私有数据初始化完成,以建立各个线程与所述性能打点数组内的各个数组成员的一一对应关系。
可选地,所述各所述业务线程根据所述性能打点请求,分别统计各自的性能打点数据,包括:
各所述业务线程根据所述性能打点请求,分别统计各自的SMB协议关键字性能打点数据和文件系统操作接口性能打点数据。
可选地,在所述各所述业务线程根据所述性能打点请求,分别统计各自的性能打点数据之后,还包括:
根据数据汇总指令,汇总各所述业务线程统计的所述性能打点数据,并将汇总的性能打点数据进行汇总输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711310251.X/2.html,转载请声明来源钻瓜专利网。