日志存储优化方法和设备与流程

文档序号:19589301发布日期:2020-01-03 10:03阅读:298来源:国知局
日志存储优化方法和设备与流程

本公开的实施例总体上涉及数据存储技术,更具体地涉及日志存储优化的方法和设备。



背景技术:

日志是指系统(例如,软件、应用)或设备(例如,服务器、终端设备)发生的事务或操作的记录。日志数据包含系统或设备的所有活动和行为的有序记录,一般为半结构化的数据,例如,单行日志、复杂的多行日志。技术人员通常对日志数据进行搜索、关联、可视化、分析以及记录,以标识和解决系统或设备的操作和安全问题。

现代的软件定义数据中心(sddc)架构能够不断地生成日志数据,其生成速度往往比技术人员能够处理的速度更快。由于活动和数据的数量呈现指数级的增长,生成的日志数量也在快速增长,例如,某些存储服务器每天能够生成高达几tb的日志数据。现代的sddc架构具有针对多层应用的自动的且动态的部署能力,因此需要实时地对日志进行分析。日志的有效分析是系统或设备的复杂故障诊断、动态高性能以及更好安全性的关键保障。

一般来说,对日志进行搜索分析的方法非常低效,此外,虽然现有的处理方法也会采取压缩和去重处理,但是日志的熵并没有得到减少。因此,如何对现有的海量日志进行处理,实现海量日志的优化存储并且提高日志分析效率,成为一个亟待解决的问题。



技术实现要素:

有鉴于此,本公开的实施例提供一种日志存储优化方法和设备,能够减少日志的存储空间并且提高日志的分析效率。

根据本公开的一个方面,公开了一种日志存储优化的方法,该方法包括接收日志数据;使用解析规则将日志数据转换为结构化数据;以及对结构化数据进行编码,以减少日志的存储空间。

根据本公开的一个实施例,进一步包括:在接收到日志数据之后,遍历日志简档储存库,确定日志简档储存库中是否存在对应于日志数据的结构化日志简档,以生成解析规则,其中结构化日志简档存储库用于存储经转换的结构化数据。

根据本公开的另一个实施例,其中确定日志简档储存库中是否存在对应于日志数据的结构化日志简档,以生成解析规则包括:在日志简档储存库中存在对应于日志数据的结构化日志简档时,根据对应的结构化日志简档来生成对应的解析规则。

根据本公开的又一个实施例,其中确定日志简档储存库中是否存在对应于日志数据的结构化日志简档,以生成解析规则包括:在日志简档储存库中不存在对应于日志数据的结构化日志简档时,通过自适应学习过程来获得对应于日志数据的结构化日志简档和解析规则、或者手动定义对应于日志数据的结构化日志简档和解析规则。

根据本公开的一个实施例,进一步包括:在遍历日志简档储存库之前,当用于生成日志数据的日志配置可访问时,根据日志配置来直接生成结构化日志简档和相应的解析规则。

根据本公开的一个实施例,其中结构化日志简档至少包括日志的时间戳和内容数据。根据本公开的另一个实施例,其中解析规则是正则表达式或者字符串模板。

根据本公开的一个实施例,其中使用解析规则将日志数据转换为结构化数据进一步包括:在使用解析规则将日志数据转换为结构化数据之后,设定基准时间,计算每条日志的时间戳与基准时间之间的时间差,并且利用时间差来替代结构化数据中的时间戳数据。根据本公开的另一个实施例,其中基准时间是第一条日志的时间戳或者是基于周期性的时间。

根据本公开的一个实施例,其中对结构化数据进行编码包括:对于结构化数据中的各种类型的值,计算相同类型的值中的每个值的出现概率,以生成编码规则。根据本公开的另一个实施例,其中生成编码规则包括:将出现概率较大的值编码为长度较短的值,其中出现概率与出现次数成正比。根据本公开的又一个实施例,其中将出现概率较大的值编码为长度较短的值包括:将出现概率最大的值编码为值“1”。

