CN110955584A - 块设备访问追踪方法、装置、存储介质及终端 - Google Patents
块设备访问追踪方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN110955584A CN110955584A CN201811125064.9A CN201811125064A CN110955584A CN 110955584 A CN110955584 A CN 110955584A CN 201811125064 A CN201811125064 A CN 201811125064A CN 110955584 A CN110955584 A CN 110955584A
- Authority
- CN
- China
- Prior art keywords
- preset
- block device
- device access
- called
- function
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了块设备访问追踪方法、装置、存储介质及终端。该方法包括:预设块设备访问事件被触发时,若判断出内核空间中与所述预设块设备访问事件对应的待调用函数之前存在基于预设虚拟机编写的预设程序代码,则通过所述预设程序代码获取待调用函数对应的块设备访问信息,采用预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取。本申请实施例通过采用上述技术方案,可以利用基于实现在内核空间中的预设虚拟机,编写的预设程序代码获取并存储块设备访问信息,供用户空间读取,可以减少内核空间和用户空间的交互,降低块设备访问追踪对系统的负担,提高系统稳定性。
Description
技术领域
本申请实施例涉及终端技术领域,尤其涉及块设备访问追踪方法、装置、存储介质及终端。
背景技术
目前,在终端的操作系统中,对各类文件的访问比较频繁,而对文件的访问也会产生块设备的访问,如何对块设备访问进行优化,是系统优化课题中重要的一环。
在研究对块设备访问的优化时,通常需要对块设备的访问进行追踪,以了解块设备被访问时的相关信息。然而,现有的文件追踪方案仍不够完善,需要改进。
发明内容
本申请实施例提供一种块设备访问追踪方法、装置、存储介质及终端,可以优化块设备访问追踪方案。
第一方面,本申请实施例提供了一种块设备访问追踪方法,包括:
预设块设备访问事件被触发时,判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码;
若存在,则通过所述预设程序代码获取所述待调用函数对应的块设备访问信息;
采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取。
第二方面,本申请实施例提供了一种块设备访问追踪装置,包括:
判断模块,用于在预设块设备访问事件被触发时,判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码;
访问信息获取模块,用于在所述判断模块的判断结果为存在时,通过所述预设程序代码获取所述待调用函数对应的块设备访问信息;
访问信息存储模块,用于采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的块设备访问追踪方法。
第四方面,本申请实施例提供了一种终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的块设备访问追踪方法。
本申请实施例中提供的块设备访问追踪方案,预设块设备访问事件被触发时,若判断出内核空间中与预设块设备访问事件对应的待调用函数之前存在基于预设虚拟机编写的预设程序代码,则通过预设程序代码获取待调用函数对应的块设备访问信息,采用预设虚拟机对应的存储格式对块设备访问信息进行存储,以供用户空间读取。通过采用上述技术方案,可以基于实现在内核空间中的预设虚拟机,在内核空间中的与预设块设备访问事件对应的待调用函数之前插入预设程序代码,利用该预设程序代码获取并存储块设备访问信息,供用户空间读取,可以减少内核空间和用户空间的交互,降低块设备访问追踪对系统的负担,提高系统稳定性。
附图说明
图1为本申请实施例提供的一种块设备访问追踪方法的流程示意图;
图2为本申请实施例提供的另一种块设备访问追踪方法的流程示意图;
图3为本申请实施例提供的又一种块设备访问追踪方法的流程示意图;
图4为本申请实施例提供的一种块设备访问追踪装置的结构框图;
图5为本申请实施例提供的一种终端的结构示意图;
图6为本申请实施例提供的又一种终端的结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本申请的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1为本申请实施例提供的一种块设备访问追踪方法的流程示意图,该方法可以由块设备访问追踪装置执行,其中该装置可由软件和/或硬件实现,一般可集成在终端中。如图1所示,该方法包括:
步骤101、预设块设备访问事件被触发时,判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码。
示例性的,本申请实施例中的终端可包括手机、平板电脑、笔记本电脑、计算机以及智能家电等设置安装有操作系统的设备。
本申请实施例中对操作系统的类型不做限定,例如可包括安卓(Android)操作系统、窗口(Windows)操作系统以及苹果(ios)操作系统等等。对于很多操作系统来说,内核一般基于Linux实现,Linux中的输入输出(I/O)设备主要分为两类,字符设备和块设备,两种设备本身没有严格限制,但基于不同的功能进行了分类。字符设备可提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取,相反,此类设备支持按字节/字符来读写数据,举例来说,键盘、串口、调制解调器都是典型的字符设备。对于块设备,将信息存储在固定大小的块中,每个块都有自己的地址,应用程序可以随机访问设备数据,程序可自行确定读取数据的位置,硬盘、软盘和闪存等都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。其中,块是内核或文件系统等数据处理的基本单位,1个块由1个或多个扇区组成。
为了便于说明,本申请实施例将以安卓操作系统为例进行后续的说明。在终端的Android操作系统中,对各类文件的访问非常频繁,而对文件的访问也会产生块设备的访问,如何对块设备访问进行优化,是系统优化课题中重要的一环。在相关技术中,对块设备访问进行优化时,需要使用某种手段追踪块设备的访问,获取块设备访问信息,以达到精确的优化目标。
示例性的,通常可采用类似ftrace或blktrace的Linux内核级的追踪框架实现块设备访问追踪。最早ftrace是一个函数追踪器(function tracer),仅能够记录内核的函数调用流程,如今ftrace已经发展成为一个框架(framework),可采用插入(plugin)的方式支持开发人员添加更多种类的追踪(trace)功能,帮助开发人员了解Linux内核的运行时行为,以便进行故障调试或性能分析,因此,可以用于对块设备访问进行追踪。然而,采用ftrace一类的追踪框架进行块设备访问追踪时,会将收集到的信息写入环形缓存(ringbuffer)中,且收集过程中不能对信息进行筛选或统计等操作,在收集内核信息时,仅能够获取内核标准格式的信息,导致收集的信息量较大,而ring buffer中的存储空间有限,为了防止信息丢失,用户空间程序就会不断地读取ring buffer中的内容,然后在用户空间对读取到的信息进行筛选、计算或统计等操作。这样,会产生大量的内核空间和用户空间的交互,用户空间程序会占用大量的处理器,如中央处理器(central processing unit,CPU),的资源。另外,若想要收集内核标准格式信息以外其他类型信息,则需要在内核中插入相应的代码,基于ftrace等架构在内核中插入代码尝尝会导致内核崩溃等异常,降低系统稳定性,导致开发周期较长,在实际量产系统中难以集成。blktrace是针对块设备层的追踪框架,具体工作方式与ftrace类似,因此也存在上述同样的问题。
本申请实施例中,可以基于实现在内核空间中的预设虚拟机实现块设备访问追踪。示例性的,所述预设块设备访问事件可包括同步读、同步写、异步读和异步写等。当然,还可包含其他块设备访问事件,不同的操作系统中块设备访问事件的类型或叫法可能不同,本领域技术人员可根据实际使用的操作系统进行适应性的选择。
对于很多操作系统来说,系统底层一般为Linux Kernel,系统会进行内核空间和用户空间的划分,不同的操作系统划分方式或划分结果可能不同。用户空间一般指用户进程所在的内存区域,应用程序运行在用户空间,用户进程的数据存放于用户空间;而内核空间是操作系统占据的内存区域,操作系统和驱动程序运行在内核空间,操作系统的数据存放于系统空间。这样,可以将用户数据和系统数据进行隔离,保证系统的稳定性。一般的,用户空间和内核空间通过系统调用(system call)进行交互,系统调用可以理解为由操作系统实现提供的所有系统调用所构成的集合,即程序接口或应用编程接口(ApplicationProgramming Interface,API),是应用程序与系统之间的接口。操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。
本申请实施例中,在应用程序对块设备进行访问时,需要通过系统调用的方式访问内核空间,也即,需要调用相应的系统调用接口访问内核空间,因此,可根据预设块设备访问事件对应的系统调用接口是否被调用来判断预设块设备访问事件是否被触发,若被调用,则可认为预设块设备访问事件被触发。
示例性的,在调用相应的系统调用接口后,还需要调用(一般通过块设备驱动程序调用)内核空间中的相应函数来实现块设备访问,可将该相应函数称为待调用函数。以上述的同步读、同步写、异步读和异步写等为例,每个预设块设备访问事件都对应着相应的待调用函数,用于实现同步读、同步写、异步读和异步写的功能。在不同的操作系统中,函数具体的实现形式可能不同,本申请实施例不做限定。
本申请实施例中,可预先基于预设虚拟机的程序代码编写方式,在内核空间中的待调用函数之前,插入预设程序代码,该预设程序代码用于获取块设备访问信息。这样,预设块设备访问事件被触发时,就可以判断是否存在基于预设虚拟机编写的预设程序代码,进而确定先执行该预设程序代码,还是直接执行待调用函数对应的代码。基于预设虚拟机插入预设程序代码,能够保证系统的稳定性。
步骤102、若存在,则通过所述预设程序代码获取所述待调用函数对应的块设备访问信息。
示例性的,在确定存在预设程序代码时,可先执行该预设程序代码,然后再执行待调用函数,预设程序代码用于对执行待调用函数时的与块设备访问相关的信息进行获取,这些信息本申请实施例中称为块设备访问信息。块设备访问信息可包括反应块设备访问过程的细节信息,如访问的哪个块设备,访问块设备里的哪个文件,以及具体的访问方式等等。可选的,所述块设备访问信息包括所述预设块设备访问事件对应的数据传输过程结束时,传输数据量的大小和传输延迟。其中,传输延迟可表示访问请求发起,到访问请求完成(即针对访问请求的数据传输过程结束)之间的时间间隔。通过对传输数据量的大小和传输延迟的分析,可以对块设备的访问性能进行评价,从而更加有针对性的对块设备的访问进行优化。
步骤103、采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取。
本申请实施例中,利用预设虚拟机对应的存储格式对所获取的块设备访问信息进行存储,而并非采用内核标准格式进行存储,能够节省存储空间。用户空间不需要不停地读取块设备访问信息,而是可以定期或在需要时一次性读取所需的块设备访问信息即可,可有效减少内核空间和用户空间的交互次数,且由于采用预设虚拟机的存储格式,读取信息量更少,传输量小,所以交互数据量也减小,从而降低块设备访问追踪对系统的负担,提高系统稳定性。
本申请实施例中提供的块设备访问追踪方法,预设块设备访问事件被触发时,若判断出内核空间中与预设块设备访问事件对应的待调用函数之前存在基于预设虚拟机编写的预设程序代码,则通过预设程序代码获取待调用函数对应的块设备访问信息,采用预设虚拟机对应的存储格式对块设备访问信息进行存储,以供用户空间读取。通过采用上述技术方案,可以基于实现在内核空间中的预设虚拟机,在内核空间中的与预设块设备访问事件对应的待调用函数之前插入预设程序代码,利用该预设程序代码获取并存储块设备访问信息,供用户空间读取,可以减少内核空间和用户空间的交互,降低块设备访问追踪对系统的负担,提高系统稳定性。
在一些实施例中,所述判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码,包括:判断内核空间中的块设备层中,调用与所述预设块设备访问事件对应的待调用函数的起始位置处,是否存在基于预设虚拟机编写的预设程序代码。这样设置的好处在于,不会破坏内核空间中现有代码。块设备层又称为通用块层,用于实现块设备访问的待调用函数一般处于该层中,可以在调用待调用函数的起始位置处写入基于预设虚拟机的程序,用于获取块设备访问信息,使得在判断是否存在预设程序代码时的时机和位置更加明确,保证预设程序代码能够成功被执行。此外,在进行块设备访问时,调用相应的系统调用接口后,可能需要进行访问方式的判断,一般包括内存访问和物理设备访问,若确定为物理设备访问时,则继续判断内核空间中的块设备层中,调用与所述预设块设备访问事件对应的待调用函数的起始位置处,是否存在基于预设虚拟机编写的预设程序代码。
在一些实施例中,对于所述传输数据量的大小,所述通过所述预设程序代码获取所述待调用函数对应的块设备访问信息,包括:通过所述预设程序代码获取所述待调用函数对应的函数参数内容和/或所述待调用函数对应的内核数据结构内容;根据所述函数参数内容和/或所述内核数据结构内容确定所述待调用函数对应的传输数据量的大小。这样设置的好处在于,能够成功准确地获取到块设备访问信息中的传输数据量的大小。在执行待调用函数时,传输数据量的大小可能会存在于函数参数里面;还可能会存在于对应的内核数据结构中,该内核数据结构也可能存在于函数参数里。其中,存在的形式不做限定,在获取到函数参数内容或内核数据结构内容后,可能需要进行转换,从而得到最终所需的块设备访问信息。
在一些实施例中,所述待调用函数包括块设备请求发起事件对应的第一待调用函数和块设备请求完成事件对应的第二待调用函数。对于所述传输延迟,所述通过所述预设程序代码获取所述待调用函数对应的块设备访问信息,包括:通过所述预设程序代码获取所述第一待调用函数被调用时的第一时刻,以及所述第二待调用函数被调用时的第二时刻;根据所述第二时刻与所述第一时刻的差值确定对应的传输延迟。这样设置的好处在于,能够成功准确地获取到块设备访问信息中的传输延迟。在Linux中,驱动对块设备的输入输出(I/O)操作,即对块设备进行访问时,都会向块设备发起一个请求,在驱动中用request结构体描述,对应的所调用的函数记为第一待调用函数。但对于一些磁盘设备而言请求的速度很慢,这时候内核就提供一种队列的机制把这些I/O请求添加到队列中(可称为请求队列),在驱动中用request_queue结构体描述。在完成对块设备的访问时,也即完成请求时,需要返回指示请求的数据是否已经完成传输,对应的所调用的函数记为第二待调用函数。因此,可以根据调用这两个待调用函数的时间差来确定本次预设块设备访问事件对应的传输延迟。
在一些实施例中,所述预设虚拟机包括扩展伯克利包过滤器(extended BerkeleyPacket Filter,eBPF),所述预设虚拟机对应的存储格式包括哈希表。eBPF是一套实现在内核中的虚拟机,它最初被设计用来实现网络数据包的过滤,如今已经有了在内核任何位置进行插入虚拟机代码并实行的能力,并且一般插入的虚拟机代码在之前还会进行大量检测,保证不会影响系统的稳定性。目前在eBPF中规定的存储格式包括哈希表(Hash table),哈希表又称散列表,是根据关键码值(Key value,简称键值)而直接访问的数据结构,它通过把键值映射到表中一个位置来访问记录,以加快查找的速度。这样设置的好处在于,能够进一步保证系统稳定性,减少内核空间和用户空间的交互。
在一些实施例中,所述采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,包括:以所述预设块设备访问事件对应的进程标识和所述块设备访问信息作为哈希表的键值,将与所述键值相匹配的预设块设备访问事件发生的次数存储在与所述预设块设备访问事件对应的哈希表中。这样设置的好处在于,能够合理准确地对块设备访问信息进行存储,且方便查询及后续的分析统计。其中,进程标识可以是进程身份标识(Identification,ID),所述预设块设备访问事件对应的进程标识,可理解为触发预设块设备访问事件的进程的ID。与所述键值相匹配的预设块设备访问事件发生的次数,可理解为对于相同的进程ID,块设备访问信息相同的预设块设备访问事件发生的次数。以块设备访问信息包括传输数据量的大小和传输延迟为例,进程A触发预设块设备访问事件4次,第1次传输数据量的大小为2pages(假设以内存页为单位),传输延迟为2ms,第2次传输数据量的大小为3pages(假设以内存页为单位),传输延迟为2ms,第3次传输数据量的大小为2pages(假设以内存页为单位),传输延迟为2ms,第4次传输数据量的大小为3pages(假设以内存页为单位),传输延迟为1ms。那么可将A22作为第一键值,A表示进程A,第一个2表示传输数据量的大小为2pages,第二个2表示传输延迟为2ms,第一键值对应的存储内容为2次;A32为第二键值,对应存储内容为1次;A31为第二键值,对应存储内容为1次。可以理解的是,进程标识和所述块设备访问信息在键值中的排列顺序不做限定。
示例性的,对于不同的预设块设备访问事件,如同步读、同步写以及其他请求,可分别分配一张单独的哈希表。如,同步读对应哈希表1,同步写对应哈希表2,其他请求对应哈希表3。这样设置的好处在于,能过对不同的预设块设备访问事件对应的访问信息进行独立存储,方便后续的查询以及分析。另外,终端中可能存在多个块设备,还可按照块设备进行进一步细分。每个块设备中可包含多个哈希表,这多个哈希表分别对应同步读、同步写以及其他请求。
在一些实施例中,在所述采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储之前,还包括:获取预设哈希表,其中,所述预设哈希表由所述用户空间传递至所述内核空间,所述预设哈希表中存储有过滤条件信息;根据所述预设哈希表中的过滤条件信息对所述块设备访问信息进行过滤.相应的,所述采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,包括:采用所述预设虚拟机对应的存储格式对过滤后的块设备访问信息进行存储。其中,过滤可以是正向过滤,也可以是反向过滤。这样设置的好处在于,在对块设备访问信息进行存储之前,能够有选择性的进行过滤,进一步减少存储量。另外,预设哈希表由用户空间传递至内核空间,可支持由用户自行对预设哈希表进行设置,如选取自己关心的某个应用程序(可以使用用户ID表示,即每个应用程序存在对应的用户ID)或某个进程(可以用进程ID进行表示)作为过滤条件信息,指示内核空间将这些应用程序或进程对应的块访问信息筛选出来进行存储。示例性的,可将用户ID或进程ID作为键值,将过滤方式作为对应的存储内容(如保留或滤除);还可反过来,将过滤方式作为键值,将用户ID或进程ID作为对应的存储内容等等。例如,可选的,在一些实施例中,还可包括:通过用户空间接收过滤条件设置操作,根据所述过滤条件设置操作生成预设哈希表;将所述预设哈希表由所述用户空间传递至所述内核空间。
在一些实施例中,在采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取之后,还包括:在所述内核空间接收到所述用户空间的预设读取请求时,根据所述预设读取请求查询与所述预设块设备访问事件对应的哈希表,并将查询结果反馈给所述用户空间。这样设置的好处在于,用户空间可以按照自己的意愿随时或定期向内核空间发送预设读取请求,由内核空间完成查询,而不是由用户空间读取整个存储有块设备访问信息的哈希表并自行查询,能够进一步减少用户空间与内核空间之间的交互数据量,降低追踪块设备访问对系统的负载。
可选的,在所述将查询结果反馈给所述用户空间之后,还可在用户空间中对所述查询结果进行进一步的分析或统计等操作。如统计相同传输延迟的访问事件的发生次数;又如,统计相同传输数据量大小的访问事件的发生次数;再如,传输数据量大小和传输延迟的对应关系等等。示例性的,可以采用直方图或热力图等形式进行展示,例如在终端显示屏上显示根据查询结果统计得到的传输延迟直方图(如横轴为传输延迟,单位为ms;纵轴为发生次数)、传输大小直方图(如横轴为传输数据量大小,单位为pages;纵轴为发生次数)以及传输大小vs传输延迟热力图(横轴为传输数据量大小,单位为pages;纵轴为传输延迟,单位为ms;颜色深浅表示发生次数)。可选的,对于同步读、同步写和其他请求可分别对应3个图。
图2为本申请实施例提供的另一种块设备访问追踪方法的流程示意图,以预设虚拟机为eBPF为例,该方法包括如下步骤:
步骤201、检测到预设块设备访问事件被触发。
示例性的,可根据预设块设备访问事件对应的系统调用接口是否被调用来判断预设块设备访问事件是否被触发,若被调用,则可认为预设块设备访问事件被触发。预设块设备访问事件可包括同步读、同步写、异步读和异步写等。
步骤202、判断内核空间中的块设备层中,调用与预设块设备访问事件对应的第一待调用函数的起始位置处,是否存在基于eBPF编写的预设程序代码,若是,则执行步骤203;否则,执行步骤207。
示例性的,待调用函数包括块设备请求发起事件对应的第一待调用函数和块设备请求完成事件对应的第二待调用函数。一般第一待调用函数最先被调用,所以可直接判断调用第一待调用函数的起始位置处是否存在eBPF程序。
步骤203、通过预设程序代码获取第一待调用函数和第二待调用函数对应的函数参数内容,并获取第一待调用函数被调用时的第一时刻,以及第二待调用函数被调用时的第二时刻。
示例性的,可先执行预设程序代码,再执行待调用函数,块设备访问信息一般会存在于函数参数里面,因此可利用预设程序代码对待调用函数执行过程中涉及到的函数参数内容进行获取。另外,需要记录待调用函数被调用的时刻。示例性的,可以存在一个哈希表,将本次请求对应的请求ID作为键值,将对应的调用时刻进行存储。内核空间一般会为每个请求分配内存地址,可将该分配的内存地址作为本次请求的请求ID。
步骤204、根据函数参数内容确定待调用函数对应的传输数据量的大小,根据第二时刻与第一时刻的差值确定对应的传输延迟。
在获取到函数参数内容后,函数参数内容中可能包含内核数据结构,可对内核数据结构进行进一步转换,从而得到最终所需的传输数据量的大小。从哈希表中查询同一个请求ID对应的第二时刻与第一时刻,然后计算出传输延迟。
步骤205、以预设块设备访问事件对应的进程标识、传输数据量的大小和传输延迟作为哈希表的键值,将与键值相匹配的预设块设备访问事件发生的次数存储在与所述预设块设备访问事件对应的哈希表中。
步骤206、在内核空间接收到用户空间的预设读取请求时,根据预设读取请求查询与所述预设块设备访问事件对应的哈希表,并将查询结果反馈给所述用户空间。
步骤207、执行第一待调用函数。
示例性的,若第一待调用函数被调用的起始位置并不存在预设程序代码,那么可说明当前的块设备访问事件并不被关注,不需要对本次块设备访问进行追踪,也不需要获取相应的块设备访问信息,可直接执行第一待调用函数。
本申请实施例提供的块设备访问追踪方法,利用eBPF框架在内核中实现实时的块设备访问统计,通过在待调用函数被调用的起始位置处插入eBPF程序来实现块设备访问信息的获取,并存储于哈希表中,当接收到用户空间的预设读取请求时,由内核空间根据预设读取请求对哈希表进行查询,并将查询结果反馈给用户空间。实践证明,每次传输量可降低到几十KB,可见,通过采用本申请实施例提供的方案,可有效减少内核空间和用户空间的交互,降低块设备访问追踪对系统的负担,提高系统稳定性。
图3为本申请实施例提供的又一种块设备访问追踪方法的流程示意图,该方法包括:
步骤301、通过用户空间接收过滤条件设置操作,根据过滤条件设置操作生成第一哈希表。
示例性的,可在终端中向用户展示块设备访问追踪设置界面,用户可基于该设置界面输入过滤条件设置操作,如选择自己关心的应用程序或者进程作为目标应用程序或目标进程。用户空间根据用户输入的过滤条件设置操作生成第一哈希表,用于指示内核空间对目标应用程序或目标进程发起的块设备访问进行实时的追踪。
步骤302、将第一哈希表由用户空间传递至内核空间。
步骤303、检测到预设块设备访问事件被触发。
步骤304、在内核空间中的虚拟文件系统层中,调用与预设块设备访问事件对应的第一待调用函数的起始位置处,检测到基于eBPF编写的预设程序代码。
步骤305、通过预设程序代码获取第一待调用函数和第二待调用函数对应的函数参数内容,并获取第一待调用函数被调用时的第一时刻,以及第二待调用函数被调用时的第二时刻。
步骤306、根据函数参数内容确定待调用函数对应的传输数据量的大小,根据第二时刻与第一时刻的差值确定对应的传输延迟。
步骤307、根据第一哈希表中的过滤条件信息对传输数据量的大小和传输延迟进行过滤。
示例性的,可判断当前传输数据量的大小和传输延迟对应的发起对象是否属于目标应用程序(或是否为目标进程),若是,则说明是需要进行追踪的块设备访问,可将传输数据量的大小和传输延迟进行保留;若不是,则说明是不需要进行追踪的块设备访问,可忽略当前传输数据量的大小和传输延迟,即进行滤除。
步骤308、以进程标识,以及过滤后的传输数据量的大小和传输延迟作为哈希表的键值,将与键值相匹配的预设块设备访问事件发生的次数进行存储,得到第二哈希表。
其中,可将进程标识,以及过滤后的传输数据量的大小和传输延迟组合成一个连续的字符串,形成第二哈希表的键值。
步骤309、在内核空间接收到用户空间的预设读取请求时,根据预设读取请求查询第二哈希表,并将查询结果反馈给用户空间。
步骤310、通过用户空间对查询结果进行统计,并展示传输延迟直方图、传输大小直方图、以及传输大小vs传输延迟热力图。
本申请实施例提供的块设备访问追踪方法,可以由用户对需要进行访问追踪的发起对象进行预先设置,在内核空间通过eBPF程序获取到块设备访问信息后,根据用户的设置进行相应的过滤,再存储于哈希表中,不仅可以进一步减少存储量,还可增强块设备访问追踪的针对性和个性化,在用户空间需要读取块设备访问信息时,能够进一步减少内核空间和用户空间的交互,实现了轻量级的文件追踪,有利于部署到量产系统中。此外,对读取到的块设备访问信息进行统计,以图表形式进行展示,便于对块设备访问的分析和优化。
图4为本申请实施例提供的一种块设备访问追踪装置的结构框图,该装置可由软件和/或硬件实现,一般集成在终端中,可通过执行块设备访问追踪方法来对块设备访问进行追踪。如图4所示,该装置包括:
判断模块401,用于在预设块设备访问事件被触发时,判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码;
访问信息获取模块402,用于在所述判断模块的判断结果为存在时,通过所述预设程序代码获取所述待调用函数对应的块设备访问信息;
访问信息存储模块403,用于采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取。
本申请实施例中提供的块设备访问追踪装置,预设块设备访问事件被触发时,若判断出内核空间中与预设块设备访问事件对应的待调用函数之前存在基于预设虚拟机编写的预设程序代码,则通过预设程序代码获取待调用函数对应的块设备访问信息,采用预设虚拟机对应的存储格式对块设备访问信息进行存储,以供用户空间读取。通过采用上述技术方案,可以基于实现在内核空间中的预设虚拟机,在内核空间中的与预设块设备访问事件对应的待调用函数之前插入预设程序代码,利用该预设程序代码获取并存储块设备访问信息,供用户空间读取,可以减少内核空间和用户空间的交互,降低块设备访问追踪对系统的负担,提高系统稳定性。
可选的,所述判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码,包括:
判断内核空间中的块设备层中,调用与所述预设块设备访问事件对应的待调用函数的起始位置处,是否存在基于预设虚拟机编写的预设程序代码。
可选的,所述块设备访问信息包括所述预设块设备访问事件对应的数据传输过程结束时,传输数据量的大小和传输延迟。
可选的,对于所述传输数据量的大小,所述通过所述预设程序代码获取所述待调用函数对应的块设备访问信息,包括:
通过所述预设程序代码获取所述待调用函数对应的函数参数内容和/或所述待调用函数对应的内核数据结构内容;
根据所述函数参数内容和/或所述内核数据结构内容确定所述待调用函数对应的传输数据量的大小。
可选的,所述待调用函数包括块设备请求发起事件对应的第一待调用函数和块设备请求完成事件对应的第二待调用函数;
对于所述传输延迟,所述通过所述预设程序代码获取所述待调用函数对应的块设备访问信息,包括:
通过所述预设程序代码获取所述第一待调用函数被调用时的第一时刻,以及所述第二待调用函数被调用时的第二时刻;
根据所述第二时刻与所述第一时刻的差值确定对应的传输延迟。
可选的,所述预设虚拟机包括扩展伯克利包过滤器eBPF,所述预设虚拟机对应的存储格式包括哈希表。
可选的,所述采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,包括:
以所述预设块设备访问事件对应的进程标识和所述块设备访问信息作为哈希表的键值,将与所述键值相匹配的预设块设备访问事件发生的次数存储在与所述预设块设备访问事件对应的哈希表中。
可选的,该装置还包括:
预设哈希表获取模块,在所述采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储之前,获取预设哈希表,其中,所述预设哈希表由所述用户空间传递至所述内核空间,所述预设哈希表中存储有过滤条件信息;
过滤模块,用于根据所述预设哈希表中的过滤条件信息对所述块设备访问信息进行过滤;
相应的,所述采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,包括:
采用所述预设虚拟机对应的存储格式对过滤后的块设备访问信息进行存储。
可选的,该装置还包括:
查询结果反馈模块,用于在采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取之后,在所述内核空间接收到所述用户空间的预设读取请求时,根据所述预设读取请求查询与所述预设块设备访问事件对应的哈希表,并将查询结果反馈给所述用户空间。
可选的,该装置还可包括:
预设哈希表生成模块,用于通过用户空间接收过滤条件设置操作,根据所述过滤条件设置操作生成预设哈希表;
预设哈希表传递模块,用于将所述预设哈希表由所述用户空间传递至所述内核空间。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行块设备访问追踪方法,该方法包括:
预设块设备访问事件被触发时,判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码;
若存在,则通过所述预设程序代码获取所述待调用函数对应的块设备访问信息;
采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的块设备访问追踪操作,还可以执行本申请任意实施例所提供的块设备访问追踪方法中的相关操作。
本申请实施例提供了一种终端,该终端中可集成本申请实施例提供的块设备访问追踪装置。图5为本申请实施例提供的一种终端的结构示意图。终端500可以包括:存储器501,处理器502及存储在存储器501上并可在处理器502运行的计算机程序,所述处理器502执行所述计算机程序时实现如本申请实施例所述的块设备访问追踪方法。
本申请实施例提供的终端,可以基于实现在内核空间中的预设虚拟机,在内核空间中的与预设块设备访问事件对应的待调用函数之前插入预设程序代码,利用该预设程序代码获取并存储块设备访问信息,供用户空间读取,可以减少内核空间和用户空间的交互,降低块设备访问追踪对系统的负担,提高系统稳定性。
图6为本申请实施例提供的另一种终端的结构示意图,该终端可以包括:壳体(图中未示出)、存储器601、中央处理器(central processing unit,CPU)602(又称处理器,以下简称CPU)、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述CPU602和所述存储器601设置在所述电路板上;所述电源电路,用于为所述终端的各个电路或器件供电;所述存储器601,用于存储可执行预设程序代码;所述CPU602通过读取所述存储器601中存储的可执行预设程序代码来运行与所述可执行预设程序代码对应的计算机程序,以实现以下步骤:
预设块设备访问事件被触发时,判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码;
若存在,则通过所述预设程序代码获取所述待调用函数对应的块设备访问信息;
采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取。
所述终端还包括:外设接口603、RF(Radio Frequency,射频)电路605、音频电路606、扬声器611、电源管理芯片608、输入/输出(I/O)子系统609、其他输入/控制设备610、触摸屏612、其他输入/控制设备610以及外部端口604,这些部件通过一个或多个通信总线或信号线607来通信。
应该理解的是,图示终端600仅仅是终端的一个范例,并且终端600可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
下面就本实施例提供的用于块设备访问追踪的终端进行详细的描述,该终端以手机为例。
存储器601,所述存储器601可以被CPU602、外设接口603等访问,所述存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
外设接口603,所述外设接口603可以将设备的输入和输出外设连接到CPU602和存储器601。
I/O子系统609,所述I/O子系统609可以将设备上的输入输出外设,例如触摸屏612和其他输入/控制设备610,连接到外设接口603。I/O子系统609可以包括显示控制器6091和用于控制其他输入/控制设备610的一个或多个输入控制器6092。其中,一个或多个输入控制器6092从其他输入/控制设备610接收电信号或者向其他输入/控制设备610发送电信号,其他输入/控制设备610可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器6092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。
触摸屏612,所述触摸屏612是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。
I/O子系统609中的显示控制器6091从触摸屏612接收电信号或者向触摸屏612发送电信号。触摸屏612检测触摸屏上的接触,显示控制器6091将检测到的接触转换为与显示在触摸屏612上的用户界面对象的交互,即实现人机交互,显示在触摸屏612上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
RF电路605,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,RF电路605接收并发送RF信号,RF信号也称为电磁信号,RF电路605将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。RF电路605可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC(COder-DECoder,编译码器)芯片组、用户标识模块(Subscriber Identity Module,SIM)等等。
音频电路606,主要用于从外设接口603接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器611。
扬声器611,用于将手机通过RF电路605从无线网络接收的语音信号,还原为声音并向用户播放该声音。
电源管理芯片608,用于为CPU602、I/O子系统及外设接口所连接的硬件进行供电及电源管理。
上述实施例中提供的块设备访问追踪装置、存储介质及终端可执行本申请任意实施例所提供的块设备访问追踪方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的块设备访问追踪方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (12)
1.一种块设备访问追踪方法,其特征在于,包括:
预设块设备访问事件被触发时,判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码;
若存在,则通过所述预设程序代码获取所述待调用函数对应的块设备访问信息;
采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取。
2.根据权利要求1所述的方法,其特征在于,所述判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码,包括:
判断内核空间中的块设备层中,调用与所述预设块设备访问事件对应的待调用函数的起始位置处,是否存在基于预设虚拟机编写的预设程序代码。
3.根据权利要求1所述的方法,其特征在于,所述块设备访问信息包括所述预设块设备访问事件对应的数据传输过程结束时,传输数据量的大小和传输延迟。
4.根据权利要求3所述的方法,其特征在于,对于所述传输数据量的大小,所述通过所述预设程序代码获取所述待调用函数对应的块设备访问信息,包括:
通过所述预设程序代码获取所述待调用函数对应的函数参数内容和/或所述待调用函数对应的内核数据结构内容;
根据所述函数参数内容和/或所述内核数据结构内容确定所述待调用函数对应的传输数据量的大小。
5.根据权利要求3所述的方法,其特征在于,所述待调用函数包括块设备请求发起事件对应的第一待调用函数和块设备请求完成事件对应的第二待调用函数;
对于所述传输延迟,所述通过所述预设程序代码获取所述待调用函数对应的块设备访问信息,包括:
通过所述预设程序代码获取所述第一待调用函数被调用时的第一时刻,以及所述第二待调用函数被调用时的第二时刻;
根据所述第二时刻与所述第一时刻的差值确定对应的传输延迟。
6.根据权利要求1所述的方法,其特征在于,所述预设虚拟机包括扩展伯克利包过滤器eBPF,所述预设虚拟机对应的存储格式包括哈希表。
7.根据权利要求6所述的方法,其特征在于,所述采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,包括:
以所述预设块设备访问事件对应的进程标识和所述块设备访问信息作为哈希表的键值,将与所述键值相匹配的预设块设备访问事件发生的次数存储在与所述预设块设备访问事件对应的哈希表中。
8.根据权利要求6所述的方法,其特征在于,在所述采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储之前,还包括:
获取预设哈希表,其中,所述预设哈希表由所述用户空间传递至所述内核空间,所述预设哈希表中存储有过滤条件信息;
根据所述预设哈希表中的过滤条件信息对所述块设备访问信息进行过滤;
相应的,所述采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,包括:
采用所述预设虚拟机对应的存储格式对过滤后的块设备访问信息进行存储。
9.根据权利要求6-8任一所述的方法,其特征在于,在采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取之后,还包括:
在所述内核空间接收到所述用户空间的预设读取请求时,根据所述预设读取请求查询与所述预设块设备访问事件对应的哈希表,并将查询结果反馈给所述用户空间。
10.一种块设备访问追踪装置,其特征在于,包括:
判断模块,用于在预设块设备访问事件被触发时,判断内核空间中与所述预设块设备访问事件对应的待调用函数之前,是否存在基于预设虚拟机编写的预设程序代码;
访问信息获取模块,用于在所述判断模块的判断结果为存在时,通过所述预设程序代码获取所述待调用函数对应的块设备访问信息;
访问信息存储模块,用于采用所述预设虚拟机对应的存储格式对所述块设备访问信息进行存储,以供用户空间读取。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的块设备访问追踪方法。
12.一种终端,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-9任一所述的块设备访问追踪方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811125064.9A CN110955584B (zh) | 2018-09-26 | 2018-09-26 | 块设备访问追踪方法、装置、存储介质及终端 |
PCT/CN2019/093718 WO2020062985A1 (zh) | 2018-09-26 | 2019-06-28 | 块设备访问追踪方法以及装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811125064.9A CN110955584B (zh) | 2018-09-26 | 2018-09-26 | 块设备访问追踪方法、装置、存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955584A true CN110955584A (zh) | 2020-04-03 |
CN110955584B CN110955584B (zh) | 2021-06-15 |
Family
ID=69952830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811125064.9A Active CN110955584B (zh) | 2018-09-26 | 2018-09-26 | 块设备访问追踪方法、装置、存储介质及终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110955584B (zh) |
WO (1) | WO2020062985A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817597A (zh) * | 2021-01-12 | 2021-05-18 | 山东兆物网络技术股份有限公司 | 运行在用户空间的基于ebpf的软件容器实现方法 |
CN114390098A (zh) * | 2020-10-21 | 2022-04-22 | 北京金山云网络技术有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
CN114816279A (zh) * | 2022-06-30 | 2022-07-29 | 广东睿江云计算股份有限公司 | 基于ebpf实现虚拟机磁盘读写的控制方法及控制系统 |
CN115202990A (zh) * | 2022-09-09 | 2022-10-18 | 天津市天河计算机技术有限公司 | Io性能数据的采集方法、装置、设备及存储介质 |
CN116107764A (zh) * | 2023-04-03 | 2023-05-12 | 阿里云计算有限公司 | 数据处理方法及系统 |
CN116886445A (zh) * | 2023-09-05 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 过滤结果的处理方法及装置、存储介质、电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546287A (zh) * | 2008-03-26 | 2009-09-30 | 国际商业机器公司 | 代码修改方法和代码修改设备 |
CN102917005B (zh) * | 2012-08-28 | 2016-10-26 | 大唐软件技术股份有限公司 | 一种支持事务的海量存储访问方法及装置 |
CN104318152B (zh) * | 2014-09-28 | 2017-04-12 | 江苏科技大学 | 一种VxWorks系统驱动层块设备数据访问控制方法 |
US20160292462A1 (en) * | 2015-03-31 | 2016-10-06 | Symantec Corporation | Policy-driven device control in operating systems |
-
2018
- 2018-09-26 CN CN201811125064.9A patent/CN110955584B/zh active Active
-
2019
- 2019-06-28 WO PCT/CN2019/093718 patent/WO2020062985A1/zh active Application Filing
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390098A (zh) * | 2020-10-21 | 2022-04-22 | 北京金山云网络技术有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
CN112817597A (zh) * | 2021-01-12 | 2021-05-18 | 山东兆物网络技术股份有限公司 | 运行在用户空间的基于ebpf的软件容器实现方法 |
CN112817597B (zh) * | 2021-01-12 | 2024-03-15 | 山东兆物网络技术股份有限公司 | 运行在用户空间的基于ebpf的软件容器实现方法 |
CN114816279A (zh) * | 2022-06-30 | 2022-07-29 | 广东睿江云计算股份有限公司 | 基于ebpf实现虚拟机磁盘读写的控制方法及控制系统 |
CN114816279B (zh) * | 2022-06-30 | 2022-11-11 | 广东睿江云计算股份有限公司 | 基于ebpf实现虚拟机磁盘读写的控制方法及控制系统 |
CN115202990A (zh) * | 2022-09-09 | 2022-10-18 | 天津市天河计算机技术有限公司 | Io性能数据的采集方法、装置、设备及存储介质 |
CN116107764A (zh) * | 2023-04-03 | 2023-05-12 | 阿里云计算有限公司 | 数据处理方法及系统 |
CN116107764B (zh) * | 2023-04-03 | 2023-09-26 | 阿里云计算有限公司 | 数据处理方法及系统 |
CN116886445A (zh) * | 2023-09-05 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 过滤结果的处理方法及装置、存储介质、电子设备 |
CN116886445B (zh) * | 2023-09-05 | 2024-01-19 | 苏州浪潮智能科技有限公司 | 过滤结果的处理方法及装置、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110955584B (zh) | 2021-06-15 |
WO2020062985A1 (zh) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110955631B (zh) | 文件访问追踪方法、装置、存储介质及终端 | |
CN110955584B (zh) | 块设备访问追踪方法、装置、存储介质及终端 | |
US11397590B2 (en) | Method for preloading application, storage medium, and terminal | |
CN109960507B (zh) | 编译优化方法、装置、存储介质、智能终端及服务器 | |
US10555053B2 (en) | Video processing method and associated devices and communication system | |
CN107896243B (zh) | 网络数据加载的加速方法、装置、存储介质及移动终端 | |
CN108038231B (zh) | 日志处理方法、装置、终端设备及存储介质 | |
CN108153647B (zh) | 日志处理方法、装置、终端设备及存储介质 | |
CN110222288B (zh) | 页面展示方法、装置及存储介质 | |
CN110888821B (zh) | 一种内存管理方法及装置 | |
CN107872523B (zh) | 网络数据的加载方法、装置、存储介质及移动终端 | |
CN108156508B (zh) | 弹幕信息处理的方法、装置、移动终端、服务器及系统 | |
EP3584710B1 (en) | Method and apparatus for controlling display of mobile terminal, and storage medium | |
CN112148579B (zh) | 一种用户界面的测试方法和装置 | |
CN104869465A (zh) | 视频播放控制方法和装置 | |
CN108933968B (zh) | 一种消息格式的转换方法、装置、存储介质及安卓终端 | |
CN110046497B (zh) | 一种函数挂钩实现方法、装置和存储介质 | |
CN107577542B (zh) | 日志信息上报方法、装置、存储介质及移动终端 | |
CN108984374B (zh) | 一种数据库性能的测试方法和系统 | |
CN110955614B (zh) | 文件缓存的回收方法、装置、存储介质及终端 | |
CN110955486B (zh) | 文件缓存效率的追踪方法、装置、存储介质及终端 | |
CN106980447B (zh) | 一种信息处理方法、装置及终端 | |
CN108921530B (zh) | 信息判断方法、装置、存储介质及终端 | |
CN109107148B (zh) | 控制方法、装置、存储介质及移动终端 | |
CN107621999B (zh) | 日志信息上报方法、装置、存储介质及移动终端 |
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 |