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