CN112187563B - 一种统计主操作码时延的方法和装置 - Google Patents
一种统计主操作码时延的方法和装置 Download PDFInfo
- Publication number
- CN112187563B CN112187563B CN202010923091.1A CN202010923091A CN112187563B CN 112187563 B CN112187563 B CN 112187563B CN 202010923091 A CN202010923091 A CN 202010923091A CN 112187563 B CN112187563 B CN 112187563B
- Authority
- CN
- China
- Prior art keywords
- operation code
- time
- request
- main operation
- main
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000012545 processing Methods 0.000 claims abstract description 91
- 239000002131 composite material Substances 0.000 claims abstract description 66
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000001934 delay Effects 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 abstract description 3
- 150000001875 compounds Chemical class 0.000 description 65
- 238000010586 diagram Methods 0.000 description 18
- RBZXVDSILZXPDM-UHFFFAOYSA-N 1-(2,5-dimethoxy-3,4-dimethylphenyl)propan-2-amine Chemical compound COC1=CC(CC(C)N)=C(OC)C(C)=C1C RBZXVDSILZXPDM-UHFFFAOYSA-N 0.000 description 16
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种统计主操作码时延的方法,包括:响应于接收到复合请求,对复合请求中的主操作码配置标志;记录复合请求的入队时间和出队时间;根据标志识别复合请求的主操作码,获取主操作码的主请求次数以及所有操作码的总请求次数;执行复合请求,记录开始执行复合请求的服务启动时间、主操作码的执行结束时间、主操作码的主处理次数及所有操作码的总处理次数;根据入队时间和出队时间以及服务启动时间计算复合请求的队列等待时延;根据队列等待时延、执行结束时间、主请求次数、总请求次数、主处理次数、总处理次数,获取每个主操作码的时延信息。本发明还公开了一种相应的装置。本发明对网络文件系统优化性能提供了实时监测诊断工具。
Description
技术领域
本发明涉及计算机技术领域,更具体地,特别是指一种统计主操作码时延的方法和装置。
背景技术
网络文件系统(NFS)用于linux之间共享文件目录,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS-Ganesha是用户态网络文件系统,在故障场景下,相比于内核态NFS具有较好管理性和可维护性,并且用户态NFS-Ganesha易于实施和维护,因此,目前,大数据海量分布式对象存储NFS-Ganesha应用非常广泛。
文件系统操作码是指操作文件的一系列方法,linux系统的思想本质上是一切皆文件,文件不能只存储信息,必须容许操作其中的信息。NFSv4操作码主要包括打开(open),打开确认(open_confirm),读写(read,write),创建(create),删除(remove),设置属性(setattr),获取属性(getattr),硬链接(link),提交(commit),读取目录内容(readdir),重命名(rename),更新(renew)等37个操作码。
NFSv4只提供两种请求,NULL和COMPOUND复合请求,所有的操作码都整合进了COMPOUND中,不同于NFSv3(Network File System version 3,第三版本的网络文件系统),NFSv3的每个请求对应一个操作码,而NFSv4(Network File System version 4,第四版本的网络文件系统)的每一个主操作码对应一个COMPOUND,文件系统统计主操作码时延是指通过对请求主操作码起始时间和结束时间进行统计计算,得出每一次进行操作时的时延,该时延统计是衡量存储服务系统I/O性能的重要指标,也是优化存储性能的重要依据。
发明内容
有鉴于此,本发明实施例的目的在于提供一种统计NFSv4操作码时延的方法。
基于上述目的,本发明一方面提供了一种统计主操作码时延的方法,该方法包括:
响应于接收到复合请求,对复合请求中的主操作码配置标志;
记录复合请求的入队时间和出队时间;
根据标志识别复合请求的主操作码,获取主操作码的主请求次数以及所有操作码的总请求次数;
执行复合请求,记录开始执行复合请求的服务启动时间、主操作码的执行结束时间、主操作码的主处理次数及所有操作码的总处理次数;
根据入队时间和出队时间以及服务启动时间计算复合请求的队列等待时延;
根据队列等待时延、执行结束时间、主请求次数、总请求次数、主处理次数、总处理次数,获取每个主操作码的时延信息。
在本发明的统计主操作码时延的方法的一些实施方式中,方法还包括:
配置主操作码的时延统计开关;
响应于打开时延统计开关,开启对主操作码的时延信息的计算。
在本发明的统计主操作码时延的方法的一些实施方式中,方法还包括:
配置主操作码的时延重置命令;
响应于执行时延重置命令,将主操作码的时延信息清零。
在本发明的统计主操作码时延的方法的一些实施方式中,方法还包括:
将主操作码的时延信息的结果通过dbus(a message bus system,消息总线系统)通信显示在服务端上。
在本发明的统计主操作码时延的方法的一些实施方式中,响应于接收到复合请求,对复合请求中的主操作码配置标志还包括:
对复合请求中的所有操作码进行判断,并对其中的主操作码配置标志。
在本发明的统计主操作码时延的方法的一些实施方式中,根据标志识别复合请求的主操作码,获取主操作码的主请求次数以及所有操作码的总请求次数还包括:
统计主操作码与对应的复合请求所包含的操作码的对应关系,根据对应关系对复合请求所包含的操作码进行逆向排除以识别出主操作码。
本发明实施例的另一方面,还提供了一种统计主操作码时延的装置,该装置包括:
标志配置模块,标志配置模块配置为响应于接收到复合请求,对复合请求中的主操作码配置标志;
入队出队记录模块,入队出队记录模块配置为记录复合请求的入队时间和出队时间;
请求次数获取模块,请求次数获取模块配置为根据标志识别复合请求的主操作码,获取主操作码的主请求次数以及所有操作码的总请求次数;
处理次数获取模块,处理次数获取模块配置为执行复合请求,记录开始执行复合请求的服务启动时间、主操作码的执行结束时间、主操作码的主处理次数及所有操作码的总处理次数;
队列等待时延计算模块,队列等待时延计算模块配置为根据入队时间和出队时间以及服务启动时间计算复合请求的队列等待时延;
主操作码时延获取模块,主操作码时延获取模块配置为根据队列等待时延、执行结束时间、主请求次数、总请求次数、主处理次数、总处理次数,获取每个主操作码的时延信息。
在本发明的统计主操作码时延的装置的一些实施方式中,装置还包括:
时延统计控制模块,时延统计控制模块配置为配置主操作码的时延统计开关;响应于打开时延统计开关,开启对主操作码的时延信息的计算。
在本发明的统计主操作码时延的装置的一些实施方式中,装置还包括:
重置模块,重置模块配置为配置主操作码的时延重置命令;响应于执行时延重置命令,将主操作码的时延信息清零。
在本发明的统计主操作码时延的装置的一些实施方式中,装置还包括:
显示模块,显示模块配置为将主操作码的时延信息的结果通过dbus通信显示在服务端上。
本发明至少具有以下有益技术效果:本发明,解决了现有技术中对文件操作过程监测不足的问题,提出一种高效、易于管理维护和可视化NFSv4主操作码时延统计信息,有助于提高优化存储服务文件系统I/O性能,对网络文件系统优化性能提供了强有力的实时监测诊断工具。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1示出了根据本发明的统计主操作码时延的方法的实施例的示意性框图;
图2示出了根据本发明的统计主操作码时延的方法的实施例的NFS-Ganesha配置文件信息的时延统计开关命令示意图;
图3示出了根据本发明的统计主操作码时延的方法的实施例的动态设置NFSv4时延统计开关的命令示意图;
图4示出了根据本发明的统计主操作码时延的方法的实施例的动态获取NFSv4时延统计开关状态的命令示意图;
图5示出了根据本发明的统计主操作码时延的方法的实施例的通过重置命令返回的信息的命令示意图;
图6示出了根据本发明的统计主操作码时延的方法的实施例的操作码抓包统计分析的图表;
图7示出了根据本发明的统计主操作码时延的方法的实施例的主操作码识别流程图;
图8示出了根据本发明的统计主操作码时延的方法的实施例的NFSv4主操作码时延统计流程图;
图9示出了根据本发明的统计主操作码时延的方法的实施例的NFSv4时延统计结果在dbus中的存储的命令示意图;
图10示出了根据本发明的统计主操作码时延的方法的实施例的NFSv4主操作码时延统计信息的命令示意图;
图11示出了根据本发明的统计主操作码时延的装置的实施例的示意性框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”和“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种统计主操作码时延的方法的实施例。图1示出的是根据本发明的统计主操作码时延的方法的实施例的示意性框图。如图1所示的实施例中,该方法至少包括如下步骤:
S100、响应于接收到复合请求(COMPOUND请求),对复合请求中的主操作码配置标志;
S200、记录复合请求的入队时间和出队时间;
S300、根据标志识别复合请求的主操作码,获取主操作码的主请求次数以及所有操作码的总请求次数;
S400、执行复合请求,记录开始执行复合请求的服务启动时间、主操作码的执行结束时间、主操作码的主处理次数及所有操作码的总处理次数;
S500、根据入队时间和出队时间以及服务启动时间计算复合请求的队列等待时延;
S600、根据队列等待时延、执行结束时间、主请求次数、总请求次数、主处理次数、总处理次数,获取每个主操作码的时延信息。
在本发明的一些实施例中,图8示出的是根据本发明的统计主操作码时延的方法的实施例的NFSv4主操作码时延统计流程图,如图8所示,NFSv4主操作码时延统计流程包括以下步骤:当NFSv4接收到客户端的COMPOUND请求,设置COMPOUND请求包的标志flag,COMPOUND请求入队时,记录COMPOUND请求的入队时间,在COMPOUND请求出队后,记录COMPOUND请求的出队时间和开始执行COMPOUND复合函数的时间;由入队时间,出队时间,服务启动时间,可以计算COMPOUND请求的队列等待时延;计算识别COMPOUND里面的主操作码,并记录主操作码请求的次数和总的请求次数;当COMPOUND复合函数执行结束后,记录主操作码执行的结束时间、处理的次数、总的处理次数;由主操作码的结束时间,以及服务启动时间(出队时间),计算出主操作码处理时延;根据时延和统计结果,求出主操作码的平均处理时延,最大处理时延,最小处理时延,平均队列等待时延,最大队列等待时延,最小队列等待时延,以及总的平均处理时延,最大处理时延,最小处理时延等。
在本发明的一些实施例中,当服务端接收到一个COMPOUND请求包时,先设置COMPOUND请求包的标志flag,COMPOUND请求入队时,记录COMPOUND请求的入队时间,在COMPOUND请求出队后,记录COMPOUND请求的出队时间,由入队时间,出队时间,服务启动时间,可以计算COMPOUND请求的队列等待时延;执行COMPOUND请求函数前,识别COMPOUND请求包的主操作码,记录该主操作码的请求次数及总的操作码请求次数,当执行COMPOUND请求函数后,记录该主操作码的处理的次数及总的操作码处理的次数,记录该主操作码的结束时间,由出队时间、执行结束时间以及服务启动时间,计算出主操作码处理时延;在COMPOUND请求执行结束后,由主操作码总的接收次数和处理次数进行统计,根据时延和统计结果,求出每个主操作码的平均处理时延,最大处理时延,最小处理时延,平均队列等待时延,最大队列等待时延,最小队列等待时延,以及总的平均处理时延,最大处理时延,最小处理时延等。
其中,在本发明的一些实施例中,图7示出的是根据本发明的统计主操作码时延的方法的实施例的主操作码识别流程图,如图7所示,对COMPOUND请求包主操作码的识别包括以下步骤:该主操作码识别流程根据图6所示统计的COMPOUND的长度(即COMPOUND请求包包含操作码的个数),通过COMPOUND请求包的flag与GETATTR、ACCESS的flag进行异或操作,去掉GETATTR、ACCESS,最后剩余的flag即主操作码的flag。如:当服务端收到一个COMPOUND请求包,该包中包含PUTFH、CLOSE、GETATTR三个操作码,CLOSE、GETATTR对应的flag分别为0x0002、0x01000,该COMPOUND请求包的flag为0x01002,该COMPOUND请求包的长度为3,将COMPOUND请求包的flag与GETATTR的flag进行相与操作,不为0,则COMPOUND请求包中存在GETATTR,然后将COMPOUND请求包的flag与GETATTR的flag进行异或操作,即0x01002与0x01000异或,得0x0002,0x0002对应的操作码,即为主操作码。
图6统计的COMPOUND请求包的长度小于3,不需要进行逆向排除操作,因为COMPOUND请求包的flag只有一个,该flag标志对应的操作码即为主操作码,若COMPOUND请求包的flag,包含PUTFH,则长度为2的COMPOUND请求包需要逆向排除掉PUTFH。COMPOUND请求包的长度等于3,则需要逆向排除掉GETATTR。COMPOUND请求包的长度大于等于4,则需要逆向排除掉GETATTR、ACCESS。ACCESS作为主操作码,其对应的COMPOUND请求包的长度为3,若COMPOUND请求包的长度大于3且COMPOUND请求包中包含ACCESS操作码,则该ACCESS不是主操作码。
在本发明的一些实施例中,NFSv4时延统计计算方式如下:
(1)队列时延开始时间和结束时间
队列时延开始时间:在程序中对NFSv4主操作码时延统计开关进行判断,若为真,则记录COMPOUND请求入队时间,然后将COMPOUND请求插入到队列中;
队列时延结束时间:即COMPOUND请求出队时间,对NFSv4主操作码时延统计开关进行判断,若为真,则记录COMPOUND请求出队时间;
队列结束时延=队列时延结束时间–服务启动时间,
队列等待时延=队列结束时延–(入队时间–服务启动时间)。
(2)NFSv4主操作码开始时间和结束时间
NFSv4主操作码处理开始时间:即COMPOUND请求出队时间,
NFSv4主操作码开始执行时延=NFSv4主操作码开始执行时间–服务启动时间,
NFSv4主操作码处理结束时间:即COMPOUND请求包中所有操作码程序执行完毕之后的时间;
NFSv4主操作码处理结束时延=NFSv4主操作码处理结束时间–服务启动时间,
NFSv4主操作码处理时延=NFSv4主操作码处理结束时延–NFSv4主操作码开始执行时延。
(3)NFSv4主操作码请求个数和处理个数
NFSv4主操作码请求个数:即每个主操作码对应compound请求包含请求的个数和总的主操作码请求个数;
NFSv4操作码处理个数:即每个主操作码对应compound请求包执行结束后,每个主操作码的处理个数和总的主操作码处理个数。
(4)平均处理时延和平均队列等待时延
平均处理时延:即compound请求包执行结束后计算;
每个主操作码处理的时延:即相同主操作码的处理时延累加计算,
每个主操作码队列等待的时延:即相同主操作码的队列等待时延累加计算,
总的主操作码处理时延:即所有主操作码的处理时延累加计算,
平均处理时延:
每个主操作码的平均处理时延=每个主操作码处理的时延/每个主操作码处理的次数,
总的主操作码的平均处理时延=总的主操作码处理的时延/总的主操作码处理的次数。
平均队列等待时延:
每个主操作码的平均队列等待时延=每个主操作码队列等待的时延/每个主操作码处理的次数。
(5)最小时延和最大时延
每个主操作码处理的最小时延(最小处理时延):即该主操作码所有处理时间的最小值;
每个主操作码处理的最大时延(最大处理时延):即该主操作码所有处理时间的最大值;
每个主操作码队列等待的最小时延(最小队列等待时延):即该主操作码所有队列等待的的最小值;
每个主操作码队列等待的最大时延(最大队列等待时延):即该主操作码所有队列等待的的最大值。
根据本发明的统计主操作码时延的方法的一些实施方式,方法还包括:
配置主操作码的时延统计开关;
响应于打开时延统计开关,开启对主操作码的时延信息的计算。
在本发明的一些实施例中,增加NFSv4主操作码时延统计开关:在配置文件中,增加NFSv4主操作码时延统计开关;增加动态命令设置NFSv4主操作码时延统计开关;当NFSv4主操作码时延统计开关为关闭状态,则不进行NFSv4主操作码时延统计,当打开开关后,程序进行NFSv4主操作码时延统计。
在本发明的一些实施例中,图2示出的是根据本发明的统计主操作码时延的方法的实施例的NFS-Ganesha配置文件信息的时延统计开关命令示意图,如图2所示,通过ganesha配置文件设置NFSv4主操作码时延统计开关。在ganesha配置文件中,添加NFSv4时延统计开关参数Enable_Stat_Tool_V4_Main,设置其值为true,即开启NFSv4主操作码时延统计,重启ganesha服务,系统读取ganesha配置文件,在系统内部根据配置文件Enable_Stat_Tool_V4_Main的值true,打开NFSv4主操作码时延统计开关,程序根据开关进行判断统计NFSv4主操作码时延;若Enable_Stat_Tool_V4_Main的值为false,即关闭NFSv4主操作码时延统计,程序不进行NFSv4主操作码时延统计。
在本发明的一些实施例中,动态设置NFSv4时延统计开关包括以下步骤:
(1)编写ganesha脚本,即ganesha_mgr.py文件,通过在liunx服务端执行脚本命令ganesha_mgr set_switch time_delay_v4_main true,向文件系统传入参数set_switch、time_delay_v4_main、true;
(2)根据关键字“set_switch”,将NFS-Ganesha文件系统和D-Bus进程间通信后台建立连接;
(3)NFS-Ganesha服务发送信号,传递time_delay_v4_main和true两个参数;
(4)在系统程序内部,根据传入参数关键字“time_delay_v4_main”将NFSv4时延统计开关设置为true;
图3示出的是根据本发明的统计主操作码时延的方法的实施例的动态设置NFSv4时延统计开关的命令示意图,如图3所示,通过命令ganesha_mgr set_switch time_delay_v4_main true和命令ganesha_mgr set_switch time_delay_v4_main false实现了NFSv4时延统计开关。
在本发明的一些实施例中,动态获取NFSv4时延统计开关的值包括以下步骤:
(1)编写ganesha脚本,即ganesha_mgr.py文件,通过执行脚本命令ganesha_mgrget_switch time_delay_v4_main,向文件系统传入参数get_switch、time_delay_v4_main;
(2)根据关键字“get_switch”,将NFS-Ganesha文件系统和D-Bus进程间通信后台建立连接;
(3)NFS-Ganesha服务发送信号,传递time_delay_v4_main参数;
(4)创建返回消息reply,根据传入参数关键字“time_delay_v4_main”获取NFSv4时延统计开关的值发送返回消息;
(5)输出D-Bus返回的NFSv4时延统计开关的值;
图4示出的是根据本发明的统计主操作码时延的方法的实施例的动态获取NFSv4时延统计开关状态的命令示意图,如图4所示,通过命令ganesha_mgr get_switch time_delay_v4_main获取NFSv4时延统计开关,0代表关闭状态,1代表开启状态。
根据本发明的统计主操作码时延的方法的一些实施方式,方法还包括:
配置主操作码的时延重置命令;
响应于执行时延重置命令,将主操作码的时延信息清零。
在本发明的一些实施例中,增加NFSv4主操作码时延重置命令:通过动态执行命令将NFSv4主操作码时延信息清零,或者在后台通过脚本调用该重置命令定时将所有主操作码时延清零。
在本发明的一些实施例中,动态重置NFSv4时延统计的值包括以下步骤:
(1)编写ganesha脚本,即ganesha_stat_tool.py文件,通过执行脚本命令ganesha_stat_tool reset_main_nfsv4_ops,向文件系统传入参数reset_nfsv4_ops;
(2)根据关键字“reset_main_nfsv4_ops”,将NFS-Ganesha文件系统和D-Bus进程间通信后台建立连接;
(3)NFS-Ganesha服务发送信号,在系统内部执行相关重置函数,将每个操作码的接收请求次数、处理请求次数、平均处理时延、最大处理时延、最小处理时延、平均队列等待时延、最大队列等待时延、最小队列等待时延,总的操作码的接收次数、处理次数、平均处理时延、最大处理时延、最小处理时延等清零;
(4)创建返回消息reply,发送返回消息;
(5)输出D-Bus返回重置成功信息;
图5示出的是根据本发明的统计主操作码时延的方法的实施例的通过重置命令返回的信息的命令示意图,如图5所示,通过执行命令重置NFSv4时延统计返回的信息为resetok;通过命令查看。
根据本发明的统计主操作码时延的方法的一些实施方式,方法还包括:
将主操作码的时延信息的结果通过dbus通信显示在服务端上。
在本发明的一些实施例中,NFSv4主操作码在dbus中的存储:NFS主操作码时延计算的结果最后要通过dbus通信显示在服务端,以便以更加直观的形式查看结果,其计算结果在dbus中以并列的方式存储。
图9示出的是根据本发明的统计主操作码时延的方法的实施例的NFSv4时延统计结果在dbus中的存储的命令示意图,图10示出的是根据本发明的统计主操作码时延的方法的实施例的NFSv4主操作码时延统计信息的命令示意图,如图9和图10所示,NFSv4时延统计结果在dbus中的存储:
NFSv4主操作码比较多,有23个,每个主操作码包含接收请求次数、处理请求次数、平均处理时延、最大处理时延、最小处理时延、平均队列等待时延、最大队列等待时延、最小队列等待时延等八个要显示的信息,通过dbus顺序存储的话,容易引起超时现象,出现显示结果失败的情况;可通过dbus并列存储,即每一列存储每个操作码的八个值;
NFSv4时延统计显示的8个列:
receive_requests(接受请求的个数)、handle_requests(处理请求的个数)、
handle_req_avg_t(平均处理时延)、handle_req_max_t(最大处理时延)、
handle_req_min_t(最小处理时延)、queue_req_avg_t(平均队列等待时延)、
queue_req_max_t(最大队列等待时延)、queue_req_min_t(最小队列等待时延)。
在dbus中以如下方式保存:
Stats[0]和Stats[1]保存是是消息返回成功的状态;
Stats[2]为保存的返回时间信息,Stats[2][0]为保存的是秒,Stats[2][1]为保存的是纳秒;
Stats[3][0]保存的为要显示的NFSv4标志;
Stats[4]保存的为要显示的NFSv4时延信息,Stats[4]包含了N列,每一列存储了要显示的8个时延信息;
Stats[0]、Stats[1]、Stats[2]、Stats[3]、Stats[4]为顺序存储;Stats[2][0]、Stats[2][1]为并列存储;Stats[4]包含了N列,N列为并行存储;
通过dbus显示出来,便于对文件操作过程进行监测,易于管理维护和可视化,服务端可以通过配置文件和动态命令设置NFSv4主操作码时延统计开关状态,以及时延统计信息的重置。
根据本发明的统计主操作码时延的方法的一些实施方式,响应于接收到复合请求,对复合请求中的主操作码配置标志还包括:
对复合请求中的所有操作码进行判断,并对其中的主操作码配置标志。
在本发明的一些实施例中,设置COMPOUND请求包的标志flag:对NFSv4主要操作码都自定义一个32位的flag,当服务端接收到一个COMPOUND请求包,则对COMPOUND请求包里的操作码进行判断,然后对其flag标志进行或操作,求出整个COMPOUND请求包的flag。
在本发明的一些实施例中,对NFSv4主要操作码都自定义一个32位的flag,如OPEN操作码的flag为0x0002,CLOSE操作码的flag为0x0002,READ操作码的flag为0x0008,WRITE操作码的flag为0x0010,COMMIT操作码的flag为0x0020,CREATE操作码的flag为0x0040,REMOVE操作码的flag为0x0080,RENAME操作码的flag为0x0100,GETATTR操作码的flag为0x01000等;可以不用对PUTFH、GETFH、SAVEFH、RESTOREFH等操作码进行flag定义。当服务端接收到一个COMPOUND请求包,则对COMPOUND请求包里的操作码进行判断,然后对其flag标志进行或操作,求出整个COMPOUND请求包的flag。如:当服务端收到一个COMPOUND请求包,该包中包含PUTFH、CLOSE、GETATTR三个操作码,PUTFH没有定义flag不对其进行或操作,后续逆向排除识别主操作码不用对其进行过滤,CLOSE、GETATTR对应的flag分别为0x0002、0x01000,0x0002和0x01000进行或操作等于0x01002,0x01002即为该COMPOUND请求包的flag。
根据本发明的统计主操作码时延的方法的一些实施方式,根据标志识别复合请求的主操作码,获取主操作码的主请求次数以及所有操作码的总请求次数还包括:
统计主操作码与对应的复合请求所包含的操作码的对应关系,根据对应关系对复合请求所包含的操作码进行逆向排除以识别出主操作码。
在本发明的一些实施例中,识别COMPOUND请求包的主操作码:首先要对NFSv4操作码进行抓包统计,统计出主操作码与其Compound请求包所包含的操作码对应关系;然后编写代码,对Compound请求所包含的操作码进行逆向排除识别出主操作码。
图6示出的是根据本发明的统计主操作码时延的方法的实施例的操作码抓包统计分析的图表,如图6所示,是对NFSv4操作码进行抓包的统计,左边为主操作码,右边是COMPOUND请求包,包含一个或多个操作码。
本发明实施例的另一方面,提出了一种统计主操作码时延的装置的实施例。图11示出的是根据本发明的统计主操作码时延的装置的实施例的示意性框图,如图11所示,该装置101包括:
标志配置模块11,标志配置模块配置为响应于接收到复合请求,对复合请求中的主操作码配置标志;
入队出队记录模块12,入队出队记录模块配置为记录复合请求的入队时间和出队时间;
请求次数获取模块13,请求次数获取模块配置为根据标志识别复合请求的主操作码,获取主操作码的主请求次数以及所有操作码的总请求次数;
处理次数获取模块14,处理次数获取模块配置为执行复合请求,记录开始执行复合请求的服务启动时间、主操作码的执行结束时间、主操作码的主处理次数及所有操作码的总处理次数;
队列等待时延计算模块15,队列等待时延计算模块配置为根据入队时间和出队时间以及服务启动时间计算复合请求的队列等待时延;
主操作码时延获取模块16,主操作码时延获取模块配置为根据队列等待时延、执行结束时间、主请求次数、总请求次数、主处理次数、总处理次数,获取每个主操作码的时延信息。
根据本发明的统计主操作码时延的装置的一些实施方式,装置101还包括:
时延统计控制模块,时延统计控制模块配置为配置主操作码的时延统计开关;响应于打开时延统计开关,开启对主操作码的时延信息的计算。
根据本发明的统计主操作码时延的装置的一些实施方式,装置101还包括:
重置模块,重置模块配置为配置主操作码的时延重置命令;响应于执行时延重置命令,将主操作码的时延信息清零。
根据本发明的统计主操作码时延的装置的一些实施方式,装置101还包括:
显示模块,显示模块配置为将主操作码的时延信息的结果通过dbus通信显示在服务端上。
同样地,本领域技术人员应当理解,以上针对根据本发明的统计主操作码时延的方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的装置。为了本公开的简洁起见,在此不再重复阐述。
需要特别指出的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,统计主操作码时延的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种统计主操作码时延的方法,其特征在于,所述方法包括:
响应于接收到复合请求,对所述复合请求中的主操作码配置标志;
记录所述复合请求的入队时间和出队时间;
根据所述标志识别所述复合请求的所述主操作码,获取所述主操作码的主请求次数以及所有操作码的总请求次数;
执行所述复合请求,记录开始执行所述复合请求的服务启动时间、所述主操作码的执行结束时间、所述主操作码的主处理次数及所有所述操作码的总处理次数;
根据所述入队时间和所述出队时间以及所述服务启动时间计算所述复合请求的队列等待时延;
根据所述队列等待时延、所述执行结束时间、所述主请求次数、所述总请求次数、所述主处理次数、所述总处理次数,获取每个所述主操作码的时延信息。
2.根据权利要求1所述的统计主操作码时延的方法,其特征在于,所述方法还包括:
配置所述主操作码的时延统计开关;
响应于打开所述时延统计开关,开启对所述主操作码的所述时延信息的计算。
3.根据权利要求1所述的统计主操作码时延的方法,其特征在于,所述方法还包括:
配置所述主操作码的时延重置命令;
响应于执行所述时延重置命令,将所述主操作码的所述时延信息清零。
4.根据权利要求1所述的统计主操作码时延的方法,其特征在于,所述方法还包括:
将所述主操作码的时延信息的结果通过dbus通信显示在服务端上。
5.根据权利要求1所述的统计主操作码时延的方法,其特征在于,所述响应于接收到复合请求,对所述复合请求中的主操作码配置标志还包括:
对所述复合请求中的所有所述操作码进行判断,并对其中的所述主操作码配置标志。
6.根据权利要求1所述的统计主操作码时延的方法,其特征在于,所述根据所述标志识别所述复合请求的所述主操作码,获取所述主操作码的主请求次数以及所有操作码的总请求次数还包括:
统计所述主操作码与对应的所述复合请求所包含的所述操作码的对应关系,根据所述对应关系对所述复合请求所包含的所述操作码进行逆向排除以识别出所述主操作码。
7.一种统计主操作码时延的装置,其特征在于,所述装置包括:
标志配置模块,所述标志配置模块配置为响应于接收到复合请求,对所述复合请求中的主操作码配置标志;
入队出队记录模块,所述入队出队记录模块配置为记录所述复合请求的入队时间和出队时间;
请求次数获取模块,所述请求次数获取模块配置为根据所述标志识别所述复合请求的所述主操作码,获取所述主操作码的主请求次数以及所有操作码的总请求次数;
处理次数获取模块,所述处理次数获取模块配置为执行所述复合请求,记录开始执行所述复合请求的服务启动时间、所述主操作码的执行结束时间、所述主操作码的主处理次数及所有所述操作码的总处理次数;
队列等待时延计算模块,所述队列等待时延计算模块配置为根据所述入队时间和所述出队时间以及所述服务启动时间计算所述复合请求的队列等待时延;
主操作码时延获取模块,所述主操作码时延获取模块配置为根据所述队列等待时延、所述执行结束时间、所述主请求次数、所述总请求次数、所述主处理次数、所述总处理次数,获取每个所述主操作码的时延信息。
8.根据权利要求7所述的统计主操作码时延的装置,其特征在于,所述装置还包括:
时延统计控制模块,所述时延统计控制模块配置为配置所述主操作码的时延统计开关;响应于打开所述时延统计开关,开启对所述主操作码的所述时延信息的计算。
9.根据权利要求7所述的统计主操作码时延的装置,其特征在于,所述装置还包括:
重置模块,所述重置模块配置为配置所述主操作码的时延重置命令;响应于执行所述时延重置命令,将所述主操作码的所述时延信息清零。
10.根据权利要求7所述的统计主操作码时延的装置,其特征在于,所述装置还包括:
显示模块,所述显示模块配置为将所述主操作码的时延信息的结果通过dbus通信显示在服务端上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010923091.1A CN112187563B (zh) | 2020-09-04 | 2020-09-04 | 一种统计主操作码时延的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010923091.1A CN112187563B (zh) | 2020-09-04 | 2020-09-04 | 一种统计主操作码时延的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112187563A CN112187563A (zh) | 2021-01-05 |
CN112187563B true CN112187563B (zh) | 2022-05-13 |
Family
ID=73925425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010923091.1A Active CN112187563B (zh) | 2020-09-04 | 2020-09-04 | 一种统计主操作码时延的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187563B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11768629B2 (en) * | 2021-04-28 | 2023-09-26 | Micron Technology, Inc. | Techniques for memory system configuration using queue refill time |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577578A (zh) * | 2017-09-15 | 2018-01-12 | 郑州云海信息技术有限公司 | 统计nfs操作字时延的方法、装置、设备以及存储介质 |
CN109240995A (zh) * | 2018-08-22 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种操作字时延的统计方法和装置 |
WO2019192361A1 (en) * | 2018-04-06 | 2019-10-10 | Huawei Technologies Co., Ltd. | Congestion control in network communications |
CN111274144A (zh) * | 2020-01-20 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种基于网络文件系统操作字接口的单元测试方法与系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9667722B2 (en) * | 2014-10-20 | 2017-05-30 | Arista Networks, Inc. | Method and system for non-tagged based latency calculation |
-
2020
- 2020-09-04 CN CN202010923091.1A patent/CN112187563B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577578A (zh) * | 2017-09-15 | 2018-01-12 | 郑州云海信息技术有限公司 | 统计nfs操作字时延的方法、装置、设备以及存储介质 |
WO2019192361A1 (en) * | 2018-04-06 | 2019-10-10 | Huawei Technologies Co., Ltd. | Congestion control in network communications |
CN109240995A (zh) * | 2018-08-22 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种操作字时延的统计方法和装置 |
CN111274144A (zh) * | 2020-01-20 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种基于网络文件系统操作字接口的单元测试方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112187563A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9037555B2 (en) | Asynchronous collection and correlation of trace and communications event data | |
WO2021003818A1 (zh) | 接口测试用例生成方法、装置、计算机设备及存储介质 | |
US7567989B2 (en) | Method and system for data processing with data replication for the same | |
CN111597388B (zh) | 基于分布式系统的样本采集方法、装置、设备及介质 | |
CN111752799A (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
CN111625503B (zh) | 一种分布式文件系统文件局部随机预读的方法和设备 | |
CN113360554A (zh) | 一种数据抽取、转换和加载etl的方法和设备 | |
CN112187563B (zh) | 一种统计主操作码时延的方法和装置 | |
CN111708679A (zh) | 日志监控方法、系统、装置和存储介质 | |
CN113242159A (zh) | 应用访问关系确定方法及装置 | |
CN112650728A (zh) | 接口信息存储方法、装置、服务器及分布式业务系统 | |
CN107423090B (zh) | 一种Flash播放器异常日志管理方法及系统 | |
CN116737482A (zh) | 一种芯片测试数据的实时收集方法、装置及电子设备 | |
CN110134538B (zh) | 快速定位问题日志的方法、装置、介质和电子设备 | |
CN109240995B (zh) | 一种操作字时延的统计方法和装置 | |
CN111352810A (zh) | 基于多进程的性能监控方法及装置、计算设备 | |
CN110764949A (zh) | 硬盘更换方法、硬盘更换装置、硬盘更换设备及存储介质 | |
CN115543951A (zh) | 一种基于起源图的日志采集、压缩、存储方法 | |
CN110113384A (zh) | 网络请求处理方法、装置、计算机设备和存储介质 | |
CN115470090A (zh) | 一种日志数据采集方法 | |
CN115454717A (zh) | 数据库实时备份方法、装置、计算机设备和存储介质 | |
CN111159126A (zh) | 文件压缩操作的审计方法、装置、电子设备及存储介质 | |
KR100799579B1 (ko) | Rtls 태그의 블링킹 데이터 처리 시스템 및 그 방법 | |
CN112417022B (zh) | 用于获取数据的方法、装置、终端及存储介质 | |
US20080008443A1 (en) | Data management system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |