CN114115746A - 一种用户态存储系统的全链路追踪装置 - Google Patents
一种用户态存储系统的全链路追踪装置 Download PDFInfo
- Publication number
- CN114115746A CN114115746A CN202111458975.5A CN202111458975A CN114115746A CN 114115746 A CN114115746 A CN 114115746A CN 202111458975 A CN202111458975 A CN 202111458975A CN 114115746 A CN114115746 A CN 114115746A
- Authority
- CN
- China
- Prior art keywords
- tracking
- data
- input
- full
- storage system
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种用户态存储系统的全链路追踪装置,在全链路追踪库中配置数据接口和环形缓冲区,通过数据接口与用户态存储系统进行交互,对输入输出进程数据进行调用,为每一输入输出进程数据分配跟踪记录以及与跟踪记录对应的记录标记;环形缓冲区用于将输入输出进程数据的跟踪记录和对应的记录标记作为追踪数据进行存储。链路解析工具模块,获取环形缓冲区中的追踪数据,对追踪数据进行解析得到与输入输出进程数据对应的全链路追踪结果并进行显示。以上方案,为跟踪记录设置记录标记,在进行数据跟踪时,对记录标记进行索引降低了全链路跟踪过程中跟踪记录的索引开销,提高了全链路追踪方案的性能和灵活性。
Description
技术领域
本发明涉及大数据存储技术领域,特别涉及一种用户态存储系统的全链路追踪装置。
背景技术
近些年间存储介质得到了快速发展,单位存储介质的性能越来越高,原来的HDD(Hard Disk Drive)机械硬盘读写速度不足100IOPS,而如今的NVMe(Non-Volatile Memoryexpress)固态硬盘读写速度可以达上百万IOPS,平均时延从毫秒压缩到微秒。存储系统的性能瓶颈也由存储硬件本身逐渐转移到软件上,传统的内核态存储系统:例如文件系统、调度器、硬件驱动等方法无法充分发挥新存储介质的性能,成为存储系统的新瓶颈。
SPDK(Storage performance development kit)是Intel推出的用户态存储系统开发套件,相对于传统的内核态存储系统,SPDK运用了以下关键技术提升系统性能:(1)用户态驱动:整个软件系统都运行在用户态模式下,避免了IO过程中频繁的用户态/内核态上下文切换,允许更多的时钟周期被用来做实际的数据存储。(2)基于轮询的异步IO模型:用户态程序提交IO请求后继续执行其他工作,以一定的时间间隔去轮询检查I/O是否已经完成。这种方式避免了中断带来的延迟和开销。(3)无锁化模型:访问同一个设备的多个线程通过独立的轻量级协程和I/O通道进行隔离,不需要全局锁进行互斥。这种方式可以降低多线程下的竞争,提升整体性能的可扩展性。基于以上优势,SPDK用户态存储系统被广泛应用于主流的企业存储和云存储系统中。但是SPDK内部缺乏对IO的全链路追踪方法,无法查看IO在多个存储模块间的时延分布情况,导致无法有效定位软件系统的性能瓶颈。
目前行业内通用的一种IO全链路追踪方法,会在IO控制结构中内置多个性能追踪变量,用来记录IO各个阶段的时延,并在IO完成时对追踪结果进行汇总和观测。该方法存在以下问题:(1)通用性差,需要存储业务模块根据不同的消息类型定义变量,全链路追踪模块和业务模块之间耦合较深。(2)用户态存储系统中,一个IO通常要跨多个存储业务模块处理,需要在多个模块间通过参数传递性能追踪变量。该方法会导致性能瓶颈和代码实现上的复杂度。(3)IO的观测结果通常是记录到文件中,会引入性能瓶颈。(4)缺乏全局的分析工具,只能看到单个IO的时延分布情况,无法查看一段时间内的性能曲线。
仅此,需要一种能够克服以上缺陷的适用于SPDK的全链路追踪方案。
发明内容
本发明要解决的技术问题是现有IO全链路追踪方案中存在技术瓶颈,为此,本发明提出了一种用户态存储系统的全链路追踪装置。
针对上述技术问题,本发明提供如下技术方案:
本发明一些实施例提供一种用户态存储系统的全链路追踪装置,包括:
全链路追踪库,配置有数据接口和环形缓冲区,所述数据接口用于与所述用户态存储系统进行交互,对输入输出进程数据进行调用,为每一所述输入输出进程数据分配跟踪记录以及与跟踪记录对应的记录标记;所述环形缓冲区用于将所述输入输出进程数据的跟踪记录和对应的记录标记作为追踪数据进行存储;
全链路解析工具模块,获取所述环形缓冲区中的所述追踪数据,对所述追踪数据进行解析得到与所述输入输出进程数据对应的全链路追踪结果并进行显示。
本发明一些实施例中所述的用户态存储系统的全链路追踪装置,所述环形缓冲区的内存空间按照用户态存储系统的处理器核数划分为多个跟踪通道;每一所述跟踪通道仅由对应的处理器核访问。
本发明一些实施例中所述的用户态存储系统的全链路追踪装置,每一所述跟踪通道对应于一个或多个输入输出进程,当所述跟踪通道对应于多个输入输出进程时,每一所述跟踪通道被分配多个ID信息,每一所述ID信息与一个记录标记相对应。
本发明一些实施例中所述的用户态存储系统的全链路追踪装置,每一所述跟踪记录中设有多个跟踪关键点,每个所述跟踪关键点包括对关联的输入输出进程数据进行跟踪采集后生成的采集记录。
本发明一些实施例中所述的用户态存储系统的全链路追踪装置,所述全链路追踪库作为第三方库运行在用户态存储系统中;
所述全链路解析工具模块作为独立进程从所述全链路追踪库中获取所述追踪数据。
本发明一些实施例中所述的用户态存储系统的全链路追踪装置,所述全链路追踪库配置的数据接口包括:
初始数据调用接口,在每个输入输出进程开始时被调用;从对应的跟踪通道中获取可用记录标记,并调用所述可用记录标记的ID信息返回至相应的输入输出进程;
终期数据调用接口,在每个输入输出进程结束时被调用,用于执行跟踪记录的完结。
本发明一些实施例中所述的用户态存储系统的全链路追踪装置,所述全链路追踪库配置的数据接口包括:
切入数据调用接口,在输入输出进程切入时被调用,将切入的输入输出进程中所包含的记录标记的ID信息写入到本地线程存储方式的变量中;
跟踪接口,在执行数据跟踪的采集时被调用,从所述本地线程存储方式的变量中获取记录标记的ID信息,并将采集结果存储至与ID信息对应的跟踪记录中。
本发明一些实施例中所述的用户态存储系统的全链路追踪装置,所述跟踪接口中,针对不同类型的输入输出进程设定不同的采集率。
本发明一些实施例中所述的用户态存储系统的全链路追踪装置,所述全链路追踪库配置的数据接口包括:
切出数据调用接口,在输入输出进程切出时被调用,在输入输出进程切出后将本地线程存储方式的变量中写入的与切出输入输出进程对应的ID信息删除。
本发明一些实施例中所述的用户态存储系统的全链路追踪装置,所述全链路解析工具模块中,以命令行模式或直方图模式显示所述全链路追踪结果。
本发明的技术方案相对现有技术具有如下技术效果:
本发明提供的用户态存储系统的全链路追踪装置,在全链路追踪库中配置数据接口和环形缓冲区,通过数据接口与用户态存储系统进行交互,对输入输出进程数据进行调用,为每一输入输出进程数据分配跟踪记录以及与跟踪记录对应的记录标记;环形缓冲区用于将输入输出进程数据的跟踪记录和对应的记录标记作为追踪数据进行存储。链路解析工具模块,获取环形缓冲区中的追踪数据,对追踪数据进行解析得到与输入输出进程数据对应的全链路追踪结果并进行显示。以上方案中,通过为跟踪记录设置记录标记的方式,在进行数据跟踪时,可对记录标记进行索引,从而能够直接查询到与记录标记对应的输入输出数据的跟踪记录,降低了全链路跟踪过程中跟踪记录的索引开销,提高了全链路追踪方案的性能和灵活性。
附图说明
下面将通过附图详细描述本发明中优选实施例,将有助于理解本发明的目的和优点,其中:
图1为SPDK用户态存储系统中一次输入输出的完整路径的流程图;
图2为SPDK用户态存储系统的结构框图;
图3为与图1所示路径的信号逻辑示意图;
图4为本发明一个实施例所述用户态存储系统的全链路追踪装置的结构框图;
图5为本发明另一个实施例所述用户态存储系统的全链路追踪装置的结构框图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
如图1至图3所示为现有SPDK用户态存储系统的架构以及其处理用户输入输出的路径。如图2所示,SPDK用户态存储系统中包括三个模块,分别是BlobStore,SPDK存储系统中提供的Blob(Blob是指图像中的一块连通区域)管理的模块;Bdev,SPDK存储系统提供的块设备管理模块;NVMe Driver,SPDK存储系统提供的用户态NVMe(非易失性内存主机控制器接口规范)驱动模块,SPDK存储系统中的上述模块属于SPDK存储系统的常规设计,主要应用于分布式存储的单机引擎组件,在此不再详细介绍。
参考图1和图3,基于图2所示的系统架构,一次IO(输入输出)的完整路径可以细分成以下步骤:
S1:系统应用发起IO请求,通过调用SPDK存储系统中的BlobStore模块提供的异步IO接口提交,同时传入异步回调函数X。
S2:BlobStore模块将IO请求封装成Bdev模块的Bdev_IORequest,同时调用Bdev模块提供的异步IO接口,BlobStore模块传入的回调函数为Y。
S3:Bdev模块将Bdev_IO_Request封装成NVMe driver模块的Nvme_IO_Request,同时调用NVMe driver模块提供的异步IO接口,Bdev模块传入回调函数为Z。
S4:NVMe driver模块提交Nvme_IO_Request给Hardware(硬件);
S5:Hardware收到请求后,开始处理Nvme_IO_Request,直到完成。
S6:SPDK存储系统轮询线程发现Nvme_IO_Request返回后,执行Bdev模块的回调函数Z。
S7:Bdev模块的回调函数Z调用BlobStore模块的回调函数Y。
S8:回调函数Y调用用户传入的回调函数X通知用户IO完成。
对于数据的全链路跟踪的一个重要目标就是对图中S1-S8步骤中的分段时延进行采集并记录。
在本实施例中提供的用户态存储系统的全链路追踪装置,如图4所示,包括全链路追踪库11和全链路解析工具模块12,其中:
所述全链路追踪库11配置有数据接口111和环形缓冲区112,所述数据接口111用于与所述用户态存储系统进行交互,对输入输出进程数据进行调用,为每一所述输入输出进程数据分配跟踪记录以及与跟踪记录对应的记录标记;所述环形缓冲区112用于将所述输入输出进程数据的跟踪记录和对应的记录标记作为追踪数据进行存储。所述全链路解析工具模块12,获取所述环形缓冲区112中的所述追踪数据,对所述追踪数据进行解析得到与所述输入输出进程数据对应的全链路追踪结果并进行显示。以上方案中,所述全链路追踪库11作为第三方库运行在用户态存储系统中;同时可以作为第三方库集成到其他的用户态存储系统中。所述全链路解析工具模块12作为独立进程从所述全链路追踪库11中获取所述追踪数据.
以上方案中,针对步骤S1-S8中的任意一个分段内的操作,只要其是针对同一个IO进程,那么对其进行跟踪过程中所采集到的数据形成的跟踪记录,就具有统一的记录标记,虽然在步骤S1-S8执行过程中存在大量的函数嵌套调用,但是在进行数据跟踪时,仅需要对记录标记进行索引,从而能够直接查询到与记录标记对应的输入输出数据的跟踪记录,降低了全链路跟踪过程中跟踪记录的索引开销,提高了全链路追踪方案的性能和灵活性。
在一些实施例中,所述全链路追踪库11采用所述环形缓冲区112记录数据跟踪信息,系统初始化时进行内存申请和映射,采用所述环形缓冲区112的内存通过共享内存方式将数据跟踪信息导出并提供给所述全链路解析工具模块12访问。所述环形缓冲区112的内存空间按照用户态存储系统的处理器核数划分为多个跟踪通道;每一所述跟踪通道仅由对应的处理器核访问。所述环形缓冲区112为一段连续的内存空间,用于记录系统中所有的跟踪数据,由于其被划分为多个跟踪通道,每一所述跟踪通道仅由对应的处理器核访问,因此访问跟踪通道不需要加锁,整个链路上不存在磁盘操作和锁开销。
进一步地,每一所述跟踪通道对应于一个或多个输入输出进程,当所述跟踪通道对应于多个输入输出进程时,每一所述跟踪通道被分配多个ID信息,每一所述ID信息与一个记录标记相对应。通过为跟踪通道设置ID信息,就相当于为跟踪记录设置了ID信息,即便是SPDK存储系统中各个不同模块都具有独特的输入输出请求(IO Request)结构,而每一个输入输出请求都对应于一个输入输出进程,通过ID信息的设定能够实现高效灵活在不同模块间传递输入输出请求对应的跟踪记录。优选地,每一所述跟踪记录中设有多个跟踪关键点,每个所述跟踪关键点包括对关联的输入输出进程数据进行跟踪采集后生成的采集记录。
结合图5,所述全链路追踪库11对于输入输出进程数据的采集中,可以通过直接调用数据接口111,所述数据接口111可以包括:
初始数据调用接口(TRACE_START),在每个输入输出进程开始时被调用;从对应的跟踪通道中获取可用记录标记,并调用所述可用记录标记的ID信息返回至相应的输入输出进程。终期数据调用接口(TRACE_END),在每个输入输出进程结束时被调用,用于执行跟踪记录的完结。切入数据调用接口(TRACE_SWITCH_TO),在输入输出进程切入时被调用,将切入的输入输出进程中所包含的记录标记的ID信息写入到本地线程存储方式的变量中。跟踪接口(TRACE,执行跟踪打点操作),在执行数据跟踪的采集时被调用,从所述本地线程存储方式的变量中获取记录标记的ID信息(即将传入的跟踪记录的ID信息设置到TLS变量中,TLS为Thread-local storage,一种高效的线程本地存储方式),并将采集结果存储至与ID信息对应的跟踪记录中,优选地,所述跟踪接口中,针对不同类型的输入输出进程设定不同的采集率。切出数据调用接口(TRACE_SWITCH_OUT),在输入输出进程切出时被调用,在输入输出进程切出后将本地线程存储方式的变量中写入的与切出输入输出进程对应的ID信息删除。
以上方案中,所述全链路追踪库11配置了多种类型的数据接口,当系统的应用程序在执行IO请求后以及在执行IO请求的整个路径中,仅需要调用这几个简单的API即可完成IO的全链路追踪操作,不需要在业务代码中嵌入复杂的逻辑,同时以上方案中结合了TLS变量存储ID信息的访问方式也加速了对跟踪记录的索引,降低了跟踪打点对IO性能的影响。
以上方案中,由于每个输入输出请求会记录自身的跟踪记录的ID信息,不同模块间的输入输出请求结构通过跟踪记录的ID信息进行传递,全链路跟踪过程中都可以通过跟踪记录的ID信息直接找到对应的跟踪记录地址,时间复杂度极低。同时SPDK存储系统的全异步模型下,肯呢个出现一个线程会同时处理多个输入输出请求的应用场景。为了高效处理该模型下的输入输出请求上下文频繁切换,本方案中的全链路跟踪方案提供了切入数据调用接口和切出数据调用接口,能够执行Switch_to/Switch_out的语义,Switch_to操作会将对应输入输出请求的跟踪记录的ID信息记录到TLS变量中,从而能够实现在任意代码逻辑中执行跟踪数据采集,不需要在函数调用间传递跟踪记录的ID信息。切出数据调用接口中,通过Switch_out操作将TLS变量清空,防止其他输入输出请求的上下文误操作。为了提供更多的灵活性,降低全链路追踪工具对存储系统的性能影响。
如图5所示,全链路追踪库11中包括数据采集单元113和配置管理单元114,数据采集单元11从数据接口111对各类跟踪过程中的信息进行采集,配置管理单元114可以对所述跟踪接口中进行配置,针对不同类型的输入输出进程设定不同的采集率,由此,为全链路跟踪方式提供更多的灵活性,降低全链路追踪工具对存储系统的性能影响。通用的采集率设定策略是每隔N个输入输出节点采样一次。为了均衡采样效率和性能开销,在其它实施例中也可以采用动态适配的采样率模型进行采集率的设定,根据业务压力动态调整采集率。
进一步地,所述配置管理单元114还用于配置全链路跟踪功能开关,支持在运行期间动态的打开和关闭全链路跟踪功能开关。所述配置管理单元114还用于配置Dump log开关,通过配置管理单元114打开Dump log开关并设置阈值,当本次输入输出请求的时延超过所设定的阈值时会被默认写到log文件中。
进一步地,如图所示,所述全链路解析工具模块12中,包括数据解析单元121和数据显示单元122,数据解析单元中可以针对跟踪过程中所采集到的数据进行分析,例如针对S1-S8的分段时延与预设的时延范围值进行比较,判断是否有某一分段的试验过长都等。所述数据显示单元122,以命令行模式或直方图模式显示所述全链路追踪结果,可以用于协助用户态存储系统查看性能瓶颈。其中:
命令行模式下,全链路解析工具模块12直接将环形缓冲区112内的跟踪记录进行解析,并将结果输出到上位控制台或者文件中。该模式支持通过输入输出类型、跟踪对象的数量、跟踪关键点的类型等多个维度进行筛选。用户可以通过命令行模式查看一个输入输出进程在不同的存储模块之间的时延分布情况。
直方图模式下,可以动态查看一定时间周期内的特定时延的分布情况,包含:平均时延、P90/P99/P999/P9999时延、最大时延等。
在本发明以上实施例中的方案,具有提高了全链路追踪方案的性能和灵活性,通过提供Switch_out/Switch_to的语义,支持同一个线程内的输入输出进程的上下文切换,可以应用于全异步的用户态存储系统中;而且,数据接口包括多个简单易用的跟踪过程中调用的数据接口,用户态存储系统简单适配即可接入,不需要修改核心代码。本发明实施例还提供了功能丰富的解析和配置工具,可以有效的定位用户态存储系统的性能瓶颈。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明的保护范围之中。
Claims (10)
1.一种用户态存储系统的全链路追踪装置,其特征在于,包括:
全链路追踪库,配置有数据接口和环形缓冲区,所述数据接口用于与所述用户态存储系统进行交互,对输入输出进程数据进行调用,为每一所述输入输出进程数据分配跟踪记录以及与跟踪记录对应的记录标记;所述环形缓冲区用于将所述输入输出进程数据的跟踪记录和对应的记录标记作为追踪数据进行存储;
全链路解析工具模块,获取所述环形缓冲区中的所述追踪数据,对所述追踪数据进行解析得到与所述输入输出进程数据对应的全链路追踪结果并进行显示。
2.根据权利要求1所述的用户态存储系统的全链路追踪装置,其特征在于:
所述环形缓冲区的内存空间按照用户态存储系统的处理器核数划分为多个跟踪通道;每一所述跟踪通道仅由对应的处理器核访问。
3.根据权利要求2所述的用户态存储系统的全链路追踪装置,其特征在于:
每一所述跟踪通道对应于一个或多个输入输出进程,当所述跟踪通道对应于多个输入输出进程时,每一所述跟踪通道被分配多个ID信息,每一所述ID信息与一个记录标记相对应。
4.根据权利要求3所述的用户态存储系统的全链路追踪装置,其特征在于:
每一所述跟踪记录中设有多个跟踪关键点,每个所述跟踪关键点包括对关联的输入输出进程数据进行跟踪采集后生成的采集记录。
5.根据权利要求1-4任一项所述的用户态存储系统的全链路追踪装置,其特征在于:
所述全链路追踪库作为第三方库运行在用户态存储系统中;
所述全链路解析工具模块作为独立进程从所述全链路追踪库中获取所述追踪数据。
6.根据权利要求5所述的用户态存储系统的全链路追踪装置,其特征在于,所述全链路追踪库配置的数据接口包括:
初始数据调用接口,在每个输入输出进程开始时被调用;从对应的跟踪通道中获取可用记录标记,并调用所述可用记录标记的ID信息返回至相应的输入输出进程;
终期数据调用接口,在每个输入输出进程结束时被调用,用于执行跟踪记录的完结。
7.根据权利要求6所述的用户态存储系统的全链路追踪装置,其特征在于,所述全链路追踪库配置的数据接口包括:
切入数据调用接口,在输入输出进程切入时被调用,将切入的输入输出进程中所包含的记录标记的ID信息写入到本地线程存储方式的变量中;
跟踪接口,在执行数据跟踪的采集时被调用,从所述本地线程存储方式的变量中获取记录标记的ID信息,并将采集结果存储至与ID信息对应的跟踪记录中。
8.根据权利要求7所述的用户态存储系统的全链路追踪装置,其特征在于:
所述跟踪接口中,针对不同类型的输入输出进程设定不同的采集率。
9.根据权利要求8所述的用户态存储系统的全链路追踪装置,其特征在于,所述全链路追踪库配置的数据接口包括:
切出数据调用接口,在输入输出进程切出时被调用,在输入输出进程切出后将本地线程存储方式的变量中写入的与切出输入输出进程对应的ID信息删除。
10.根据权利要求9所述的用户态存储系统的全链路追踪装置,其特征在于:
所述全链路解析工具模块中,以命令行模式或直方图模式显示所述全链路追踪结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111458975.5A CN114115746A (zh) | 2021-12-02 | 2021-12-02 | 一种用户态存储系统的全链路追踪装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111458975.5A CN114115746A (zh) | 2021-12-02 | 2021-12-02 | 一种用户态存储系统的全链路追踪装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114115746A true CN114115746A (zh) | 2022-03-01 |
Family
ID=80365379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111458975.5A Pending CN114115746A (zh) | 2021-12-02 | 2021-12-02 | 一种用户态存储系统的全链路追踪装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114115746A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103684898A (zh) * | 2012-09-14 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种监测用户请求在分布式系统中运行的方法及装置 |
CN108229172A (zh) * | 2018-02-13 | 2018-06-29 | 国家计算机网络与信息安全管理中心 | 基于windows平台的跨层次数据流追踪方法 |
CN110297787A (zh) * | 2018-03-22 | 2019-10-01 | 龙芯中科技术有限公司 | I/o设备访问内存的方法、装置及设备 |
CN111625431A (zh) * | 2019-02-28 | 2020-09-04 | 华为技术有限公司 | 一种日志信息生成方法、装置及电子设备 |
US10893105B1 (en) * | 2019-08-07 | 2021-01-12 | EMC IP Holding Company LLC | Utilization of networking protocol for seamless integration of compute nodes with software-defined storage nodes |
CN113448815A (zh) * | 2020-03-26 | 2021-09-28 | 华为技术有限公司 | 一种采集追踪trace调用链的方法和电子设备 |
-
2021
- 2021-12-02 CN CN202111458975.5A patent/CN114115746A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103684898A (zh) * | 2012-09-14 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种监测用户请求在分布式系统中运行的方法及装置 |
CN108229172A (zh) * | 2018-02-13 | 2018-06-29 | 国家计算机网络与信息安全管理中心 | 基于windows平台的跨层次数据流追踪方法 |
CN110297787A (zh) * | 2018-03-22 | 2019-10-01 | 龙芯中科技术有限公司 | I/o设备访问内存的方法、装置及设备 |
CN111625431A (zh) * | 2019-02-28 | 2020-09-04 | 华为技术有限公司 | 一种日志信息生成方法、装置及电子设备 |
US10893105B1 (en) * | 2019-08-07 | 2021-01-12 | EMC IP Holding Company LLC | Utilization of networking protocol for seamless integration of compute nodes with software-defined storage nodes |
CN113448815A (zh) * | 2020-03-26 | 2021-09-28 | 华为技术有限公司 | 一种采集追踪trace调用链的方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6633925B2 (en) | Operating system for generating overlapped input-output requests to a device in a disk array storage | |
US6539500B1 (en) | System and method for tracing | |
US5682328A (en) | Centralized computer event data logging system | |
US20060259822A1 (en) | Profiling system | |
US20030005417A1 (en) | Debugger for a hardware-implemented operating system | |
JPS63113623A (ja) | セクタバツフア制御方式 | |
US10078568B1 (en) | Debugging a computing device | |
US8935577B2 (en) | Method and apparatus for filtering trace information | |
US20090070560A1 (en) | Method and Apparatus for Accelerating the Access of a Multi-Core System to Critical Resources | |
US6308243B1 (en) | Method and system for controlling exclusive access to shared resources in computers | |
CN115080206A (zh) | 一种基于多线程机制的高速回波数据实时记录系统及记录方法 | |
WO2024119930A1 (zh) | 调度方法、装置、计算机设备和存储介质 | |
CN114115746A (zh) | 一种用户态存储系统的全链路追踪装置 | |
JPS62119626A (ja) | 磁気デイスクの多重制御方式 | |
CN117472568A (zh) | 一种多线程任务处理方法及终端 | |
US20040199902A1 (en) | Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory | |
US20040128654A1 (en) | Method and apparatus for measuring variation in thread wait time | |
CN116841458A (zh) | 存储器读写控制方法、系统、终端及存储介质 | |
US8468394B2 (en) | Method of tracing selected activities within a data processing system by tagging selected items and tracing the tagged items | |
CN117632454A (zh) | Linux操作系统资源监控方法、装置、存储介质和电子设备 | |
US5913073A (en) | Input/output driver for benchmark testing | |
CN107809463B (zh) | 一种双轴激光捷联惯组下位机与上位机之间的交互方法 | |
JPS599928B2 (ja) | チヤネル制御方式 | |
CN111158796A (zh) | 一种液压控制软件的数据处理方法 | |
Alexander et al. | An on-line computer system for track chamber film measuring devices |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220301 |