The invention provides a LZO compression method and system for exceptional log dump, the method comprises the following steps: S101, receiving kernel exceptional information feedback; S102, calling encapsulated LZO data compression function interface to compress abnormal information; S103, dumping compressed abnormal information data to storage medium; When the anomaly information service layer needs to obtain the anomaly log, it calls the encapsulated LZO data decompression function interface to decompress the anomaly information data; S105, feeds back the anomaly information after decompression to the anomaly information service layer. By re-encapsulating the native LZO data compression interface for exceptional log dump, the original complex interface algorithm is encapsulated into four functional interfaces. Because of encapsulating the complex operation of the native LZO interface algorithm itself, the user does not need to care about the LZO algorithm itself, has no learning cost, and does not need to know the compression algorithm clearly. The technical details of the law are simple and easy to maintain.
【技术实现步骤摘要】
一种用于异常日志转储的LZO压缩方法及系统
本专利技术涉及文件压缩
,特别是一种用于异常日志转储的LZO压缩方法及系统。
技术介绍
Linux下目前存在多种压缩算法库,针对不同的应用场景,不同的算法有各自不同的特点。当需要在项目中引入一种解压缩算法需求时,需要从解压缩速度、压缩率以及是否需要占用额外内存等多个方面来进行选择最合适的算法。目前,较新的Linux内核已经移植了多种解压缩算法库,从内核使用情况来看,842没有解压接口,lz4只有zram模块用到,xz用于解压.xz文件,而ZLIB和LZO更常规些。ZLIB是一个开源的算法库,很多软件均采用此种压缩算法,可以作为一种标准、通用的算法库。该算法支持无损压缩,对于线程也是安全的,提供了友好的解压缩函数接口,并且也提供了GZIP文件的函数读写接口,使用上简单易行,没有多余的复杂操作。另外,该算法库还考虑了处理器和内存资源的适配控制操作,在计算性能有限或者内存资源受限的情况下,可以给解压缩操作配置不同的参数,降低其对处理器或者内存的占用。且ZLIB压缩率非常高,达到13.4%的压缩率,压缩速度为21MB/s,解压缩速度为118MB/s,适用于绝大多数的应用场景。LZO是一种实时数据压缩库(areal-timedatacompressionlibrary),此种算法库更加重视数据的压缩速度,更加适用于需要快速完成压缩操作的场景。LZO同样遵循GUN的GPL使用许可。LZO也是一种无损压缩算法,压缩率也比较理想,最高可达到20.5%的压缩率,压缩速度为135MB/s,解压缩速度为410MB/s。但在压缩率 ...
【技术保护点】
1.一种用于异常日志转储的LZO压缩方法,其特征在于,包括以下步骤:S101、接收内核异常信息反馈;S102、调用封装的LZO数据压缩函数接口,将异常信息进行压缩;S103、将压缩后的异常信息数据转储到存储介质;S104、当异常信息服务层需要获取异常日志时,调用封装的LZO数据解压缩函数接口,对异常信息数据进行解压缩;S105、将解压缩后的异常信息反馈给异常信息服务层。
【技术特征摘要】
1.一种用于异常日志转储的LZO压缩方法,其特征在于,包括以下步骤:S101、接收内核异常信息反馈;S102、调用封装的LZO数据压缩函数接口,将异常信息进行压缩;S103、将压缩后的异常信息数据转储到存储介质;S104、当异常信息服务层需要获取异常日志时,调用封装的LZO数据解压缩函数接口,对异常信息数据进行解压缩;S105、将解压缩后的异常信息反馈给异常信息服务层。2.根据权利要求1所述的一种用于异常日志转储的LZO压缩方法,其特征在于,在所述调用封装的LZO数据压缩函数接口之前以及调用封装的LZO数据解压缩函数接口之前均需调用内存资源申请函数,所述内存资源申请函数执行的操作内容具体为:申请8K的额外内存,并且压缩数据或解压缩数据时也需要申请一块数据内存用于存放中转数据。3.根据权利要求1所述的一种用于异常日志转储的LZO压缩方法,其特征在于,在所述调用封装的LZO数据压缩函数接口之后以及调用封装的LZO数据解压缩函数接口之后均需调用内存资源释放函数。4.根据权利要求2所述的一种用于异常日志转储的LZO压缩方法,其特征在于,所述封装的LZO数据压缩函数执行的操作内容具体为:通过一个互斥锁对压缩过程加以线程保护,然后调用内核已有的函数封装lzo1x_1_compress,并传入参数,发起数据压缩处理,压缩后的数据保存在内存资源申请函数申请获得的数据内存中,并保存压缩后数据的长度,随后对数据长度进行判断,即压缩后的数据大小是否大于调用方预留的用于保存压缩后数据的大小,如果是则作异常处理,否则直接将得到的压缩数据拷贝到数据内存中,并返回压缩数据大小。5.根据权利要求2或4所述的一种用于异常日志转储的LZO压缩方法,其特征在于,所述调用封装的LZO数据解压缩函数执行的操作内容具体为:通过一个互斥锁对解压缩过程加以线程保护,调用内核已有的函数封装lzo1x_1_compress,并传入参数,发起数据解压缩处理,并对函数返回的解压后数据大小进行判断,只有在解压后数据大小等于原始数据大小时,解...
【专利技术属性】
技术研发人员:王鹏,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。