根据本公开的一个实施例,其中生成编码规则包括:根据编码规则自适应学习过程来自动生成编码规则。根据本公开的另一个实施例,其中编码规则是哈夫曼编码。

根据本公开的另一个实施例,进一步包括:在使用编码规则对结构化数据进行编码之后,以日志向量的形式存储经编码的结构化数据。

根据本公开的另一个方面,公开了一种日志存储优化设备,该设备包括:接收装置,用于接收日志数据;转换装置,用于使用解析规则将该日志数据转换为结构化数据;以及编码装置,用于对该结构化数据进行编码,以减少日志的存储空间。

本公开的示例性实施例可以带来以下技术效果中的至少一种:通过对日志数据进行结构化转换、基于列的方式对转换后的数据进行编码、和/或对日志的时间戳进行编码,能够提高日志的分析效率,并且有效地降低了日志熵,达到减少日志的存储空间的效果,从而提高日志的存档效率。

附图说明

结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例。在附图中:

图1图示了根据本公开的实施例的日志存储优化方法100的流程图;

图2图示了根据本公开的实施例的日志记录的示例;

图3图示了根据本公开的实施例对日志记录进行分解的示例;

图4图示了根据本公开的实施例的描述结构化日志简档的示例;

图5图示了根据本公开的实施例的利用正则表达式对日志内容部分进行解析的示例;

图6图示了根据本公开的实施例的利用字符串模板对日志内容部分进行解析的示例;

图7图示了根据本公开的实施例的通过相对编码来减少时间戳熵的示例;

图8图示了根据本公开的实施例的从列的角度对通用日志分段进行分析的示例;

图9图示了根据本公开的实施例的模块名称的有限集合的示例;

图10图示了根据本公开的实施例的对日志数据进行编码的示例;

图11图示了根据本公开的另一实施例的编码规则的自适应学习生成过程的流程图;

图12图示了根据本公开的另一实施例的日志存储优化方法的处理流程图;

图13图示了根据本公开的实施例的日志数据的存储优化的结果的示例;

图14图示了根据本公开的实施例的日志存储优化设备1400的框图;以及

图15图示了可以在其中实现根据本公开的实施例的计算机设备1500的框图。

具体实施方式

以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。

本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一个实施例”、“又一个实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。

应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制发明的范围。

图1图示了根据本公开的实施例的日志存储优化方法100的流程图。参考图1,在步骤102处,接收日志数据。例如,将系统或设备产生的日志输入到对日志数据进行存储优化的处理设备中,输入的方式可以为通过接口直接连接,也可以通过导入的方式进行输入。可以实时地接收日志数据,也可以定时地接收日志数据,例如,每24个小时接收一次日志数据。所接收到日志数据可以包括各种类型的日志,例如,普通日志、错误日志等。

参考图2,其图示了根据本公开的实施例的日志记录的示例。其中日志数据可以包括相同类型的多条日志,也可以包括不同类型的多条日志。在图2中,示出了相同类型的两条日志,日志呈现为半结构化的形式。在图2的示例中,每条日志可以包括模块名称、ip地址、时间戳、操作类型、参数以及日志内容等信息。

