CN109271355B - 一种清理日志文件缓存的方法及装置 - Google Patents
一种清理日志文件缓存的方法及装置 Download PDFInfo
- Publication number
- CN109271355B CN109271355B CN201810979147.8A CN201810979147A CN109271355B CN 109271355 B CN109271355 B CN 109271355B CN 201810979147 A CN201810979147 A CN 201810979147A CN 109271355 B CN109271355 B CN 109271355B
- Authority
- CN
- China
- Prior art keywords
- log
- time
- cleaning
- file
- cache
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种清理日志文件缓存的方法及装置。按照特定路径构建日志文件的存储方式,对时间顺序排列的日志记录缓存按照日志类型、日志ID分类存储,使得系统单次遍历和清理的日志缓存的数量大幅度减少,系统清理过程延迟性降低。此外,现有技术中设置固定时间清理缓存文件的方式并不能结合实际系统内存使用情况进行清理,因而实际使用中往往造成资源浪费。本申请通过设置动态回收周期触发缓存清理,实时根据内存使用状况与最近一次清理时间周期动态调整清理缓存的频率,保证业务模块的正常进行。
Description
技术领域
本申请涉及计算机领域,尤其是涉及一种清理日志文件缓存的方法及装置。
背景技术
随着网络技术的飞速发展,软件系统在读写日志过程中,会申请文件缓存。大量的日志文件会产生大量的文件内存缓存。进程在申请内存且发现内存不足时,一般会触发缓存回收。但是软件业务模块基于处理业务效率方面的考虑,申请内存时不会触发缓存回收,而是直接返回错误,因此造成过多的缓存积累,过多的缓存占用内存空间,浪费存储资源且影响业务模块正常运行。
发明内容
为了解决上述技术问题,本申请提供一种清理文件日志缓存的方法及装置。
具体地,本申请是通过如下技术方案实现的:
在预先创建的日志存放路径下按照预设日志产生周期创建以日志产生时间命名的日志文件,其中日志存放路径包括以日志类型命名的上级目录以及以日志ID命名的下级目录;
对于新产生的日志记录,根据该日志记录的日志类型、日志ID以及日志产生时间在所述日志存放路径中找到对应的日志文件,将该日志记录写入对应的日志文件;
在缓存中创建同样的日志存放路径,将进入缓存的日志文件存放在所述同样的日志存放路径下;
当达到清理触发条件时,确定清理时间范围;
按照所述日志存放路径在缓存中进行遍历,根据文件名筛选出创建时间在所述清理时间范围内的日志文件,针对任意一个筛选出的日志文件,判断该日志文件是否符合预设特殊缓存规则,如果不符合,将该文件从缓存中清理掉。
进一步的,所述清理触发条件为下面两种条件中最先达到的一种:
清理触发条件一:自最近一次日志文件清理后,等待时间长度达到动态回收周期T时确定达到清理触发条件,其中动态回收周期T是在最近一次日志文件清理完成时,根据预设周期算法重新赋值,其中所述周期算法包括:
T=(t1–t0)*x/p
其中,t0为上一次清理缓存的时间点,t1为本次清理缓存的时间点,x为预设的内存占比基准值,p为内存占比;
清理触发条件二:可用内存低于预设阈值。
进一步的,所述方法还包括:
针对触发清理时间间隔所界定的时间段内每一种被查询过的日志类型,创建与日志类型对应的查询信息文件;
分析针对日志的查询操作并在查询索引文件中记录查询操作相关的查询信息,其中查询信息包含查询操作指定的开始时间及查询操作指定的结束时间;
其中所述清理时间范围包括:
将每一个查询文件中的所述开始时间以及结束时间界定的时间段以及所述触发清理时间间隔所界定的时间段取并集得到清理时间范围。
进一步的,按照所述日志存放路径进行遍历具体包括:
针对每一个查询索引文件,根据查询信息文件获取对应的日志类型,在日志存放路径中以日志类型为起点向下遍历创建时间在所述触发清理时间间隔内的日志文件;
在本次清理后删除所有的查询信息文件。
进一步的,所述查询信息还包括查询操作时间,其中所述符合特殊缓存规则包括:
创建时间距离所述清理时间范围中的开始清理时间小于第一预设时长TX的日志文件;
聚类信息所涵盖的时间段中尚未结束的聚类日志文件;
距离所述清理时间范围中的开始清理时间之前第二预设时长Ty内被查询操作过的日志文件。
另一方面,本申请还提供了一种与上述方法对应的装置。
相较于现有技术,本申请能够以更加高效的方式清理缓存中的日志文件,使得缓存被日志文件占用的问题得到有效的缓解。
附图说明
图1是现有技术中日志记录的存储方式示意图;
图2是本发明实施例中的日志记录的存储方式示意图;
图3是本发明实施例中一种清理日志文件缓存方法的处理流程图;
图4是本申请提供的确定清理时间范围实现流程图;
图5是本发明实施例中一示例性查询信息文件示意图;
图6是本申请提供的遍历缓存中日志文件的实现流程图;
图7是本申请提供的装置结构示意图。
具体实施方式
为了解决上述问题,在现有技术中即便设置固定时间强制清理日志记录缓存,但在缓存数据量较大时,按照时间顺序排列的日志记录存储方式对遍历缓存记录信息的过程造成巨大困扰(现有技术中日志记录存储方式如图1所示),具体表现为在清理缓存记录之前,系统对全部缓存记录的遍历过程时效慢、耗时长,从而直接影响整个缓存清理过程,降低系统的反馈速度,严重影响同时进行中的软件业务模块的处理效率。
有鉴于此,本申请提供一种有效的方案即按照特定路径构建日志文件的存储方式,请参考图2,对按照时间顺序逐一产生的日志记录缓存按照日志类型、日志ID分类存储,使得系统单次遍历和清理的日志缓存的数量大幅度减少,系统清理过程延迟性降低。
此外,现有技术中设置固定时间清理缓存文件的方式并不能结合实际系统内存使用情况进行清理,因而实际使用中往往造成资源浪费。本申请通过设置动态回收周期触发缓存清理,实时根据内存使用状况与最近一次清理时间周期动态调整清理缓存的频率,保证业务模块的正常进行。
下面结合附图,对本发明的具体实施方案进行详细阐述。
请参见图3,是本发明实施例中的一种清理日志文件缓存过程的流程图,其中包括步骤:
101.在预先创建的日志存放路径下按照预设日志产生周期创建以日志产生时间命名的日志文件,其中日志存放路径包括以日志类型命名的上级目录以及以日志ID命名的下级目录;
102.对于新产生的日志记录,根据该日志记录的日志类型、日志ID以及日志产生时间在所述日志存放路径中找到对应的日志文件,将该日志记录写入对应的日志文件;
在系统磁盘中预先按照以日志类型命名的上级目录以及以日志ID命名的下级目录创建日志存放路径,在所创建的日志存放路径下根据预设周期创建以日志产生时间命名的日志文件,实际中基于诸如用户浏览网页等操作,在每个时间点下均会产生相应日志记录,对新产生的日志记录截取出所述日志数据中携带的type_x标识和id_x标识信息,根据日志类型、日志ID归档存入预先创建的路径下,记录在以时间命名的日志文件中。
在一个实施例中,例如在2018年7月3日15:00时产生日志记录且获取到日志记录中携带type_0标识和id_0标识信息,则在图2中type_0命名的目录中确定以id_0命名的下级目录,并在该id_0命名的下级目录中创建以日志产生时间命名的日志文件,作为例子可以为2018.07.03.15:00,将查询所产生的日志记录信息记录在2018.07.03.15:00命名的日志文件上。
日志数据中通常使用type标识日志记录对应的日志类型,此外在日志数据中存在诸如fields信息定义了日志类型的所有字段信息,head信息定义了日志的头的格式。常见的日志类型有依据应用行为所划分的网络地址转换日志(如NATT(Network AddressTranslation,网络地址转换),Network,Address,Translation)、BRAS日志、DHCP日志等;可以依据具体用户上网行为划分的HTTP、Telnet、MSN、QQ;或者基于使用搜索引擎划分为搜索引擎的系统日志和互联网用户的搜索日志等。根据实际需要不同,日志类型的划分也有所不同,在此不对日志类型的划分方式进行限定。
通过上述方式使得原来如图1所示按照时间顺序排列的日志记录变化为根据日志类型、日志ID分类归档,在管理员通过日志类型查询某一日志类型下的日志记录时避免了系统对于非相关日志记录的遍历筛选,从而极大节省资源提高系统运行效率。
103.在缓存中创建同样的日志存放路径,将进入缓存的日志文件存放在所述同样的日志存放路径下;
在实际过程中,进入缓存中的日志记录分为两种,一种是由外界用户访问产生的需要存储的新的日志记录,通常以日志文件的形式保存,其对应日志文件先被写入缓存区域中,在一定时间后由缓存区域写入磁盘中;一种是由管理员读取磁盘中已存储的日志时所产生的缓存日志文件。在本申请中不管对于写入磁盘的日志文件或是管理员读出的日志文件,在写入写出的过程均会产生缓存,因而需要在缓存中创建同样的日志存放路径,以使得在日志清理过程中降低清理之前遍历日志记录的耗时耗能,提高系统清理效率。
104.当达到清理触发条件时,确定清理时间范围;
在本申请实施例中,所述清理触发条件为以下两种情况中任一满足的情况:自最近一次日志文件清理后,等待时间长度达到动态回收周期T时确定达到清理触发条件或者当可用内存低于预设阈值时,触发缓存清理,当然达到预设清理触发条件的方式有很多,这里不再赘述。
通过本实施方式,即便在软件业务模块基于处理业务效率方面考虑,使得申请内存时不触发内存回收的情况下,一旦达到本申请中预设清理触发条件会强制触发清理缓存操作,从而在软件系统在内存不足时,强制清理缓存,保证系统能够顺利运行。
105.按照所述日志存放路径在缓存中进行遍历,根据文件名筛选出创建时间在所述清理时间范围内的日志文件,针对任意一个筛选出的日志文件,判断该日志文件是否符合预设特殊缓存规则,如果不符合,将该文件从缓存中清理掉。
所筛选出的创建时间处在清理时间范围内日志文件,其中存在因被访问而复制生成的缓存,则在调用数据的时候先从缓存区域中调取提高了系统响应效率,例如数据库缓存Web应用,特别是SNS类型的应用,因其具有关系复杂且数据库表繁多,则若频繁进行数据库查询,很容易导致数据库不堪重荷,为了提供查询的性能,会将查询后的数据放到内存中进行缓存,下次查询时,直接从内存缓存直接返回,提供响应效率。对于此类缓存,即便处于清理时间范围内也不能将其清除,因而根据实际情况需要,可设置不同的预设特殊缓存规则,对于符合预设特殊规则的缓存依旧保留,而对于不符合的缓存文件进行清理。下文图5举例示出了几种判断方式,这里不再赘述。
至此,完成图3所示流程。
通过图3所示流程,创建以日志类型命名的上级目录以及以日志ID命名下级目录的存储路径,在日志ID命名的路径下根据日志产生周期创建以日志产生时间命名的日志文件,对于新产生的日志记录,均根据该日志记录的日志类型、日志ID以及日志产生时间在所述日志存放路径中找到对应的日志文件,并将该日志记录写入对应的日志文件中,即本申请将现有技术中按照时间顺序排列的日志存储记录变为按照上述日志存储路径分类存储,使得当达到清理触发条件时,按照上述日志存储路径进行遍历,并逐次对每一个日志类型下的日志记录进行清理,单次遍历、筛选及清理的日志记录数量大幅度下降,从而降低系统在清理过程中延迟性,提高系统的反馈速度。
参见图4,图4是本申请提供的确定实际清理时间间隔实现流程图。如图4所示,该流程可包括:
步骤401,在本次缓存日志清理完成后,根据上一次清理时间t0和本次清理时间t1确定下一个动态回收周期T。
作为一个实施例,动态回收周期T是在最近一次日志文件清理完成时,根据预设周期算法重新赋值,其中所述周期算法包括:T=(t1–t0)*x/p,其中,t0为上一次清理缓存的时间点,t1为本次清理缓存的时间点,x为预设的内存占比基准值,p为内存占比;例如当系统在2018年7月2日00:00:00完成一次缓存清理,此时内存占比p为75%,记录本次缓存清理时间点t1为2018年7月2日00:00:00,查询上一次清理缓存所记录的时间点t02018年7月1日22:00:00,甲公司结合业务需要预设置内存占比基准值x为75%,则依据其计算公式T=(t1–t0)*x/p,下一次动态回收周期T为2小时,故若内存没有低于阈值的情况下,系统在2018年7月2日00:00:00完成缓存清理后等待2小时开始强制进行清理缓存。
本领域技术人员应该理解的是上述实施例中t0、t1、p均为动态赋值,即对于每次清理触发时均需要根据实际情况为变量重新赋值,因而变量t1、t2、p随着每次缓存清理的触发其所表示的数值一直处于动态变化;对于预设值内存占比基准值x,运行该缓存清理机制时所设置的基准值,其数值存在根据实际需求而重新赋值的可能,例如对于需要运行较大业务量的系统,则需要相应降低内存使用量基准值,因而关于动态回收周期T内变量的取值不易进行穷举。
步骤402,当等待时间大于动态回收周期T或者可用内存低于阈值时,判定达到清理触发条件;
步骤403,根据所达到的清理触发条件,计算触发清理时间间隔。
在一个例子中,触发条件可以为自最近一次日志文件清理后,等待时间长度达到动态回收周期T时。在日志文件每一次清理时,记录该次清理时间点并计算下次计划清理的动态回收周期T,例如在t′时刻进行缓存清理并计算得到计划清理的动态回收周期为T,则当等待时间长度达到动态回收周期T时,对应的清理时间点为t′+T,确定触发清理时间间隔为t′到t′+T。
此外,考虑到在不同业务场景下,业务模块运行时内存使用不稳定的情况,使得等待时间尚未到达动态回收周期时,系统中因内存使用过高而需要清理日志缓存释放空间。例如在为动态回收周期T重新赋值时内存占比P较小,则计算得到的动态回收周期T的偏长,实际在等待时间尚未到达动态回收周期时,因某一项业务模块运行时的高内存占比使得需要清理日志缓存释放空间,以保证业务模块的顺利运行。
在一个例子中,可用内存低于某个阈值时可以作为触发缓存清理的另一条件,通过实时监测内存值,决定是否采取触发缓存清理的措施防止内存过载。
在具体实施过程中,若因为业务模块进行导致内存占用过高,使得可用内存空间低于阈值,则即便等待时间尚未到达动态回收周期T,也触发缓存清理过程,例如在t′时刻进行缓存清理并计算得到计划清理的动态回收周期为T,当等待时间尚未达到动态回收周期T时,由于可用内存低于阈值而触发清理缓存,假设触发清理对应的时间点为t″,则所确定的触发清理时间间隔为t′到t′+t″。
步骤404,针对触发清理时间间隔所界定的时间段内每一种被查询过的日志类型,创建与日志类型对应的查询信息文件。
步骤405,获取查询信息文件中查询操作指定的开始时间及查询操作指定的结束时间。
步骤406,将每一个查询文件中的所述开始时间以及结束时间界定的时间段以及所述触发清理时间间隔所界定的时间段取并集得到清理时间范围。
在一个实施例中,基于某一日志类型的查询信息文件可以包括日志ID为x的查询次数(op_num_x)、查询操作时间(op_time_x)、开始时间(start_x)、结束时间(end_x),包括但不限于上述几种。
在一个实施例中,管理员对缓存中日志文件进行查询的时间为对应的查询操作时间,而查询中输入的查询日志的时间范围为查询开始时间到查询结束时间所界定的时间段。例如:管理员在2018年7月3日11:00查询2018年7月3日9:00到2018年7月3日10:00的日志类型为编号0、日志ID号为1的日志记录,并在2018年7月3日14:00查询2018年7月3日12:00到2018年7月3日13:00的日志类型为编号0、日志ID为1的日志记录,则会获得图5对应的查询文件,对于在日志类型为0,日志ID为1的日志记录,查询次数(op_num_1)为2,查询操作时间(op_time_1)中对应ta的时间为2018年7月3日11:00,对应tb的时间为2018年7月3日14:00。在时间ta进行查询操作时,查询的日志记录的时间范围为t1至t3,即查询操作指定的开始时间start_1:t1、查询结束时间end_1:t3,其中t1为2018年7月3日9:00,t3为2018年7月3日10:00;在时间tb进行查询操作时,查询的日志记录的时间范围为t2至t4,即查询操作指定的开始时间start_1:t2、查询结束时间end_1:t4,其中t2为2018年7月3日12:00,t4为2018年7月3日13:00。
进一步的,当开始清理日志缓存时,根据日志类型type_0访问对应的查询信息文件,根据日志ID访问ID为1的查询操作字段,则获得type_0中ID为1的查询开始时间以及结束时间界定的时间段为2018年7月3日9:00到2018年7月3日10:00与2018年7月3日12:00到2018年7月3日13:00。将查询文件中的所述开始时间以及结束时间界定的时间段与所述触发清理时间间隔所界定的时间段取并集得到清理时间范围,例如若根据步骤403得到触发清理时间间隔为2018年7月3日9:30-12:30,则取并集后的清理时间范围为2018年7月3日9:00到2018年7月3日13:00;若根据步骤403得到触发清理时间间隔为2018年7月3日8:00-9:00,则取并集后的清理时间范围为2018年7月3日8:00到2018年7月3日10:00及2018年7月3日12:00到2018年7月3日13:00;若根据步骤403得到触发清理时间间隔为2018年7月3日12:00到2018年7月3日12:30,则取并集后的清理时间范围为2018年7月3日9:00到2018年7月3日10:00及2018年7月3日12:00到2018年7月3日13:00
至此,完成图4所示的流程。
通过图4所示的流程,在每次日志缓存清理结束后,依据本次清理时间、上次清理时间及系统中内存占比情况,更新t0、t1、p的取值,根据预设周期算法T=(t1–t0)*x/p为动态回收周期T重新赋值,因而动态回收周期T的赋值随着t0、t1、p及内存占比基准值x的变化而变化,从而实现结合实际情况动态调整缓存清理周期,此外对于业务模块运行不稳定的情况,即便等待时间尚未到达动态回收周期T,可用内存低于阈值作为本申请中另一个触发缓存清理条件,保证及时触发缓存清理释放空间,防止因内存过载影响业务模块顺利进行。
进一步的,在日志存放路径中以日志类型为起点向下遍历创建时间在所述触发清理时间间隔内的日志文件,创建与日志类型对应的查询信息文件,根据查询信息文件获取每一查询文件查询操作指定的开始时间与结束时间,其所界定的时间段与触发清理时间间隔所界定的时间段取并集,并集对应的时间段即为步骤104所得到的清理时间范围清理时间范围。
参见图6,图6为本申请提供的遍历缓存中日志文件的实现流程图。如图6所示,该流程可包括:
601.获取创建时间在所述清理时间范围内的日志文件。
当触发缓存清理后,依次根据日志类型、日志ID访问存储在路径下的日志文件,对文件创建时间处于缓存清理周期中的日志文件。
602.获取日志文件对应的创建时间及查询信息文件中的日志类型、查询操作时间。
进一步的,对于查询产生的日志缓存创建包含标识信息的查询信息文件,在标识信息上记录查询操作相关的查询信息,基于某一日志类型的查询信息文件可以包括日志ID为x的查询次数(op_num_x)、查询操作时间(op_time_x)、开始时间(start_x)、结束时间(end_x),包括但不限于上述几种,查询信息包含查询的操作时间、查询开始时间及查询结束时间,查询信息文件由以标识信息为索引并以缓存数据的位置参数为值所生成的,通过查询信息文件使得标识中各信息与缓存数据的位置参数之间建立映射关系。
603.判断是否为最新创建的日志文件,若否则进入步骤604中,若是则进入步骤607中。
进一步的,若日志文件的创建时间距离所述清理时间范围中的开始清理时间小于第一预设时长TX,则该日志文件为最新创建的日志文件,否则不是最新创建的日志文件。其中第一预设时长TX根据需要而设定,可以为5分钟或者10分钟,在此不对第一预设时长Tx的具体取值进行限定。
该类文件中所存储的新建缓存对相关业务模块进行具有支持作用,保留该类缓存文件不被删除有利于相关业务的进行,在具体实施方式中诸如在用户浏览网站时,系统会针对用户浏览的网页内容存储相关信息缓存,不仅减少网络带宽消耗、降低服务器压力,而且减少网络延迟、加快页面打开速度,故而对于新产生的缓存文件应保留至下一次触发缓存清理时进行清理。
604.判断是否为聚类日志文件,若否则进入步骤605中,若是则进入步骤607中。
当软件系统需要查询很长一段时间内的日志时,需要通过聚类将信息提取出来,聚类信息保存在聚类文件中,而对于所涵盖时间段尚未结束的聚类信息其所对应的聚类文件需要排除在待清理缓存文件之外,等待聚类信息所涵盖的时间段结束之后再进行清理。
进一步的,聚类日志文件可根据所获取的日志类型进行判断,对于日志类型中含有聚类日志的标识的,查验该聚类文件所涵盖的时间段是否结束,若未结束则判定该日志文件为聚类文件,若涵盖的时间段已经结束则不是聚类文件。
605.判断是否为最近查询过的日志文件,若否则进入步骤606中,若是则进入步骤607中。
进一步的,根据所获取的查询操作时间,判断其是否处于所述清理时间范围中的开始清理时间之前第二预设时长Ty内,若是则为最近查询过的日志文件,否则不是,其中,第二预设时长Ty根据实际需要可进设置,例如10分钟或者30分钟,在此不对第二预设时长Ty的取值进行限制。
606.对该日志文件的日志缓存进行清理。
607.保存该日志文件中的日志缓存记录,不进行清理。
至此,完成图6所示的流程。
通过图6所示的流程,按照所述日志存放路径依次访问缓存中的日志文件,对于不属于预设特殊规则的缓存文件进行清理,从而在保证业务模块运行效率的基础上,清理其他非必须的缓存文件以释放空间,有利于业务模块的顺利进行。
进一步的,在本次清理后删除所有的查询信息文件。
请参考图7,本申请另一个实施方式中,还提供一种清理日志文件缓存的装置,该装置包括:
路径管理单元,用于在预先创建的日志存放路径下按照预设日志产生周期创建以日志产生时间命名的日志文件,其中日志存放路径包括以日志类型命名的上级目录以及以日志ID命名的下级目录;
日志处理单元,用于对于新产生的日志记录,根据该日志记录的日志类型、日志ID以及日志产生时间在所述日志存放路径中找到对应的日志文件,将该日志记录写入对应的日志文件;
缓存管理单元,用于在缓存中创建同样的日志存放路径,将进入缓存的日志文件存放在所述同样的日志存放路径下;当达到清理触发条件时,确定清理时间范围;按照所述日志存放路径在缓存中进行遍历,根据文件名筛选出创建时间在所述清理时间范围内的日志文件,针对任意一个筛选出的日志文件,判断该日志文件是否符合预设特殊缓存规则,如果不符合,将该文件从缓存中清理掉。
进一步地,所述清理触发条件为下面两种条件中最先达到的一种:
清理触发条件一:自最近一次日志文件清理后,等待时间长度达到动态回收周期T时确定达到清理触发条件,其中动态回收周期T是在最近一次日志文件清理完成时,根据预设周期算法重新赋值,其中所述周期算法包括:
T=(t1–t0)*x/p
其中,t0为上一次清理缓存的时间点,t1为本次清理缓存的时间点,x为预设的内存占比基准值,p为内存占比;
清理触发条件二:可用内存低于预设阈值。
进一步地,所述缓存管理单元,还用于针对触发清理时间间隔所界定的时间段内每一种被查询过的日志类型,创建与日志类型对应的查询信息文件;
分析针对日志的查询操作并在查询索引文件中记录查询操作相关的查询信息,其中查询信息包含查询操作指定的开始时间及查询操作指定的结束时间;
其中所述清理时间范围包括:
将每一个查询文件中的所述开始时间以及结束时间界定的时间段以及触发清理时间间隔所界定的时间段取并集得到清理时间范围。
进一步地,按照所述日志存放路径进行遍历具体包括:
针对每一个查询索引文件,根据查询信息文件获取对应的日志类型,在日志存放路径中以日志类型为起点向下遍历创建时间在所述清理时间范围内的日志文件;
在本次清理后删除所有的查询信息文件。
进一步地,所述查询信息还包括查询操作时间,其中所述符合特殊缓存规则包括:
创建时间距离所述清理时间范围中的开始清理时间小于第一预设时长TX的日志文件;
聚类信息所涵盖的时间段中尚未结束的聚类日志文件;
距离所述清理时间范围中的开始清理时间之前第二预设时长Ty内被查询操作过的日志文件。
所述装置与上述方法相对应,更多相同的细节不再一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其他实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种清理日志文件缓存的方法,其特征在于,所述方法包括步骤:
在预先创建的日志存放路径下按照预设日志产生周期创建以日志产生时间命名的日志文件,其中日志存放路径包括以日志类型命名的上级目录以及以日志ID命名的下级目录;
对于新产生的日志记录,根据该日志记录的日志类型、日志ID以及日志产生时间在所述日志存放路径中找到对应的日志文件,将该日志记录写入对应的日志文件;
在缓存中创建同样的日志存放路径,将进入缓存的日志文件存放在所述同样的日志存放路径下;
当达到清理触发条件时,确定清理时间范围;
按照所述日志存放路径在缓存中进行遍历,根据文件名筛选出创建时间在所述清理时间范围内的日志文件,针对任意一个筛选出的日志文件,判断该日志文件是否符合预设特殊缓存规则,如果不符合,将该文件从缓存中清理掉;
针对触发清理时间间隔所界定的时间段内每一种被查询过的日志类型,创建与日志类型对应的查询信息文件;
分析针对日志的查询操作并在查询索引文件中记录查询操作相关的查询信息,其中查询信息包含查询操作指定的开始时间及查询操作指定的结束时间;
其中所述清理时间范围包括:
将每一个查询文件中的所述开始时间以及结束时间界定的时间段以及所述触发清理时间间隔所界定的时间段取并集得到清理时间范围。
2.根据权利要求1所述的方法,其特征在于,所述清理触发条件为下面两种条件中最先达到的一种:
清理触发条件一:自最近一次日志文件清理后,等待时间长度达到动态回收周期T时确定达到清理触发条件,其中动态回收周期T是在最近一次日志文件清理完成时,根据预设周期算法重新赋值,其中所述周期算法包括:
T=(t1–t0)*x/p
其中,t0为上一次清理缓存的时间点,t1为本次清理缓存的时间点,x为预设的内存占比基准值,p为内存占比;
清理触发条件二:可用内存低于预设阈值。
3.根据权利要求1所述的方法,其特征在于,按照所述日志存放路径进行遍历具体包括:
针对每一个查询索引文件,根据查询信息文件获取对应的日志类型,在日志存放路径中以日志类型为起点向下遍历创建时间在所述触发清理时间间隔内的日志文件;
在本次清理后删除所有的查询信息文件。
4.根据权利要求1所述的方法,其特征在于,所述查询信息还包括查询操作时间,其中所述符合特殊缓存规则包括:
创建时间距离所述清理时间范围中的开始清理时间小于第一预设时长TX的日志文件;
聚类信息所涵盖的时间段中尚未结束的聚类日志文件;
距离所述清理时间范围中的开始清理时间之前第二预设时长Ty内被查询操作过的日志文件。
5.一种清理日志文件缓存的装置,其特征在于,该装置包括:
路径管理单元,用于在预先创建的日志存放路径下按照预设日志产生周期创建以日志产生时间命名的日志文件,其中日志存放路径包括以日志类型命名的上级目录以及以日志ID命名的下级目录;
日志处理单元,用于对于新产生的日志记录,根据该日志记录的日志类型、日志ID以及日志产生时间在所述日志存放路径中找到对应的日志文件,将该日志记录写入对应的日志文件;
缓存管理单元,用于在缓存中创建同样的日志存放路径,将进入缓存的日志文件存放在所述同样的日志存放路径下;当达到清理触发条件时,确定清理时间范围;按照所述日志存放路径在缓存中进行遍历,根据文件名筛选出创建时间在所述清理时间范围内的日志文件,针对任意一个筛选出的日志文件,判断该日志文件是否符合预设特殊缓存规则,如果不符合,将该文件从缓存中清理掉;
所述缓存管理单元,还用于针对触发清理时间间隔所界定的时间段内每一种被查询过的日志类型,创建与日志类型对应的查询信息文件;
分析针对日志的查询操作并在查询索引文件中记录查询操作相关的查询信息,其中查询信息包含查询操作指定的开始时间及查询操作指定的结束时间;
其中所述清理时间范围包括:
将每一个查询文件中的所述开始时间以及结束时间界定的时间段以及所述触发清理时间间隔所界定的时间段取并集得到清理时间范围。
6.根据权利要求5所述的装置,其特征在于,所述清理触发条件为下面两种条件中最先达到的一种:
清理触发条件一:自最近一次日志文件清理后,等待时间长度达到动态回收周期T时确定达到清理触发条件,其中动态回收周期T是在最近一次日志文件清理完成时,根据预设周期算法重新赋值,其中所述周期算法包括:
T=(t1–t0)*x/p
其中,t0为上一次清理缓存的时间点,t1为本次清理缓存的时间点,x为预设的内存占比基准值,p为内存占比;
清理触发条件二:可用内存低于预设阈值。
7.根据权利要求6所述的装置,其特征在于,按照所述日志存放路径进行遍历具体包括:
针对每一个查询索引文件,根据查询信息文件获取对应的日志类型,在日志存放路径中以日志类型为起点向下遍历创建时间在所述触发清理时间间隔内的日志文件;
在本次清理后删除所有的查询信息文件。
8.根据权利要求6所述的装置,其特征在于,所述查询信息还包括查询操作时间,其中所述符合特殊缓存规则包括:
创建时间距离所述清理时间范围中的开始清理时间小于第一预设时长TX的日志文件;
聚类信息所涵盖的时间段中尚未结束的聚类日志文件;
距离所述清理时间范围中的开始清理时间之前第二预设时长Ty内被查询操作过的日志文件。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;其中,所述处理器被配置为可执行指令以实现如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810979147.8A CN109271355B (zh) | 2018-08-27 | 2018-08-27 | 一种清理日志文件缓存的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810979147.8A CN109271355B (zh) | 2018-08-27 | 2018-08-27 | 一种清理日志文件缓存的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109271355A CN109271355A (zh) | 2019-01-25 |
CN109271355B true CN109271355B (zh) | 2020-09-08 |
Family
ID=65154458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810979147.8A Active CN109271355B (zh) | 2018-08-27 | 2018-08-27 | 一种清理日志文件缓存的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109271355B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933462A (zh) * | 2019-02-25 | 2019-06-25 | 深圳小云字符信息科技有限公司 | 日志信息处理方法 |
CN109960686B (zh) * | 2019-03-26 | 2021-07-20 | 北京百度网讯科技有限公司 | 数据库的日志处理方法和装置 |
CN110188075A (zh) * | 2019-05-24 | 2019-08-30 | 无线生活(北京)信息技术有限公司 | 日志清理方法及装置 |
CN112015678A (zh) * | 2019-05-30 | 2020-12-01 | 北京京东尚科信息技术有限公司 | 一种日志缓存方法和设备 |
CN110442404B (zh) * | 2019-08-13 | 2022-07-05 | 武汉斗鱼鱼乐网络科技有限公司 | 一种对象释放方法、装置、设备和存储介质 |
CN110502486B (zh) * | 2019-08-21 | 2022-01-11 | 中国工商银行股份有限公司 | 日志处理方法、装置、电子设备和计算机可读存储介质 |
CN110955757A (zh) * | 2019-12-06 | 2020-04-03 | 阳光电源股份有限公司 | 光伏电站设备日志检索方法和系统 |
CN111488316B (zh) * | 2020-04-12 | 2023-09-22 | 杭州迪普科技股份有限公司 | 文件缓存回收方法及装置 |
CN113656358A (zh) * | 2020-05-12 | 2021-11-16 | 网联清算有限公司 | 一种数据库日志文件处理方法及系统 |
CN111651595A (zh) * | 2020-05-25 | 2020-09-11 | 泰康保险集团股份有限公司 | 一种异常日志处理方法及装置 |
CN113505142B (zh) * | 2021-07-08 | 2022-06-24 | 中电金信软件有限公司 | 数据查询方法、装置及服务器 |
CN113722018A (zh) * | 2021-09-16 | 2021-11-30 | 中国银行股份有限公司 | Jboss缓存清理方法及装置 |
CN114706826B (zh) * | 2022-06-02 | 2022-09-27 | 建信金融科技有限责任公司 | 清理文件的方法、装置、设备和计算机可读介质 |
CN116244091B (zh) * | 2022-11-30 | 2024-04-05 | 荣耀终端有限公司 | 一种日程管理方法和装置 |
CN116501744B (zh) * | 2023-06-30 | 2023-09-19 | 中国人民解放军国防科技大学 | 仿真数据的自动化建表与入库方法、装置和计算机设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436962A (zh) * | 2008-12-04 | 2009-05-20 | 金蝶软件(中国)有限公司 | 日志管理方法及系统 |
CN101459557A (zh) * | 2008-11-29 | 2009-06-17 | 成都市华为赛门铁克科技有限公司 | 一种安全日志集中存储方法及装置 |
CN103761306A (zh) * | 2014-01-22 | 2014-04-30 | 深圳市欧珀通信软件有限公司 | 一种智能终端文件清理方法及装置 |
CN103793479A (zh) * | 2014-01-14 | 2014-05-14 | 上海上讯信息技术股份有限公司 | 日志管理方法及系统 |
CN105530299A (zh) * | 2015-12-12 | 2016-04-27 | 天津南大通用数据技术股份有限公司 | 目录服务日志的实现方法 |
CN107273469A (zh) * | 2017-06-06 | 2017-10-20 | 山东浪潮商用系统有限公司 | 一种清理过期文件的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9396242B2 (en) * | 2011-04-11 | 2016-07-19 | Salesforce.Com, Inc. | Multi-master data replication in a distributed multi-tenant system |
US8904243B2 (en) * | 2012-06-29 | 2014-12-02 | Sap Se | Event management systems and methods |
CN104394145B (zh) * | 2014-11-25 | 2015-09-23 | 飞天诚信科技股份有限公司 | 一种具有日志功能的动态令牌及其工作方法 |
US10664119B2 (en) * | 2017-01-04 | 2020-05-26 | International Business Machines Corporation | Document content pool |
-
2018
- 2018-08-27 CN CN201810979147.8A patent/CN109271355B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459557A (zh) * | 2008-11-29 | 2009-06-17 | 成都市华为赛门铁克科技有限公司 | 一种安全日志集中存储方法及装置 |
CN101436962A (zh) * | 2008-12-04 | 2009-05-20 | 金蝶软件(中国)有限公司 | 日志管理方法及系统 |
CN103793479A (zh) * | 2014-01-14 | 2014-05-14 | 上海上讯信息技术股份有限公司 | 日志管理方法及系统 |
CN103761306A (zh) * | 2014-01-22 | 2014-04-30 | 深圳市欧珀通信软件有限公司 | 一种智能终端文件清理方法及装置 |
CN105530299A (zh) * | 2015-12-12 | 2016-04-27 | 天津南大通用数据技术股份有限公司 | 目录服务日志的实现方法 |
CN107273469A (zh) * | 2017-06-06 | 2017-10-20 | 山东浪潮商用系统有限公司 | 一种清理过期文件的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109271355A (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271355B (zh) | 一种清理日志文件缓存的方法及装置 | |
US8463846B2 (en) | File bundling for cache servers of content delivery networks | |
CN110046133B (zh) | 一种存储文件系统的元数据管理方法、装置及系统 | |
US5933832A (en) | Retrieval system for frequently updated data distributed on network | |
CN113010818B (zh) | 访问限流方法、装置、电子设备及存储介质 | |
JP2002244898A (ja) | データベース管理プログラム及びデータベースシステム | |
EP3076307A1 (en) | Method and device for responding to a request, and distributed file system | |
US8438336B2 (en) | System and method for managing large filesystem-based caches | |
US20100228914A1 (en) | Data caching system and method for implementing large capacity cache | |
CN107967122B (zh) | 一种块设备的数据写入方法、装置及介质 | |
US11625412B2 (en) | Storing data items and identifying stored data items | |
CN110008197B (zh) | 一种数据处理方法、系统及电子设备和存储介质 | |
CN104239353A (zh) | 一种web分类控制和日志审计的方法 | |
CN112148690A (zh) | 一种文件缓存方法、文件访问请求处理方法及装置 | |
CN111913917A (zh) | 一种文件处理方法、装置、设备和介质 | |
CN114416670A (zh) | 适用于网盘文档的索引创建方法、装置、网盘及存储介质 | |
CN113239012B (zh) | 一种数据库迁移方法、装置、电子设备和存储介质 | |
Cao et al. | Is-hbase: An in-storage computing optimized hbase with i/o offloading and self-adaptive caching in compute-storage disaggregated infrastructure | |
CN104933045B (zh) | 网络信息浏览方法及网络信息浏览装置 | |
KR101830504B1 (ko) | 분산 환경 기반 빅데이터 실시간 분석을 위한 인-메모리 db 연결 지원형 스케줄링 방법 및 시스템 | |
CN113641681A (zh) | 一种空间自适应的海量数据查询方法 | |
CN113805864A (zh) | 一种项目工程的生成方法、装置、电子设备及存储介质 | |
CN110399451A (zh) | 一种基于非易失性内存的全文检索引擎缓存方法,系统,设备及可读存储介质 | |
CN111723266A (zh) | 海量数据处理方法和装置 | |
CN113625959B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210616 Address after: 310051 05, room A, 11 floor, Chung Cai mansion, 68 Tong Xing Road, Binjiang District, Hangzhou, Zhejiang. Patentee after: Hangzhou Dip Information Technology Co.,Ltd. Address before: 6 / F, Zhongcai building, 68 Tonghe Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: Hangzhou DPtech Technologies Co.,Ltd. |
|
TR01 | Transfer of patent right |