1.一种日志的处理方法,其特征在于,包括:
为待处理的日志文件分配多个线程,具体的,读取出日志文件的大小,读取处理器的数量以及内核数,并按照处理器的数量*每个处理器的内核数-1的公式分配线程;
根据所述多个线程的数量,对所述待处理的日志文件的数据进行初步分块,计算每个线程处理的日志分块的指针偏移值,然后判断每个分块的最后一行日志是否为断行,若是,将该最后一行日志进行补齐或者划分到下一个块,调整初步分块得到的各个块的大小,并修正初步分块之后各块的指针偏移值;
使用所述多个线程并行地对所述日志文件的各个块分别进行处理。
2.如权利要求1所述的方法,其特征在于,根据所述多个线程的数量,对所述待处理的日志文件的数据进行分块,具体包括:将日志文件的大小除以所述多个线程的数量,得到每个线程需处理的字节数;
根据所述每个线程需处理的字节数,对所述日志文件进行分块。
3.如权利要求1或2所述的方法,其特征在于,使用所述多个线程并行地对日志文件的各个块分别进行处理之后,还包括:判断所有线程是否都对完成对块的处理;
若是,对所有线程的处理结果执行去重、合并和输入数据库的操作。
4.一种日志的处理装置,其特征在于,包括:
分配模块,用于为待处理的日志文件分配多个线程,读取出日志文件的大小,读取处理器的数量以及内核数,并按照处理器的数量*每个处理器的内核数-1的公式分配线程;
分块模块,用于根据所述多个线程的数量,对所述待处理的日志文件的数据进行初步分块,计算每个线程处理的日志分块的指针偏移值,然后判断每个分块的最后一行日志是否为断行,若是,将该最后一行日志进行补齐或者划分到下一个块,调整初步分块得到的各个块的大小,并修正初步分块之后各块的指针偏移值;
并行处理模块,用于使用多个线程并行地对日志文件的各个块分别进行处理。
5.如权利要求4所述的装置,其特征在于,所述分块模块,具体用于将日志文件的大小除以所述多个线程的数量,得到每个线程需处理的字节数;根据所述每个线程需处理的字节数,对所述日志文件进行分块。
6.如权利要求4或5所述的装置,其特征在于,还包括:后处理模块,用于在使用所述多个线程并行地对日志文件的各个块分别进行处理之后,判断所有线程是否都对完成对块的处理;若是,对所有线程的处理结果执行去重、合并和输入数据库的操作。
7.一种服务器,其特征在于,所述服务器包括如权利要求4-6任一项所述的日志的处理装置。