CN112732560B - 文件描述符泄露风险的检测方法及装置 - Google Patents
文件描述符泄露风险的检测方法及装置 Download PDFInfo
- Publication number
- CN112732560B CN112732560B CN202011617802.9A CN202011617802A CN112732560B CN 112732560 B CN112732560 B CN 112732560B CN 202011617802 A CN202011617802 A CN 202011617802A CN 112732560 B CN112732560 B CN 112732560B
- Authority
- CN
- China
- Prior art keywords
- socket
- file descriptor
- risk
- leakage
- time point
- 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 47
- 238000001514 detection method Methods 0.000 claims abstract description 55
- 230000005540 biological transmission Effects 0.000 claims abstract description 19
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 6
- 230000004622 sleep time Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种文件描述符泄漏风险的检测方法及装置、电子设备、存储介质,该方法可以包括:获取任一socket的当前连接状态,以及所述任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长;根据预先建立的时长阈值与socket的各个连接状态之间的对应关系,确定所述当前连接状态对应的目标时长阈值;在风险匹配条件被满足的情况下,确定所述任一socket对应的文件描述符存在泄露风险;其中,所述风险匹配条件包括:所述任一socket的第一间隔时长大于目标时长阈值。通过本申请的技术方案,可以自动确定文件描述符是否存在泄漏风险,提高文件描述符泄露风险检测的准确性和及时性。
Description
技术领域
本申请涉及网络通信技术领域,特别是文件描述符泄露风险的检测方法及装置。
背景技术
在Linux操作系统中,所有一切均被抽象成了文件,内核利用文件描述符来访问文件,应用程序每次打开或者创建一个文件,内核都会返回一个非负整数作为与该文件相对应的文件描述符,使得在读写文件时可以根据内核返回的文件描述符来指定待读写的文件。然而,文件描述符的数量是有限的,系统中可使用的文件描述符个数与系统内存大小相关,受硬件性能影响。因此,在文件调用结束后需要关闭其对应的文件描述符,使该文件描述符对应的数字被系统回收,并且在下一次打开或创建文件时被重新利用。若在文件调用结束后没有及时关闭其对应的文件描述符,则会导致文件描述符泄露,造成文件描述符不够用的情况,使得应用程序无法打开或者创建新的文件,影响系统的运行甚至会造成系统崩溃。
在相关技术中,需要人工读取文件描述符的数量,利用netstat–antp命令查看当前正在被使用中的文件描述符信息,当发现被使用的文件描述符数量一直在增加或者被使用的文件描述符数量远大于业务所需文件描述符数量时,认为该系统中的文件描述符可能存在泄露。这种检测方法需要人工对文件描述符数量进行观测,工作效率较低,并且单纯从数量这一个维度来对文件描述符的泄露情况进行评测,容易产生较大误差。
发明内容
有鉴于此,本申请提供文件描述符泄露风险的检测方法、装置,用以自动检测服务器的文件描述符是否存在泄露风险。
具体的,本申请通过如下技术方案实现:
根据本申请的第一方面,提出了一种文件描述符泄露风险的检测方法,包括:
获取任一socket的当前连接状态,以及所述任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长;
根据预先建立的时长阈值与socket的各个连接状态之间的对应关系,确定所述当前连接状态对应的目标时长阈值;
在风险匹配条件被满足的情况下,确定所述任一socket对应的文件描述符存在泄露风险;其中,所述风险匹配条件包括:所述任一socket的第一间隔时长大于目标时长阈值。
根据本申请的第二方面,提出了一种文件描述符泄露风险的检测装置,包括:
第一获取单元,用于获取任一socket的当前连接状态,以及所述任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长;
第一确定单元,用于根据预先建立的时长阈值与socket的各个连接状态之间的对应关系,确定所述当前连接状态对应的目标时长阈值;
第二确定单元,用于在风险匹配条件被满足的情况下,确定所述任一socket对应的文件描述符存在泄露风险;其中,所述风险匹配条件包括:所述任一socket的第一间隔时长大于目标时长阈值。
根据本申请的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述第一方面的实施例中所述的方法。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述第一方面的实施例中所述方法的步骤。
由以上本申请提供的技术方案可见,本申请通过获取socket的连接状态与其最后一次传输数据的时间点与当前时间点的时长间隔,将socket传输数据的空闲时长与预设时长阈值进行比较,可以自动确定文件描述符是否存在泄漏风险,提高文件描述符泄露风险检测的准确性和及时性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据本申请一示例性实施例示出的一种文件描述符泄露风险的检测方法的流程图;
图2是应用本申请实施例的文件描述符泄露风险的TCP连接状态转化过程示意图;
图3是根据本申请一示例性实施例示出的一种文件描述符泄露风险的检测方法的流程图;
图4是根据本申请一示例性实施例示出的一种文件描述符泄露风险的检测电子设备示意图;
图5是根据本申请一示例性实施例示出的一种文件描述符泄露风险的检测装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本申请实施例进行详细说明。
图1为根据本申请一示例性实施例示出的一种文件描述符泄露风险的检测方法的流程图。
需要说明的是,本申请中文件描述符泄漏风险检测方法可以周期性执行,并且在每个周期内执行的文件描述符泄漏风险检测的流程均相同,因此,这里仅以在一个周期中执行的文件描述符泄漏风险检测流程进行详细的说明。
如图1所示,该文件描述符泄露风险的检测流程可以包括如下步骤:
步骤102:获取任一socket的当前连接状态,以及所述任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长。
在一实施例中,分别获取所述任一socket的最后一次接收数据时间点与当前时间点之间的第二间隔时长、所述任一socket的最后一次发送数据时间点与当前时间点之间的第三间隔时长;将所述第二间隔时长与第三间隔时长中的较小者确定为所述第一间隔时长。其中,socket(套接字)用于描述IP地址和端口,应用程序可以通过socket向网络发送请求或者应答网络请求。其中,socket的当前连接状态、最后一次接收数据时间点与当前时间点之间的第二间隔时长以及最后一次发送数据时间点与当前时间点之间的第三间隔时长可以通过tcp_diag接口获取TCP内部状态的详细信息得到,本申请对此不做限制。通过比较最后一次发送数据的时间与最后一次接受数据的时间点与当前时间点间的间隔时长,方便确定出最后一次传输数据时间点与当前时间点之间的间隔时长,可以提高检测效率与准确性。
在一实施例中,所述任一socket为非listen状态下的socket。在基于TCP的通信过程中,TCP连接具有listen、SYN_rcvd、SYN_sent、established、fin_wait1、fin_wait2、closing、time_wait、close_wait、last_ack、closed这11种状态。其中listen状态用于表示服务器端的某个socket处于监听状态可以接受客户端的连接。通过限制获取的socket状态,一定程度上可以减少需要检测的目标socket数量,提高检测效率,减小程序负载。
步骤104:根据预先建立的时长阈值与socket的各个连接状态之间的对应关系,确定所述当前连接状态对应的目标时长阈值。
在一实施例中,预先建立有时长阈值与socket各个连接状态之间的对应关系,不同的socket对应有不同的时长阈值。其中所述时长阈值可以人工根据历史经验设置,本申请对此不做限制。通过针对不同连接状态的socket确定其对应的目标时长阈值,可以减小判断误差提高检测的准确性。
步骤106:在风险匹配条件被满足的情况下,确定所述任一socket对应的文件描述符存在泄露风险;其中,所述风险匹配条件包括:所述任一socket的第一间隔时长大于目标时长阈值。
在一实施例中,所述风险匹配条件还包括:所述当前连接状态为非listen状态。其中,所述非listen状态可以包括:close_wait状态或者established状态。其中,closed_wait状态用于表示正在等待关闭TCP连接,established状态用于表示TCP连接已成功建立。在一般情况下,文件描述符泄露时的socket的连接状态主要有两种,一种由于因为程序处理问题导致没有关闭网络连接,程序始终处于close_wait状态,另一种是由于客户端在关机前未发送TCP fin报文或者因为网络原因丢包客户端在结束进程后未进行四次挥手断开TCP连接,程序始终处于established状态。通过筛选出close_wait状态和established状态下的socket,可以减少需要判别的socket数量提高检测效率,并且有针对性的对文件描述符泄露时socket的普遍连接状态进行检测可以提高检测准确性。
在一实施例中,当所述任一socket对应的文件描述符存在泄露风险时,获取所述任一socket对应的文件描述符信息;根据所述文件描述符信息生成报错消息,并向预设对象输出所述报错消息。其中,所述文件描述符信息可以包括连接源IP、源端口、目的IP、目的端口、进程ID及进程名称、TCP协议状态、第二间隔时长、第三间隔时长等,可以通过netstat-antp命令查看,本申请对此不做限制。其中,向预设对象输出所述报错消息的方式可以是通过短信、微信、邮件、syslog等方式将报错消息发送给用户,本申请对此不作限制。通过在存在文件描述符泄漏风险时向用户发出报错消息,方便用户查找并解决问题,提前消除隐患。
在一实施例中,获取待检测服务器的当前文件描述符泄露情况;根据预先建立的检测频率与文件描述符泄露情况的对应关系确定目标检测频率,以使所述服务器检测文件描述符泄露时的CPU占用率不超过预设CPU占用率。通过根据文件描述符泄露情况更新检测频率,可以提高检测的灵活性。
在一实施例中,当所述服务器存在文件描述符泄露风险时,所述目标检测频率为相对更小的第一检测频率;当所述服务器不存在文件描述符泄露风险时,所述目标检测频率为相对更大的第二检测频率。其中,第一检测频率、第二检测频率可以由用户自定义设置,本申请对此不做限制。通过当存在文件描述符泄露风险时减小检测频率,当不存在文件描述符泄露风险时增大检测频率,可以防止在检测文件描述符泄露风险时服务器的CPU占用率过高,影响服务器的正常运行。
由以上本申请提供的技术方案可见,本申请通过对特定连接状态下的socket的最后一次传输数据与当前时间点的第一间隔时长与其对应的预设时长阈值进行对比,判断TCP连接是否已经超过阈值时长没有发生过数据传输,可以在不需要人工观测的情况下自动确认文件描述符的是否存在泄露风险,提高检测的效率和准确性。
图2所示为TCP连接的状态转化过程示意图。如图2所示,该文件描述符泄露风险的检测系统可以检测客户端21和服务器22之间TCP连接的文件描述符泄露。在初始时刻,客户端21处于closed状态,表示TCP连接未打开,服务器22处于listen状态,表示可以接受客户端的连接,客户端21向服务器22发送请求连接的SYN报文后转为SYN_sent状态,当服务器22接收到SYN报文并向客户端21发送SYN+ACK报文时,服务器22转为SYN_rcvd状态,并在接收到客户端21返回的ACK报文后,客户端21与服务器22转为established状态表示TCP连接建立成功。当客户端21想要断开连接时,向服务器22发送FIN报文,由established状态转为FIN-wait1状态,服务器22接收到FIN报文后向客户端21发送ACK报文,由established状态转为close-wait,客户端21在接收到服务器22返回的ACK报文后转为FIN-wait2状态。服务器22向客户端21发送FIN报文后转为last-ACK状态并在接收到客户端21返回的ACK报文后转为closing状态,客户端21在接收到服务器22发送的FIN报文并返回ACK报文后转为time_wait状态,等待2*MSL(Max Segment Lifetime,最大分段生存期)后转为closed状态。
而在本申请的技术方案中,通过针队不同连接状态的socket对其最后一次传输数据时间点与当前时间点的间隔时长与预设时长阈值进行比较,可以实现对文件描述符泄漏风险的自动检测,下面结合图3进行详细说明。其中,图3根据本申请一示例性实施例示出的一种文件描述符泄漏风险的检测方法的流程图。如图3所示,客户端21与服务器22之间TCP连接的文件描述符泄露风险接触过程包括以下步骤:
步骤301,获取TCP的socket信息。
根据tcp_diag分析统计模块获取Linux内核中的详细信息得到TCP中各条socket信息。其中,所述socket信息可以包括:所述任一socket的当前连接状态、所述任一socket的最后一次接收数据时间点与当前时间点之间的第二间隔时长以及所述任一socket的最后一次发送数据时间点与当前时间点之间的第三间隔时长。
举例而言,获取得到的任一socket的最后一次接收数据时间点与当前时间点之间的第二间隔时长为100s,最后一次发送数据时间点与当前时间点之间的第三间隔时长为200s,所述socket的连接状态为close_wait状态。
步骤302,确定所述socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长。
举例而言,当获取到的第二间隔时长100s小于获取到的第三间隔时长200s,可以将该socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长确定为100s。
步骤303,根据预先建立的时长阈值与socket的各个连接状态之间的对应关系,确定所述当前连接状态对应的目标时长阈值。
预先设置有时长阈值与socket的不同连接状态之间的对应关系,根据获取到的socket当前连接状态确定对应的目标时长阈值。
举例而言,预先设置有close_wait状态对应的时长阈值为90s,established状态对应的时长阈值为120s,当获取到的socket当前连接状态为close_wait状态时,确定其对应的目标时长阈值为90s。
步骤304,确定是否存在文件描述符泄露风险。
将获取到的socket的第一间隔时长与目标时长阈值进行比较,若第一间隔时长大于目标时长阈值,则存在文件描述符泄漏风险;若第一间隔时长小于目标时长阈值,则不存在文件描述符泄漏风险。
举例而言,获取到的socket的第一间隔时长为100s,大于其对应的目标时长阈值90s,确定该socket对应的文件描述符存在泄露风险。
步骤305,根据文件描述符信息生成报错消息,并向预设对象输出所述报错消息。
当确定socket对应的文件描述符泄露时,可以通过netstat–antp命令获取该文件描述符的信息,其中,所述文件描述符信息包含以下至少之一:进程信息、源IP及源端口、目的IP及目的端口、第二间隔时长、第三间隔时长、检测的当前时间点。根据获取到的文件描述符信息生成对应的报错消息向用户进行告警。
举例而言,获取socket的文件描述符的源IP及源端口为127.0.0.1:3306,进程信息为13385/mysqld,将获取到的文件描述符信息通过短信方式发送至用户设备,提醒用户在13385/mysqld进程中存在文件描述符泄露风险。
步骤306,判断是否检测完全。
在文件描述符泄露过程中可以遍历获取到的socket信息列表,判断是否已经对所有socket完成检测,若含有未检测的socket,重复步骤302至步骤306中的内容。
步骤308,根据文件描述符泄漏情况确定检测频率。
在文件描述符泄露风险检测周期性执行过程中,每次检测结束后程序陷入睡眠状态,经过预设睡眠时长后被重新唤醒进行再次检测。每次检测结束后的睡眠时长可以根据当前的文件描述符泄露情况进行确定。当所述服务器存在文件描述符泄露风险时,所述目标检测频率为相对更小的第一检测频率;当所述服务器不存在文件描述符泄露风险时,所述目标检测频率为相对更大的第二检测频率。
举例而言,当不存在文件描述符泄露风险时,睡眠时长被设置为60s,程序每隔60s进行一次文件描述符泄露风险检测;当存在文件描述符泄露风险时,将睡眠时长提高为90s,程序每隔90s进行一次文件描述符泄露风险检测。
与上述方法实施例相对应,本说明书还提供了一种装置的实施例。
图4是根据本申请一示例性实施例示出的一种文件描述符泄露风险的检测电子设备的结构示意图。参考图4,在硬件层面,该电子设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行,在逻辑层面上形成解决检测文件描述符泄露风险的装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图5是根据本申请一示例性实施例示出的一种文件描述符泄露风险的检测装置的框图。参照图5,该装置包括第一获取单元502、第一确定单元504和第二确定单元506,其中:
第一获取单元502被配置为获取任一socket的当前连接状态,以及所述任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长。
第一确定单元504被配置为根据预先建立的时长阈值与socket的各个连接状态之间的对应关系,确定所述当前连接状态对应的目标时长阈值。
第二确定单元506被配置为在风险匹配条件被满足的情况下,确定所述任一socket对应的文件描述符存在泄露风险;其中,所述风险匹配条件包括:所述任一socket的第一间隔时长大于目标时长阈值。
可选的,所述风险匹配条件还包括:所述当前连接状态为非listen状态。
可选的,所述非listen状态包括:close_wait状态或者established状态。
可选的,所述获取任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长,包括:分别获取所述任一socket的最后一次接收数据时间点与当前时间点之间的第二间隔时长、所述任一socket的最后一次发送数据时间点与当前时间点之间的第三间隔时长;将所述第二间隔时长与第三间隔时长中的较小者确定为所述第一间隔时长。
可选的,上述装置还包括:
第二获取单元508被配置为当所述任一socket对应的文件描述符存在泄露风险时,获取所述任一socket对应的文件描述符信息;
报错单元510被配置为根据所述文件描述符信息生成报错消息,并向预设对象输出所述报错消息。
可选的,上述装置还包括:
第三获取单元512被配置为获取待检测服务器的当前文件描述符泄露情况;
第三确定单元514被配置为根据预先建立的检测频率与文件描述符泄露情况的对应关系确定目标检测频率,以使所述服务器检测文件描述符泄露时的CPU占用率不超过预设CPU占用率。
可选的,当所述服务器存在文件描述符泄露风险时,所述目标检测频率为相对更小的第一检测频率;当所述服务器不存在文件描述符泄露风险时,所述目标检测频率为相对更大的第二检测频率。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由文件描述符泄露风险的检测装置的处理器执行以实现如上述实施例中任一所述的方法,比如该方法可以包括:
获取任一socket的当前连接状态,以及所述任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长;根据预先建立的时长阈值与socket的各个连接状态之间的对应关系,确定所述当前连接状态对应的目标时长阈值;在风险匹配条件被满足的情况下,确定所述任一socket对应的文件描述符存在泄露风险;其中,所述风险匹配条件包括:所述任一socket的第一间隔时长大于目标时长阈值。
其中,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等,本申请并不对此进行限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种文件描述符泄露风险的检测方法,其特征在于,所述方法包括:
获取任一socket的当前连接状态,以及所述任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长;
根据预先建立的时长阈值与socket的各个连接状态之间的对应关系,确定所述当前连接状态对应的目标时长阈值;
在风险匹配条件被满足的情况下,确定所述任一socket对应的文件描述符存在泄露风险;其中,所述风险匹配条件包括:所述任一socket的第一间隔时长大于目标时长阈值。
2.根据权利要求1所述方法,其特征在于,所述风险匹配条件还包括:所述当前连接状态为非listen状态。
3.根据权利要求2所述方法,其特征在于,所述非listen状态包括:close_wait状态或者established状态。
4.根据权利要求1所述方法,其特征在于,所述获取任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长,包括:
分别获取所述任一socket的最后一次接收数据时间点与当前时间点之间的第二间隔时长、所述任一socket的最后一次发送数据时间点与当前时间点之间的第三间隔时长;
将所述第二间隔时长与第三间隔时长中的较小者确定为所述第一间隔时长。
5.根据权利要求1所述方法,其特征在于,还包括:
当所述任一socket对应的文件描述符存在泄露风险时,获取所述任一socket对应的文件描述符信息;
根据所述文件描述符信息生成报错消息,并向预设对象输出所述报错消息。
6.根据权利要求1所述方法,其特征在于,还包括:
获取待检测服务器的当前文件描述符泄露情况;
根据预先建立的检测频率与文件描述符泄露情况的对应关系确定目标检测频率,以使所述服务器检测文件描述符泄露时的CPU占用率不超过预设CPU占用率。
7.根据权利要求6所述方法,其特征在于,
当所述服务器存在文件描述符泄露风险时,所述目标检测频率为相对更小的第一检测频率;当所述服务器不存在文件描述符泄露风险时,所述目标检测频率为相对更大的第二检测频率。
8.一种文件描述符泄露风险的检测装置,其特征在于,所述装置包括:
第一获取单元,用于获取任一socket的当前连接状态,以及所述任一socket的最后一次传输数据时间点与当前时间点之间的第一间隔时长;
第一确定单元,用于根据预先建立的时长阈值与socket的各个连接状态之间的对应关系,确定所述当前连接状态对应的目标时长阈值;
第二确定单元,用于在风险匹配条件被满足的情况下,确定所述任一socket对应的文件描述符存在泄露风险;其中,所述风险匹配条件包括:所述任一socket的第一间隔时长大于目标时长阈值。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011617802.9A CN112732560B (zh) | 2020-12-31 | 2020-12-31 | 文件描述符泄露风险的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011617802.9A CN112732560B (zh) | 2020-12-31 | 2020-12-31 | 文件描述符泄露风险的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732560A CN112732560A (zh) | 2021-04-30 |
CN112732560B true CN112732560B (zh) | 2023-10-27 |
Family
ID=75611156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011617802.9A Active CN112732560B (zh) | 2020-12-31 | 2020-12-31 | 文件描述符泄露风险的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732560B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114285771B (zh) * | 2021-12-30 | 2024-02-06 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
CN116126577B (zh) * | 2022-02-28 | 2024-03-12 | 北京基调网络股份有限公司 | 文件句柄监测、泄漏分析方法和装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103178981A (zh) * | 2011-12-24 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 连接管理方法和系统 |
JP2016085537A (ja) * | 2014-10-23 | 2016-05-19 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
CN107423213A (zh) * | 2017-04-11 | 2017-12-01 | 腾讯科技(深圳)有限公司 | 一种文件描述符分配检测方法和装置 |
CN107608852A (zh) * | 2017-09-01 | 2018-01-19 | 清华大学 | 一种进程监控方法及装置 |
CN108628740A (zh) * | 2018-04-10 | 2018-10-09 | 杭州迪普科技股份有限公司 | 一种文件描述符泄露检测方法及装置 |
CN109040307A (zh) * | 2018-09-11 | 2018-12-18 | 中国银行股份有限公司 | 一种通讯连接的自清理方法及装置 |
CN109996250A (zh) * | 2017-12-29 | 2019-07-09 | 洛阳中科晶上智能装备科技有限公司 | 检测tcp连接状态的方法 |
CN110188019A (zh) * | 2019-06-11 | 2019-08-30 | 苏州浪潮智能科技有限公司 | 一种资源状态监控方法、装置、设备及可读存储介质 |
CN110795400A (zh) * | 2019-10-12 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种文件的管理方法、装置、设备及介质 |
CN111258847A (zh) * | 2020-01-13 | 2020-06-09 | 北京字节跳动网络技术有限公司 | 一种文件句柄监控及分析方法、装置、介质和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100608136B1 (ko) * | 2005-02-18 | 2006-08-08 | 재단법인서울대학교산학협력재단 | 티씨피 연결의 스테이트풀 인스펙션에 있어서의 보안성능향상방법 |
US8903776B2 (en) * | 2011-09-08 | 2014-12-02 | International Business Machines Corporation | Caching socket connections while ensuring that there are file descriptors available for the applications |
-
2020
- 2020-12-31 CN CN202011617802.9A patent/CN112732560B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103178981A (zh) * | 2011-12-24 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 连接管理方法和系统 |
JP2016085537A (ja) * | 2014-10-23 | 2016-05-19 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
CN107423213A (zh) * | 2017-04-11 | 2017-12-01 | 腾讯科技(深圳)有限公司 | 一种文件描述符分配检测方法和装置 |
CN107608852A (zh) * | 2017-09-01 | 2018-01-19 | 清华大学 | 一种进程监控方法及装置 |
CN109996250A (zh) * | 2017-12-29 | 2019-07-09 | 洛阳中科晶上智能装备科技有限公司 | 检测tcp连接状态的方法 |
CN108628740A (zh) * | 2018-04-10 | 2018-10-09 | 杭州迪普科技股份有限公司 | 一种文件描述符泄露检测方法及装置 |
CN109040307A (zh) * | 2018-09-11 | 2018-12-18 | 中国银行股份有限公司 | 一种通讯连接的自清理方法及装置 |
CN110188019A (zh) * | 2019-06-11 | 2019-08-30 | 苏州浪潮智能科技有限公司 | 一种资源状态监控方法、装置、设备及可读存储介质 |
CN110795400A (zh) * | 2019-10-12 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种文件的管理方法、装置、设备及介质 |
CN111258847A (zh) * | 2020-01-13 | 2020-06-09 | 北京字节跳动网络技术有限公司 | 一种文件句柄监控及分析方法、装置、介质和设备 |
Non-Patent Citations (3)
Title |
---|
Linux环境下基于Socket的网络通信;郭东升 等;《软件导刊》;第8卷(第1期);第116-118页 * |
可组合的描述符泄露类型检查;李沁 等;《计算机科学》;第42卷(第10期);184-188 * |
基于类型检查的文件描述符泄露研究;缪瑨;《中国优秀硕士学位论文全文数据库》(第2017年03期);I138-241 * |
Also Published As
Publication number | Publication date |
---|---|
CN112732560A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190273749A1 (en) | Unauthorized Communication Detection Apparatus and Recording Medium | |
CN112732560B (zh) | 文件描述符泄露风险的检测方法及装置 | |
CN109525500B (zh) | 一种自调整阈值的信息处理方法及信息处理装置 | |
CN113472607B (zh) | 应用程序网络环境检测方法、装置、设备及存储介质 | |
CN110162270B (zh) | 基于分布式存储系统的数据存储方法、存储节点及介质 | |
US20230042747A1 (en) | Message Processing Method and Device, Storage Medium, and Electronic Device | |
US8196151B1 (en) | Detecting queue problems using messages entering and leaving a queue during a time period | |
US11368482B2 (en) | Threat detection system for mobile communication system, and global device and local device thereof | |
WO2020143181A1 (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN109428682B (zh) | 一种消息处理确认方法及装置 | |
CN113452770B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN115914164A (zh) | 一种隧道连接方法、装置、电子设备和存储介质 | |
CN111786898B (zh) | 一种监控设备信息获取方法、装置、设备及介质 | |
US20190229976A1 (en) | Alert throttling | |
CN115633044B (zh) | 报文的处理方法、装置、电子设备及存储介质 | |
CN107592361B (zh) | 一种基于双ib网络的数据传输方法、装置、设备 | |
CN115378841B (zh) | 设备接入云平台状态的检测方法及装置、存储介质、终端 | |
CN108880994B (zh) | 一种重发邮件的方法和装置 | |
CN114138371B (zh) | 配置动态加载方法、装置及计算机设备、存储介质 | |
CN106817364B (zh) | 一种暴力破解的检测方法及装置 | |
CN112543186B (zh) | 一种网络行为检测方法、装置、存储介质及电子设备 | |
CN113852610A (zh) | 报文处理方法、装置、计算机设备和存储介质 | |
CN113098978A (zh) | 一种数据传输方法、装置及介质 | |
CN112055058A (zh) | 数据的存储方法、装置及计算机可读存储介质 | |
CN111522642A (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 |