图3图示了根据本公开的实施例对日志记录进行分解的示例。在图3中,对图2中的第一条半结构化的日志进行分析,第一条日志记录可以分解为六个字段:模块名称、客户端ip地址、时间戳、操作类型、参数以及日志内容。在图3的示例日志中,模块名称的值为“innovationcontroller”,客户端ip地址的值为“10.30.89.172”,时间戳的值为“2013-01-2100:25:56”,操作类型的值为“get”,参数的值为“"challenge_id"=>"18","id"=>"23"”,日志内容的值为“completedin10ms(view:0,db:6)|200ok[http://innovationcentral.corp.emc.com/challenges/18/innovations/23]”。

图4图示了根据本公开的实施例的描述结构化日志简档的示例,日志简档用于描述日志记录的一般格式或布局。该结构化日志简档用于存储从日志记录中抽取的结构化日志数据,图4的简档例如包括产品类型、产品id、时间戳、日志严重性、模块名称、内容字段,而日志的内容具体还可以包括参数、结果等字段。对于不同类型的日志来说,结构化日志简档可以包括不同的日志简档的字段内容,但是每条日志记录中必然包含时间戳和日志内容二者。在结构化日志简档存储库中,针对不同类型的日志记录,构建对应的日志简档类型。例如,日志的简档可以被表示为:logprofile=[profilename,regularexpressiontemplate|stringtemplate,itemname1,itemname2,…]。此外,针对本领域常用的日志格式(诸如,apache日志),可以提前定义这些日志格式的日志简档。

在步骤102之后,方法100可以进一步包括:在接收到日志数据之后,遍历日志简档储存库,确定日志简档储存库中是否存在对应于日志数据的结构化日志简档,以生成解析规则,其中结构化日志简档存储库用于存储经转换的结构化数据。根据本公开的另一个实施例,其中解析规则可以是正则表达式(regularexpression)或者字符串模板(stringtemplate)。

正则表达式是一种用来操作和检验字符串数据的匹配工具,其为一串特殊的字符,可以对文本进行匹配等操作,正则表达式的匹配语法可以具体参见网址:http://www.regular-expressions.info/。例如,针对图2的日志记录,可以构建如下的正则表达式进行匹配。

p1=[“processing\s+(\w+)#(\w+)\s\(for\s+((\d+\.){3}\d+)\s+at\s+(\d+-\d+-\d+\s\d+:\d+:\d+)\)\s+\[(\w+)\]\n+(parameters:\.+)”,controller,method,client_ip,timestamp,http_method,content]

由正则表达式匹配出的数据将作为日志简档中相应的字段位置的数据。在上面的正则表达式示例中,controller字段的值对应于“\w+”,method字段的值对应于“\w+”,client_ip字段的值对应于“(\d+\.){3}\d+”,timestamp字段的值对应于“\d+-\d+-\d+\s\d+:\d+:\d+”,http_method字段的值对应于“\w+”,content字段的值对应于“parameters:\.+”。通过正则表达式的匹配规则,可以对图2的示例中的日志记录进行匹配,从而能够解析并抽取出日志记录中的结构化的日志数据。图5图示了利用正则表达式对日志内容部分进行解析的示例,能够解析并抽取出日志内容中的动态数据。

字符串模板是一种模板匹配引擎,支持java,c#,python等语言,字符串模板的匹配语法可以参见网址:http://www.stringtemplate.org/。字符串模板的具体匹配语法与正则表达式有所不同,然而二者均能达到对日志记录进行抽取的效果。

图6图示了利用字符串模板对日志内容部分进行解析的示例。利用图6中所示出的字符串模板匹配规则,半结构化的日志记录将被转换为结构化的形式。然后,可以通过向量的形式在结构化日志简档存储库中存储经转换的结构化数据。例如,向量可以被表示为:

[p1,‘innovationcontroller’,‘index’,‘10.30.89.172’,‘2013-01-2100:25:49’,get,[st1,0,18,20,115352,457,0,436,200]]。

正则表达式和字符串模板匹配规则可以人工进行定义,也可以根据历史的日志记录和日志简档,执行自适应学习过程来自动获得匹配规则。例如,通过原始日志记录与结构化日志简档之间的文本比较,获得原始日志记录中的变化的数据的位置,即得到日志记录中的变量,通过反复的学习过程,从而产生相应的解析规则,例如,正则表达式、字符串模板。

根据本公开的一个实施例,其中确定日志简档储存库中是否存在对应于日志数据的结构化日志简档,以生成解析规则包括:在日志简档储存库中存在对应于日志数据的结构化日志简档时,根据对应的结构化日志简档来生成对应的解析规则。例如,如果日志简档储存库中已经存在相应的日志简档,则可以根据该日志简档来生成对应的解析规则。

根据本公开的另一个实施例,其中确定日志简档储存库中是否存在对应于日志数据的结构化日志简档,以生成解析规则包括:在日志简档储存库中不存在对应于日志数据的结构化日志简档时,通过自适应学习过程来获得对应于日志数据的结构化日志简档和解析规则、或者手动定义对应于日志数据的结构化日志简档和解析规则。例如,如果日志简档储存库中不存在相应的日志简档,则可以人工地定义解析规则。备选地,也可以通过解析规则自适应学习过程,自动地生成相应的解析规则。

根据本公开的实施例,方法100进一步包括:在遍历日志简档储存库之前,当用于生成日志数据的日志配置可访问时,根据日志配置来直接生成结构化日志简档和相应的解析规则。在软件开发过程中,通常使用log4j工具来协助生成日志,如果能够获得log4j的配置文件,则可以获得日志的生成规则。log4j(http://logging.apache.org/log4j)是一个强大的日志记录软件,其使用语法描述布局,例如,“%-5p[%t]:%m%n”可以生成5个字符的日志严重性+[线程名称]:消息+换行符。在日志的转换过程中,如果能够获得生成日志数据的日志配置(例如,log4j配置),则可以利用该log4j配置来直接生成日志简档以及相应的解析规则。如果无法获取log4j配置,则继续遍历日志简档储存库以获取结构化日志简档和解析规则。

继续参考图1,在步骤104处,使用解析规则将日志数据转换为结构化数据。通过以上生成的解析规则来对日志记录进行转换,将日志记录转化成结构化的数据,并且以如上所述的向量的形式存储转换后的结构化数据,解析规则可以自动地或者手动地被生成。

根据本公开的一个实施例,在方法100中,在使用解析规则将日志数据转换为结构化数据之后,可以设定基准时间,计算每条日志的时间戳与基准时间之间的时间差,并且利用时间差来替代结构化数据中的时间戳数据。根据本公开的另一个实施例,其中基准时间是第一条日志的时间戳或者是基于周期性的时间。

图7图示了根据本公开的实施例的通过相对编码来减少时间戳熵的示例。日志一般是连续地产生,并且两条日志之间的时间差常常比较接近,如果单独地存储每条日志的时间戳(例如“2013-01-2100:25:49”、“2013-01-2100:25:56”),则会占用较大存储空间。因此,可以通过相对编码(例如,时间戳垂直编码)来减少时间戳熵。在图7的示例中,选择第一条日志的时间为基准时间,则第二条日志的时间“2013-01-2100:25:56”可以被编码为相对时间“7000”,日志简档中的时间戳字段减少了15个字符,有效地减少了日志的存储空间。此外,基准时间还可以为基于周期性的时间,例如,将每小时的第一秒设置为基准时间。

继续参考图1,在步骤106处,对结构化数据进行编码,以减少日志的存储空间。现代sddc中,海量的日志正在不断地被产生,因此,在对日志记录正式化转换之后,日志所占的存储空间仍然非常庞大,因此,需要一种有效地编码方法,对转换后的日志数据进行编码,以减少日志的存储空间。

图8图示了根据本公开的实施例的基于列的角度对通用日志分段进行分析的示例。对于给定类型的产品日志而言,每个分段的值是有限集合的常量。对于给定类型的产品日志而言,日志内容是有限集合的常量。在图8的示例中,除了时间戳之外,其它字段的值均为有限集合,对于时间戳而言,可以通过图7中的相对编码来对时间戳进行编码;对于其它字段,可以利用基于列的方式的编码规则对这些字段进行编码。

图9图示了根据本公开的实施例的模块名称的有限集合的示例。例如,模块名称的有限集合包括18个值。根据本公开的实施例,其中对结构化数据进行编码包括:对于结构化数据中的各种类型的值,计算相同类型的值中的每个值的出现概率,以生成编码规则。根据本公开的另一实施例,其中生成编码规则包括:将出现概率较大的值编码为长度较短的值,其中出现概率与出现次数成正比。例如,在图9的示例中,计算有限集合中各个模块名称的出现概率,例如,在一万条日志记录中,模块名称innovationscontroller出现了总共3000次,则模块名称innovationscontroller的出现概率为30%,模块名称applicationcontroller出现了总共2200次,则模块名称applicationcontroller的出现概率为22%。

图10图示了根据本公开的实施例的对日志数据进行编码的示例。在图10的实施例中,将出现概率较大的值编码为长度较短的值包括:将出现概率最大的值编码为值“1”。由于模块名称innovationscontroller的出现概率在所有模块中最高,因此,可以将值innovationscontroller编码值为值“1”,将出现概率第二高的值applicationcontroller编码为值“2”,则在编码后的日志向量中,模块名称一列中所有的值“1”将代表模块名称“innovationscontroller”,所有的值“2”将代表模块名称“applicationcontroller”。同理,在图10的示例中,将其他列中出现概率最高的“index”、“get”、“parameters”也分别被编码为值“1”。

图11图示了根据本公开的实施例的编码规则的自适应学习生成过程的流程图。可选地,生成编码规则包括:根据编码规则自适应学习过程来自动生成编码规则。如图11所示,通过训练日志和日志简档储存库,能够得到结构化的日志数据,分段编码学习模块将记录日志简档中的每个日志分段(列)的所有可能的值,并且根据这些值来产生编码规则。

根据本公开的一个实施例,其中编码规则是哈夫曼编码(huffmanencoding)。哈夫曼编码依据字符出现概率来构造异字头的平均长度最短的码字,是一种典型的无损压缩编码。利用哈夫曼编码对转换后的结构化数据进行编码,可以进一步减少日志的信息熵。

图12图示了根据本公开的另一实施例的日志存储优化方法的处理流程图。日志简档储存库中存储已知的日志简档向量,包括历史已经存储的日志的简档以及本领域常用的日志格式的简档。为了加速转换过程,可以对流日志到日志简档向量的映射进行高速缓存。将日志连续地输入到处理系统中,并且如果在高速缓存或者日志简档储存库中发现日志简档,则结构正式化模块将应用该日志简档。然后,内容模式识别模块将基于日志简档并且根据解析规则,来解析日志记录中的动态变量的值。对于日志内容部分,可以利用同样的技术进行解析处理。

对于日志的时间戳,时间戳正式化模块将基于基准时间来计算时间偏移量,时间偏移量例如是当前日志记录与之前日志记录之间的时间差。然后,对于日志记录的每个分段(列),分段编码模块利用相应的编码规则来生成经编码的正式化的日志,经编码的日志可以为一系列经编码的日志向量,编码规则可以由例如图11训练过程生成,也可以实时地计算各个字段(列)的有限集合,以实时动态地生成编码规则。

图13图示了根据本公开的另一实施例的日志数据的存储优化的结果的示例,可选地,方法100进一步包括步骤108:在使用编码规则对结构化数据进行编码之后,以日志向量的形式存储经编码的结构化数据。例如,图13中的日志记录将被转换和编码为向量“[st1,0,18,20,115352,457,0,436,200]”,根据日志简档和编码规则,可以很方便地获得日志向量中的各个字段的原始值及其含义。通过本公开实施例的日志存储优化方法,不仅实现了日志数据的结构化,而且显著地减少了日志的存储空间。

本公开的实施例的日志存储优化方法通过上下文感知的匹配方法和基于分段(列)的日志编码的方法,提高了日志存储效率(信息熵被减少)和日志分析效率(日志被转换为结构化的向量形式)。此外,本公开的实施例的方法之后,还可以采取现有技术的方法再进行日志的压缩和去重。本公开的实施例的方法能够生成经编码的结构化数据,结构化的日志之间更容易被比较,例如可以使用关联规则等分析技术对经编码的结构化数据进行进一步分析,因此本公开的实施例的方法能够很好地适合日志分析。

图14图示了根据本公开的实施例的一种日志存储优化设备1400,该设备包括:接收装置1402,用于接收日志数据;转换装置1404,用于使用解析规则将日志数据转换为结构化数据;以及编码装置1406,对结构化数据进行编码,以减少日志的存储空间。

根据本公开的一个实施例,该设备1400进一步包括:遍历装置,用于在接收到日志数据之后,遍历日志简档储存库,确定日志简档储存库中是否存在对应于日志数据的结构化日志简档,以生成解析规则,其中结构化日志简档存储库用于存储经转换的结构化数据。

根据本公开的另一个实施例,其中遍历装置进一步用于:在日志简档储存库中存在对应于日志数据的结构化日志简档时,根据对应的结构化日志简档来生成对应的解析规则。根据本公开的又一个实施例,其中遍历装置进一步用于:在日志简档储存库中不存在对应于日志数据的结构化日志简档时,通过自适应学习过程来获得对应于日志数据的结构化日志简档和解析规则、或者手动定义对应于日志数据的结构化日志简档和解析规则。

根据本公开的一个实施例,该设备1400进一步包括:日志配置检测装置,用于在遍历日志简档储存库之前,当用于生成日志数据的日志配置可访问时,根据日志配置来直接生成结构化日志简档和相应的解析规则。

根据本公开的另一个实施例,其中结构化日志简档至少包括日志的时间戳和内容数据。根据本公开的又一个实施例,其中解析规则是正则表达式或者字符串模板。

根据本公开的一个实施例,该设备1400进一步包括:时间戳编码装置,用于在使用解析规则将日志数据转换为结构化数据之后,设定基准时间,计算每条日志的时间戳与基准时间之间的时间差,并且利用时间差来替代结构化数据中的时间戳数据。根据本公开的另一个实施例,其中基准时间是第一条日志的时间戳或者是基于周期性的时间。

根据本公开的一个实施例,其中编码装置1406进一步用于:对于结构化数据中的各种类型的值,计算相同类型的值中的每个值的出现概率,以生成编码规则。根据本公开的另一个实施例,其中编码装置进一步用于将出现概率较大的值编码为长度较短的值,其中出现概率与出现次数成正比。根据本公开的又一个实施例,其中编码装置进一步用于:将出现概率最大的值编码为值“1”。

根据本公开的一个实施例,其中编码装置1406进一步用于:根据编码规则自适应学习过程来自动生成编码规则。根据本公开的另一个实施例,其中编码规则是哈夫曼编码。

根据本公开的一个实施例,可选地,该设备1400可以进一步包括:存储装置1408,用于在使用编码规则对结构化数据进行编码之后,以日志向量的形式存储经编码的结构化数据。

应当理解,设备1400可以利用各种方式来实现。例如,在某些实施例中,设备1400可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本公开的实施例的设备和装置不仅可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合来实现。

应当注意,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。

在下文中,将参考图15来描述可以在其中实现本公开的实施例的计算机设备。图15图示了可以在其中实现根据本公开的实施例的计算机设备1500的框图。

图15中所示的计算机系统包括cpu(中央处理单元)1501、ram(随机访问存储器)1502、rom(只读存储器)1503、系统总线1504、硬盘控制器1505、键盘控制器1506、串行接口控制器1507、并行接口控制器1508、显示器控制器1509、硬盘1510、键盘1511、串行外部设备1512、并行外部设备1513和显示器1514。在这些部件中,与系统总线1504相连的有cpu1501、ram1502、rom1503、硬盘控制器1505、键盘控制器1506、串行接口控制器1507、并行接口控制器1508和显示器控制器1509。硬盘1510与硬盘控制器1505相连,键盘1511与键盘控制器1506相连,串行外部设备1512与串行接口控制器1507相连,并行外部设备1513与并行接口控制器1508相连,以及显示器1514与显示器控制器1509相连。需要说明的是,图15所述的结构框图仅仅为了示例的目的而示出的,并非是对本公开的限制。在一些情况下,可以根据需要添加或者减少其中的一些设备。本公开的实施方式可以作为计算机程序代码存储在上计算机的例如硬盘1510的存储设备中,在被载入诸如内存中运行时,将使得cpu1501执行根据本公开的实施例的日志存储优化方法。

以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1