响应时间的测量方法及装置、电子设备和存储介质与流程
未命名
09-21
阅读:95
评论:0

1.本公开涉及但不限于计算机技术领域,尤其涉及一种响应时间的测量方法及装置、电子设备和存储介质。
背景技术:
2.数据库,就是存放数据的仓库。按照存储方式,可以将数据库划分为关系型数据库与非关系型数据库。关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据。例如,mysql,由于具有小巧、功能齐全、查询迅捷等优点,在各行各业中得到了广泛应用。
3.相关技术中,通过mysql提供的慢查询日志(slowlog,简称慢日志)来捕获sql(structured query language,结构化查询语言)语句的处理时间,将该处理时间作为mysql的响应时间,忽略了网络延时,使得mysql的响应时间的准确度不高。同时,慢日志只能输出超过阈值的sql语句的处理时间,而无法捕获低于阈值的sql语句的处理时间,使得获取的响应时间不够完整,无法满足各个应用场景的需求。
技术实现要素:
4.本公开实施例至少提供一种响应时间的测量方法及装置、电子设备、存储介质和计算机程序产品。
5.本公开实施例的技术方案是这样实现的:
6.本公开实施例提供一种响应时间的测量方法,所述方法包括;
7.获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息;
8.基于所述第一地址信息,确定所述第一数据包的类型;
9.利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;
10.在所述第一数据包的类型为第一类型、且所述查询结果为存在所述第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。
11.本公开实施例提供一种响应时间的测量装置,所述装置包括:
12.获取模块,用于获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息;
13.第一确定模块,用于基于所述第一地址信息,确定所述第一数据包的类型;
14.第二确定模块,用于利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;
15.第三确定模块,用于在所述第一数据包的类型为第一类型、且所述查询结果为存
在所述第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。
16.本公开实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
17.本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。
18.本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法。
19.在本公开实施例中,通过获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息;基于所述第一地址信息,确定所述第一数据包的类型;利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;在所述第一数据包的类型为第一类型、且所述查询结果为存在第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。这样,通过两个数据包的时间信息得到数据库的响应时间,不仅提高了响应时间的准确度,而且可以得到对数据库的每一次操作的响应时间,提高了响应时间的完整性,从而可以满足各个应用场景的需求。
20.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
22.图1为本公开实施例提供的一种响应时间的测量方法的实现流程示意图;
23.图2为本公开实施例提供的一种响应时间的测量方法的实现流程示意图;
24.图3为本公开实施例提供的一种响应时间的测量方法的实现流程示意图;
25.图4为本公开实施例提供的一种响应时间的测量方法的实现流程示意图;
26.图5为本公开实施例提供的一种响应时间的测量装置的组成结构示意图;
27.图6为本公开实施例中电子设备的一种硬件实体示意图。
具体实施方式
28.为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
29.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
30.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代
表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
31.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。
32.本公开实施例提供的响应时间的测量方法可以由电子设备执行,其中电子设备可以是笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
33.下面,将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
34.图1为本公开实施例提供的一种响应时间的测量方法的实现流程示意图,如图1所示,该方法包括步骤s11至步骤s14,其中:
35.步骤s11、获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息。
36.这里,第一数据包为网络数据包。该网络数据包可以是udp数据包,也可以是tcp数据包。在一些实施方式中,该第一数据包是与数据库关联的数据包。在实施时,可以通过过滤工具,基于该数据库的标识、端口等,对抓取的至少一个数据包进行过滤,以得到该第一数据包。其中,过滤工具可以是任意能够实现过滤功能的工具。例如,常见的抓包软件(比如,wire shark、tcpdump等)、过滤函数(比如,pcap_compile、pcap_setfilter等)等。在实施时,本领域技术人员可以根据实际需求确定该过滤工具,本公开实施例对此不作限定。
37.第一地址信息用于表征该第一数据包的流动信息。在一些实施方式中,该第一地址信息包括源地址信息和目的地址信息,其中,源地址信息表征该第一数据包的来源方,目的地址信息表征该第一数据包的流向方。在实施时,该源地址信息可以是来源方的ip(internet protocol,国际互连协议)地址,目的地址信息可以是流向方的ip地址。
38.第一端口信息用于表征该第一数据包的流动通信端口。在一些实施方式中,该第一端口信息包括源端口信息和目的端口信息,其中,源端口信息表征该第一数据包的来源方的端口信息,目的端口信息表征该第一数据包的流向方的端口信息。
39.步骤s12、基于所述第一地址信息,确定所述第一数据包的类型。
40.这里,类型可以包括第一类型、第二类型等,其中,第一类型表征第一数据包为从电子设备流出的数据包,第二类型表征第一数据包为流进电子设备的数据包。在一些实施方式中,可以利用的比对算法,将第一地址信息和电子设备的地址信息进行比对,得到该第一数据包的类型。其中,比对算法可以是任意合适的能够进行比对的算法。例如,myer差分算法、rk(rabin-karp)算法、编辑距离算法、基于最长公共子串的算法等。在实施时,本领域技术人员可以根据实际需求自主确定比对算法,本公开实施例不作限定。
41.例如,利用该比对算法,将电子设备的地址信息与第一地址信息中的源地址信息进行比对,若比对结果为相同,则认为该数据包为第二类型。又例如,利用该比对算法,将电子设备的地址信息与第一地址信息中的目的地址信息进行比对,若比对结果为相同,则认为该数据包为第一类型。
42.在一些实施方式中,可以基于预设规则来设定比对算法。其中,预设规则可以包括但不限于电子设备的默认配置、用户自定义、用户喜好、使用频率、用户操作信息等。在实施时,本领域技术人员可以根据实际需求自主设定预设规则,本公开实施例不作限定。
43.例如,电子设备提供配置选项,通过该配置选项,用户可以自定义设置该比对算法。
44.又例如,该比对算法可以是基于用户操作的属性信息确定的,其中,该属性信息可以包括但不限于操作的类型、距离、速度、位置、时长、次数等。在实施时,本领域技术人员可以根据实际需求自主设定操作的属性信息和该比对算法之间的对应关系,本公开实施例不作限定。
45.在一些实施方式中,可以基于操作的类型确定比对算法。例如,在操作手势为滑动操作的情况下,从比对算法集合中随机选择一个比对算法作为该比对算法;在操作手势为多次点击操作的情况下,将比对算法集合中的第一个比对算法作为该比对算法。
46.在一些实施方式中,可以基于操作的距离实时确定比对算法,即,不同的距离对应不同的比对算法。例如,在滑动距离为第一距离区间的情况下,该比对算法为第一比对算法;在滑动距离为第二距离区间的情况下,该比对算法为第二比对算法;在滑动距离为第三距离区间的情况下,该比对算法为第三比对算法。其中,第一比对算法、第二比对算法及第三对比算法为不同的比对算法。
47.步骤s13、利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包。
48.这里,映射关系类似于目录,提供了使用键值快速查询和获取值的功能。该映射关系可以是任意能够实现映射关系的结构。例如,映射表(比如,hash表)、映射函数、映射树等。在实施时,本领域技术人员可以根据实际需求自主选择映射关系的方式,本公开实施例不作限定。
49.在实施时,可以预先建立每个第二数据包、第一地址信息及第一端口信息之间的映射关系,其中,每个第二数据包均为流入电子设备的数据库的数据包,并将该映射关系存储在电子设备、或其它电子设备中。在映射关系存储在电子设备的情况下,电子设备根据该第一地址信息和第一端口信息,在映射关系中确定与第一地址信息和第一端口信息均匹配的第二数据包。在对应关系存储在其它电子设备的情况下,电子设备将第一地址信息和第一端口信息发送给其它电子设备,使得其它电子设备根据该第一地址信息和第一端口信息,在映射关系中确定与第一地址信息和第一端口信息匹配的第二数据包,并将第二数据包返回至电子设备中。在实施时,本领域技术人员可以根据实际需求自主确定第一地址信息和第一端口信息、与第二数据包之间的对应关系,本公开实施例不作限定。
50.例如,根据第一数据包的源地址、源端口、目的地址、及目的端口,对该hash表进行查询,确定是否存在与源地址、源端口、目的地址、及目的端口均匹配的数据包,如果存在该
数据包,则将该数据包作为第二数据包。在实施时,在第一数据包的类型为第一类型的情况下,将第一数据包的源地址、源端口、目的地址、目标端口分别与hash表中的每一第二数据包的目的地址、目标端口、源地址、源端口进行比对,在比对结果为一致的情况下,表征该hash表中存在第二数据包,反之,则该hash表中不存在第二数据包。在第一数据包的类型为第二类型的情况下,将第一数据包的源地址、源端口、目的地址、目标端分别与hash表中的每一第二数据包的源地址、源端口、目的地址、目标端进行比对,在比对结果为一致的情况下,表征该hash表中存在第二数据包,反之,则该hash表中不存在第二数据包。
51.步骤s14、在所述第一数据包的类型为第一类型、且所述查询结果为存在所述第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。
52.这里,第一类型表征第一数据包为从电子设备流出的数据包。第二数据包中至少包括第二时间信息。第二时间信息表征该第二数据包流入电子设备的时间。
53.确定响应时间的方式可以包括但不限于第一时间信息与第二时间信息之间的差值/均方差、分别对于第一时间信息与第二时间信息进行加权之后的差值/均方差等。在实施时,本领域技术人员可以根据实际需求自主确定响应时间的方式,本公开实施例不作限定。
54.在一些实施方式中,可以通过下述公式(1-1)得到该响应时间:
55.t
res
=t
1-t2(1-1);
56.其中,t1为第一时间信息,t2为第二时间信息。
57.在一些实施方式中,所述步骤s14中的“基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间”包括步骤s141至步骤s142,其中:
58.步骤s141、确定所述第一数据包的第一时间信息和所述第二数据包的第二时间信息之间的差值。
59.这里,可以通过上述公式(1-1)得到该第一时间信息与第二时间信息之间的差值。
60.步骤s142、将所述差值作为所述响应时间。
61.在一些实施方式中,可以将响应时间存储至预设的存储库中。其中,存储库可以是电子设备、或其它电子设备的一个用于存储内容的库。这样,基于存储库中的响应时间,可以对数据库的性能、运行状态等进行判断。
62.在本公开实施例中,通过获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息;基于所述第一地址信息,确定所述第一数据包的类型;利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;在所述第一数据包的类型为第一类型、且所述查询结果为存在第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。这样,通过两个数据包的时间信息得到数据库的响应时间,不仅提高了响应时间的准确度,而且可以得到对数据库的每一次操作的响应时间,提高了响应时间的完整性,从而可以满足各个应用场景的需求。
63.在一些实施方式中,所述方法还包括步骤s15,其中:
64.步骤s15、在所述第一数据包的类型为第二类型的情况下,基于所述查询结果,将
所述第一数据包存储至所述映射关系中。
65.这里,第二类型表征第一数据包为流进电子设备的数据包。存储的方式可以包括但不限于新建、替换等。例如,在映射关系中已存在第二数据包的情况下,将第二数据包替换为第一数据包;在映射关系中不存在第二数据包的情况下,则将该第一数据包加入至映射关系中。
66.在一些实施方式中,所述步骤s15中的“基于所述查询结果,将所述第一数据包存储至所述映射关系中”,包括步骤s151和/或步骤s152,其中:
67.步骤s151、在所述查询结果为不存在所述第二数据包的情况下,按照预设的存储方式,将所述第一数据包存储至所述映射关系中。
68.这里,存储方式可以是预设设定的结构体、存储顺序、字段等。例如,该映射关系中的每个第二数据包的结构体可以为:包名、源地址、源端口、目的地址、目的端口、流入时间等。又例如,该映射关系可以为映射表,该映射表中的每一行数据中包括包名、源地址、源端口、目的地址、目的端口及流入时间这六个字段。
69.在一些实施方式中,该存储方式可以是基于预设规则得到的。其中,预设规则可以包括但不限于电子设备的默认配置、用户自定义、用户喜好、使用频率、用户操作信息等。在实施时,本领域技术人员可以根据实际需求自主设定预设规则,本公开实施例不作限定。例如,电子设备提供配置选项,通过该配置选项,用户可以自定义设置该存储方式。又例如,该存储方式可以是基于用户操作的属性信息确定的,其中,该属性信息可以包括但不限于操作的类型、距离、速度、位置、时长、次数等。在实施时,本领域技术人员可以根据实际需求自主设定操作的属性信息和该比对算法之间的对应关系,本公开实施例不作限定。
70.步骤s152、在所述查询结果为存在所述第二数据包的情况下,将所述第二数据包的所述第二时间信息更新为所述第一数据包的所述第一时间信息。
71.这里,将第二数据包中的时间信息更新为第一数据包的第一时间。
72.在本公开实施方式中,通过在所述第一数据包的类型为第二类型的情况下,基于所述查询结果,将所述第一数据包存储至所述映射关系中。这样,将流入数据库的每个数据包存储在映射关系中,便于后续响应时间的测量,可以提高响应时间的准确度及完整性。
73.在一些实施方式中,所述方法还包括步骤s16至步骤s17,其中:
74.步骤s16、从预设的存储库中获取至少一个响应时间。
75.这里,该存储库可以是任意能够实现数据存储功能的库。该存储库可以位于电子设备中,也可以位于其它电子设备中。在实施时,可以将每一次测量得到的响应时间存储在该存储库中。
76.至少一个响应时间可以包括但不限于所有的响应时间、预设时间段内的所有响应时间等。在实施时,本领域技术人员可以根据实际需求自主确定至少一个响应时间的方式,本公开实施例不作限定。例如,将某两个小时内的响应时间作为该至少一个响应时间。
77.步骤s17、基于每一所述响应时间,确定数据库的运行状态。
78.这里,确定运行状态的方式可以包括但不限于某一响应时间、每一响应时间之间的均值/中位数/95值/方差/均方差、对每一响应时间分别进行加权之后的均值/中位数/95值/方差/均方差等。在实施时,本领域技术人员可以根据实际需求自主选择确定运作状态的方式,本公开实施例不作限定。例如,对于网络质量较好的情况下,此时网络延时比较少,
那么可以基于某一响应时间,得到该运行状态。又例如,对于网络质量较差的情况下,此时网络延时较大,那么可以将一段时间内的响应时间的均值/中位数/95值等,得到该数据库的运行状态。
79.在本公开实施方式中,通过从预设的存储库中获取至少一个响应时间;基于每一所述响应时间,确定数据库的运行状态。这样,通过每一响应时间确定数据库的运行状态,不仅可以提高运行状态的准确度,而且可以满足各个应用场景的需求。
80.图2为本公开实施例提供的一种响应时间的测量方法的实现流程示意图,如图2所示,所述方法包括步骤s21至步骤s25,其中:
81.步骤s21、获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息。
82.这里,上述步骤s21对应于前述步骤s11,在实施时,可以参照前述步骤s11的具体实施方式。
83.步骤s22、获取目标地址信息。
84.这里,目标地址信息可以为电子设备的地址信息。例如,电子设备的ip地址。获取目标地址信息的方式可以包括但不限于用户指定、其它电子设备、函数等。在实施时,本领域技术人员可以根据实际需求自主确定获取目标地址信息的方式,本公开实施例不作限定。例如,电子设备提供配置页面,用户可以通过该配置页面指定ip地址,将该ip地址作为目标地址信息。又例如,电子设备将其它电子设备发送的ip地址作为该目标地址信息。
85.在一些实施方式中,所述步骤s22包括步骤s221至步骤s222,其中:
86.步骤s221、利用预设的第一接口函数,获取至少一个地址信息。
87.这里,第一接口函数可以是任意能够获取电子设备的地址信息的函数。例如,winpcap中的pcap_findalldevs函数、命令提示符(command,cmd)中的ipconfig等。在实施时,本领域技术人员可以根据实际需求自主选择第一接口函数,本公开实施例不作限定。
88.至少一个地址信息可以包括但不限于虚拟网络接口的地址信息、至少一个以太网接口的地址信息、网桥接口的地址信息、无线网络接口的地址信息等。
89.步骤s222、利用预设的选取方式,从所述至少一个地址信息中确定所述目标地址信息。
90.这里,选取方式可以包括但不限于基于名称、属性等至少一个地址信息进行过滤,或用户指定等。例如,在以太网接口的地址信息为至少两个的情况下,可以让用户指定其中一个地址信息作为该目标地址信息。
91.步骤s23、基于所述目标地址信息和所述第一地址信息,确定所述第一数据包的类型。
92.这里,第一地址信息包括源地址信息和目的地址信息。在实施时,可以利用预设的比对算法,将源地址信息和目的地址信息分别与目标地址信息进行比对,从而得到该第一数据包的类型。其中,比对算法可以是任意合适的能够进行比对的算法。例如,myer差分算法、rk(rabin-karp)算法、编辑距离算法、基于最长公共子串的算法等。在实施时,本领域技术人员可以根据实际需求自主确定比对算法,本公开实施例不作限定。
93.类型可以包括第一类型、第二类型等,其中,第一类型表征第一数据包为从电子设备流出的数据包,第二类型表征第一数据包为流进电子设备的数据包。例如,若目标地址信
息与源地址信息一致,则表明该第一数据包为流出电子设备的数据包;若目标地址信息与目的地址信息一致,则表明该第一数据包为流入电子设备的数据包。
94.在一些实施方式中,所述第一地址信息包括源地址信息和目的地址信息;所述步骤s23包括步骤s231和/或步骤s232,其中:
95.步骤s231、在所述源地址信息和所述目标地址信息匹配的情况下,确定所述第一数据包的类型为所述第一类型。
96.步骤s232、在所述目的地址信息和所述目标地址信息匹配的情况下,确定所述第一数据包括的类型为第二类型。
97.步骤s24、利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包。
98.步骤s25、在所述第一数据包的类型为第一类型、且所述查询结果为存在所述第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。
99.这里,上述步骤s24至步骤s25分别对应于前述步骤s13至步骤s14,在实施时,可以参照前述步骤s13至步骤s14的具体实施方式。
100.在本公开实施例中,通过获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息;获取目标地址信息;基于所述目标地址信息和所述第一地址信息,确定所述第一数据包的类型;利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;在所述第一数据包的类型为第一类型、且所述查询结果为存在第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。这样,通过将第一地址信息与目标地址信息进行比对来确定第一数据包的类型,可以提高该数据包的类型的准确度,从而可以提高响应时间的准确度及完整性。
101.图3为本公开实施例提供的一种响应时间的测量方法的实现流程示意图,如图3所示,所述方法包括步骤s31至步骤s35,其中:
102.步骤s31、获取数据库的第二端口信息。
103.这里,该第二端口信息可以是数据库的默认的通信端口,也可以是自定义的通信端口。例如,对于mysql数据库,该第二端口可以为默认的通信端口3306。
104.获取第二端口的方式可以包括但不限于用户指定、其它电子设备发送、使用默认值、从数据库读取等。在实施时,本领域技术人员可以根据实际需求自主选择获取第二端口的方式,本公开实施例不作限定。
105.步骤s32、利用预设的第二接口函数,基于所述第二端口信息,从抓取的至少一个数据包中确定第一数据包,所述第一数据包中包括第一地址信息和第一端口信息。
106.这里,第二接口函数可以是任意能够实现过滤功能的函数。例如,pcap_compile函数与pcap_setfilter函数,其中,pcap_complie函数使用一个包含高级布尔表达式的字符串并且产生一个能被过滤引擎集成到数据包驱动中的低级字节码,pcap_setfilter函数把一个过滤器与核心驱动抓包会话关联起来。在pcap_setfilter函数被调用,相关的过滤器
将被作用到所有的网络的数据包上。在实施时,本领域技术人员可以根据实际需求自主设定第二接口函数,本公开实施例不作限定。
107.利用该第二接口函数对所有的数据包进行过滤,以得到仅流经第二端口的数据包,将流经第二端口的数据包分别作为第一数据包。
108.步骤s33、基于所述第一地址信息,确定所述第一数据包的类型。
109.步骤s34、利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包。
110.步骤s35、在所述第一数据包的类型为第一类型、且所述查询结果为存在所述第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。
111.这里,上述步骤s33至步骤s35分别对应于前述步骤s12至步骤s14,在实施时,可以参照前述步骤s12至步骤s14的具体实施方式。
112.在本公开实施例中,通过获取数据库的第二端口信息;利用预设的第二接口函数,基于所述第二端口信息,从抓取的至少一个数据包中确定第一数据包,所述第一数据包中包括第一地址信息和第一端口信息;基于所述第一地址信息,确定所述第一数据包的类型;利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;在所述第一数据包的类型为第一类型、且所述查询结果为存在第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。这样,通过第二接口函数和第二端口,从至少一个数据包中确定第一数据包,可以提高第一数据包的准确性,从而可以提高响应时间的准确度及完整性。
113.下面说明本公开实施例提供的响应时间的测量方法在实际场景中的应用,以mysql数据库进行说明。
114.相关技术中,mysql数据库提供了慢日志,通过开启mysql慢日志,设置慢sql语句的阈值,便能够捕获到超过阈值的sql语句。该慢日志在捕获到sql语句的同时,会详细记录sql语句的具体信息,该具体信息包括该sql语句的执行时间,并将该执行时间作为mysql数据库对该条sql语句的响应时间。这样,一方面,通过该慢日志,仅能获得执行时间,并不能得到网络延时,使得该响应时间的准确度不高;另一方面,该慢日志仅能输出超过阈值的sql语句的执行时间,无法输出低于阈值的sql语句的执行时间,若将该阈值设置的过低,会大量消耗mysql数据库的性能,若不调低该阈值,则使得该响应时间不够完整,从而无法适应于高标准、高精确度的生产环境等场景的需求。
115.本公开实施例提供一种响应时间的测量方法,通过两个数据包的时间信息得到数据库的响应时间,不仅提高了响应时间的准确度,而且可以得到对数据库的每一次操作的响应时间,提高了响应时间的完整性,从而可以满足各个应用场景的需求。
116.图4为本公开实施例提供的一种响应时间的测量方法的实现流程示意图,如图4所述,该方法包括步骤s401至步骤s410,其中:
117.步骤s401、获取电子设备的目标ip(对应前述的目标地址信息);
118.这里,可以通过pcap_findalldevs函数获得所有网卡信息,并对所有网卡信息进
行过滤,以得到该目标地址信息。也可以由用户指定一个地址作为该目标地址。
119.步骤s402、利用抓包工具,基于mysql数据库的端口,从抓取的至少一个数据包中得到至少一个第一数据包;
120.这里,第一数据包中包括源地址、源端口、目的地址、目的端口及流入时间。在实施时,可以使用pcap_compile函数和pcap_setfilter函数进行数据包的过滤,将mysql数据库的端口的tcp网络包都给过滤出来,其他的数据包都忽略。
121.步骤s403、将目标ip分别与每一第一数据包的源ip(对应于前述源地址信息)、目的ip(对应于前述目的地址信息)进行比较,得到每一第一数据包的类型;
122.这里,将目标ip分别与源ip、目的ip进行比对,以得到该第一数据包是流出的数据包还是流入的数据包。
123.步骤s404、针对每一第一数据包,判断第一数据包的类型是否为流出的数据包(对应于前述第一类型),是,进入步骤s405,否,则进入步骤s407;
124.步骤s405、利用第一数据包中的地址信息和端口信息,从hash表(对应于前述映射关系)中查找与地址信息和端口信息均匹配的第二数据包;
125.这里,地址信息包括源ip和目的ip,端口信息包括源端口和目的端口。由于是流出的数据包,那么hash表中会记录一个流入的数据包,因此根据该第一数据包的源ip、源端口、目的ip及目的端口对hash表进行查询,获得之前流入的数据包信息。
126.步骤s406、将第一数据包中的时间与第二数据包之间的差值,作为该响应时间,并将该响应时间存储至预设的存储库中;
127.步骤s407、利用第一数据包中的地址信息和端口信息,对该hash表进行查询,得到查询结果;
128.这里,如果数据包是流入的数据包,则根据该数据包的信息(源ip、源端口、目的ip、目的端口等)对hash表进行查询,如果hash表中没有匹配的数据包,则在hash表中新创建一个该数据包的信息,同时记录该数据包的流入时间,如果该hash表已经存在该数据包,则更新这个数据包的流入时间。
129.步骤s408、判断查询结果是否为存在第三数据包(对应于前述第二数据包),若存在,则进入步骤s409,反之则进入步骤s410;
130.步骤s409、将第三数据包的时间信息更新为第一数据包的时间信息;
131.步骤s410、按照预设的存储方式,将第一数据包存储至hash表中。
132.在本公开实施例中,首先,在第一数据包的类型为流出的情况下,通过两个数据包的时间信息得到数据库的响应时间,不仅提高了响应时间的准确度,而且可以得到对数据库的每一次操作的响应时间,提高了响应时间的完整性,从而可以满足各个应用场景的需求;其次,在第一数据包的类型为流入的情况下,将该数据包存储在映射关系中,便于后续响应时间的测量,可以进一步提高响应时间的准确度及完整性;再次,将每一响应时间进行存储,可以便于后续对数据库的性能、运行状态等进行判断,不仅可以提高判断结果的准确度,而且可以满足不同应用场景的需求。
133.基于上述实施例,本公开实施例提供一种响应时间的测量装置,图5为本公开实施例提供的一种响应时间的测量装置的组成结构示意图,如图5所示,所述装置50包括获取模块51、第一确定模块52、第二确定模块53及第三确定模块54,其中:
134.所述获取模块51,用于获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息;
135.所述第一确定模块52,用于基于所述第一地址信息,确定所述第一数据包的类型;
136.所述第二确定模块53,用于利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;
137.所述第三确定模块54,用于在所述第一数据包的类型为第一类型、且所述查询结果为存在所述第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。
138.在一些实施方式中,所述第三确定模块54,还用于:确定所述第一数据包的第一时间信息和所述第二数据包的第二时间信息之间的差值;将所述差值作为所述响应时间。
139.在一些实施方式中,所述装置还包括第四确定模块,所述第四确定模块,用于在所述第一数据包的类型为第二类型的情况下,基于所述查询结果,将所述第一数据包存储至所述映射关系中。
140.在一些实施方式中,所述第四确定模块,还用于以下至少之一:在所述查询结果为不存在所述第二数据包的情况下,按照预设的存储方式,将所述第一数据包存储至所述映射关系中;在所述查询结果为存在所述第二数据包的情况下,将所述第二数据包的所述第二时间信息更新为所述第一数据包的所述第一时间信息。
141.在一些实施方式中,所述第一确定模块52,还用于:获取目标地址信息;基于所述目标地址信息和所述第一地址信息,确定所述第一数据包的类型。
142.在一些实施方式中,所述第一地址信息包括源地址信息和目的地址信息;所述第一确定模块52,还用于以下至少之一:在所述源地址信息和所述目标地址信息匹配的情况下,确定所述第一数据包的类型为所述第一类型;在所述目的地址信息和所述目标地址信息匹配的情况下,确定所述第一数据包括的类型为第二类型。
143.在一些实施方式中,所述第一确定模块52,还用于:利用预设的第一接口函数,获取至少一个地址信息;利用预设的选取方式,从至少一个地址信息中确定所述目标地址信息。
144.在一些实施方式中,所述获取模块,还用于:获取数据库的第二端口信息;利用预设的第二接口函数,基于所述第二端口信息,从抓取的至少一个数据包中确定所述第一数据包。
145.在一些实施方式中,所述装置还包括第五确定模块,所述第五确定模块,用于:从预设的存储库中获取至少一个响应时间;基于每一所述响应时间,确定数据库的运行状态。
146.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
147.需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备
(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件和软件结合。
148.本公开实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
149.本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
150.本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
151.需要说明的是,图6为本公开实施例中电子设备的一种硬件实体示意图,如图6所示,该电子设备600的硬件实体包括:处理器601、通信接口602和存储器503,其中:
152.处理器601通常控制电子设备600的总体操作。
153.通信接口602可以使电子设备通过网络与其他终端或服务器通信。
154.存储器603配置为存储由处理器601可执行的指令和应用,还可以缓存待处理器601以及电子设备600中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。处理器601、通信接口602和存储器603之间可以通过总线604进行数据传输。
155.这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开存储介质和设备实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
156.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
157.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
158.在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
159.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
160.另外,在本公开实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
161.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
162.或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
163.以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。
技术特征:
1.一种响应时间的测量方法,其特征在于,所述方法包括:获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息;基于所述第一地址信息,确定所述第一数据包的类型;利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;在所述第一数据包的类型为第一类型、且所述查询结果为存在所述第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间,包括:确定所述第一数据包的第一时间信息和所述第二数据包的第二时间信息之间的差值;将所述差值作为所述响应时间。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在所述第一数据包的类型为第二类型的情况下,基于所述查询结果,将所述第一数据包存储至所述映射关系中。4.根据权利要求3所述的方法,其特征在于,所述基于所述查询结果,将所述第一数据包存储至所述映射关系中,包括以下至少之一:在所述查询结果为不存在所述第二数据包的情况下,按照预设的存储方式,将所述第一数据包存储至所述映射关系中;在所述查询结果为存在所述第二数据包的情况下,将所述第二数据包的所述第二时间信息更新为所述第一数据包的所述第一时间信息。5.根据权利要求1或2所述的方法,其特征在于,所述基于所述第一地址信息,确定所述第一数据包的类型,包括:获取目标地址信息;基于所述目标地址信息和所述第一地址信息,确定所述第一数据包的类型。6.根据权利要求5所述的方法,其特征在于,所述第一地址信息包括源地址信息和目的地址信息;所述基于所述目标地址信息和所述第一地址信息,确定所述第一数据包的类型,包括以下至少之一:在所述源地址信息和所述目标地址信息匹配的情况下,确定所述第一数据包的类型为所述第一类型;在所述目的地址信息和所述目标地址信息匹配的情况下,确定所述第一数据包括的类型为第二类型。7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:从预设的存储库中获取至少一个响应时间;基于每一所述响应时间,确定数据库的运行状态。8.一种响应时间的测量装置,其特征在于,所述装置包括:获取模块,用于获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信
息;第一确定模块,用于基于所述第一地址信息,确定所述第一数据包的类型;第二确定模块,用于利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;第三确定模块,用于在所述第一数据包的类型为第一类型、且所述查询结果为存在所述第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。9.一种电子设备,包括处理器和存储器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法。10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至7任一项所述方法。
技术总结
本公开实施例公开了一种响应时间的测量方法及装置、电子设备和存储介质,所述方法包括:获取第一数据包,所述第一数据包中包括第一地址信息和第一端口信息;基于所述第一地址信息,确定所述第一数据包的类型;利用所述第一地址信息和所述第一端口信息,对预设的映射关系进行查询,得到查询结果,所述查询结果表征所述映射关系中是否存在与所述第一地址信息和所述第一端口信息均匹配的第二数据包;在所述第一数据包的类型为第一类型、且所述查询结果为存在所述第二数据包情况下,基于所述第一数据包的第一时间信息与所述第二数据包的第二时间信息,确定所述响应时间。确定所述响应时间。确定所述响应时间。
技术研发人员:王云鹤 李楠
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.11.14
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种CP垫筛检装置的制作方法 下一篇:一种新型跷跷板式升降挡板装置的制作方法