CN111045782B - 日志处理方法、装置、电子设备和计算机可读存储介质 - Google Patents

日志处理方法、装置、电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN111045782B
CN111045782B CN201911142773.2A CN201911142773A CN111045782B CN 111045782 B CN111045782 B CN 111045782B CN 201911142773 A CN201911142773 A CN 201911142773A CN 111045782 B CN111045782 B CN 111045782B
Authority
CN
China
Prior art keywords
log
data
processing thread
log data
processing
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
Application number
CN201911142773.2A
Other languages
English (en)
Other versions
CN111045782A (zh
Inventor
王业通
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201911142773.2A priority Critical patent/CN111045782B/zh
Publication of CN111045782A publication Critical patent/CN111045782A/zh
Application granted granted Critical
Publication of CN111045782B publication Critical patent/CN111045782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种日志处理方法、装置、电子设备和计算机可读存储介质。该方法包括:创建业务处理线程以及日志处理线程;通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中;通过所述日志处理线程从所述队列中获取所述日志数据,并将所述日志数据输出到预设的日志文件。本发明引入了日志处理线程,采用异步处理方式,由业务处理线程获取应用程序运行过程中生成的日志数据,并通过队列发送给日志处理线程,由日志处理线程将日志数据输出到日志文件,将大开销的日志处理任务和数据处理任务有效地隔离开,降低业务处理线程的日志处理压力,改善数据处理能力,提升业务处理线程的数据处理效率。

Description

日志处理方法、装置、电子设备和计算机可读存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种日志处理方法、装置、电子设备和计算机可读存储介质。
背景技术
随着互联网的快速发展和业务量的不断提高,基于网络的数据访问流量迅速增长,特别是对数据中心、大型企业以及门户网站等的访问流量甚至达到了10Gb/s的级别。相对于网络技术的发展,网络带宽和应用服务的增长远远高于服务器处理速度和内存访问速度的增长,而且在网络带宽增长的同时用户数量也在不断增长,这造成服务器的资源被消耗严重,使得服务器成为了网络瓶颈,也往往成为网络故障点。因此,组建服务器集群,利用负载均衡技术在服务器集群间进行业务均衡成为解决这些问题的主要方案。
目前,为了提高负载均衡性能,很多新技术被应用在负载均衡器上。例如:DPVS(Data Plane Development Kit-Virtual Server,数据平面开发套件虚拟服务器)负载均衡器是基于DPDK(Data Plane Development Kit,数据平面开发套件)的虚拟服务器(Virtual Server),从而使用DPDK实现了高性能四层负载均衡器,可以通过避免中断、无锁化、CPU(central processing unit,中央处理器)亲和、大页内存等技术,提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。
但是,当DPVS负载均衡器出现异常时,例如:当内存资源不足或其他资源不足时,DPVS负载均衡器会因为处理异常信息对应的日志数据导致数据处理效率低下。具体而言,DPVS负载均衡器采用多核多线程轮询的方式打印日志数据。也即是说,在DPVS负载均衡器中,数据核和线程一一对应,在多个数据核之间轮询时,被轮询的数据核对应的线程通过IO(Input/Output,输入/输出)接口操作打印该被轮询的数据核生成的日志数据,但是由于IO接口操作的时间较长,而且需要等待IO接口操作完成之后才可以轮询下一个数据核,从而导致轮询过程时间过长。当应用程序运行过程中出现异常时,数据核会大量打印这种异常信息的日志数据,降低了数据处理效率。
发明内容
本发明实施例的目的在于提供一种日志处理方法、装置、电子设备和计算机可读存储介质,以解决DPVS负载均衡器出现异常时,DPVS负载均衡器会因为处理异常信息对应的日志数据导致数据处理效率低下。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种日志处理方法,包括:创建业务处理线程以及日志处理线程;通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中;通过所述日志处理线程从所述队列中获取所述日志数据,并将所述日志数据输出到预设的日志文件。
其中,所述创建业务处理线程以及日志处理线程,包括:在DPVS负载均衡器创建多个业务处理线程以及一个日志处理线程;其中,每个所述业务处理线程对应绑定一个业务处理数据核,所述日志处理线程对应绑定一个日志处理数据核。
其中,所述将所述日志数据输出到预设的日志文件,包括:根据所述日志数据的字段信息,确定生成所述日志数据的业务处理数据核;根据所述业务处理数据核对应的业务处理线程,将所述日志数据输出到预先为所述业务处理线程对应设置的日志文件中。
其中,在通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中的过程中,还包括:如果所述预设类型的队列发生阻塞,则暂停通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中,或者,通过所述业务处理线程将仅保留预设字段信息的日志数据写入预设类型的队列中。
其中,所述预设字段信息至少包括以下之一:异常代码对应的函数名和行号。
其中,在将所述日志数据输出到预设的日志文件之前,还包括:如果所述日志数据的数量为多个,则通过所述日志处理线程对每个所述日志数据执行哈希运算,得到每个所述日志数据对应的哈希值;根据所述多个日志数据分别对应的哈希值,对所述多个日志数据执行去重处理,得到无重复的多个日志数据;所述将所述日志数据输出到预设的日志文件,包括:通过输入/输出IO接口操作,将所述无重复的多个日志数据输出到预设的日志文件。
其中,所述队列的类型,包括:无锁队列和/或消息队列。
在本发明实施的第二方面,还提供了一种日志处理装置,包括:创建模块,用于创建业务处理线程以及日志处理线程;写入模块,用于通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中;输出模块,用于通过所述日志处理线程从所述队列中获取所述日志数据,并将所述日志数据输出到预设的日志文件。
在本发明实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的方法步骤。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的方法。
本发明实施例提供的一种日志处理方法、装置、电子设备和计算机可读存储介质,本发明引入了日志处理线程,采用异步处理方式,由业务处理线程获取应用程序运行过程中生成的日志数据,并通过队列发送给日志处理线程,由日志处理线程将日志数据输出到日志文件,将大开销的日志处理任务和数据处理任务有效地隔离开,降低业务处理线程的日志处理压力,改善数据处理能力,提升业务处理线程的数据处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为根据本发明一实施例的日志处理方法的流程图;
图2为根据本发明一实施例的日志处理方法的具体流程图;
图3为根据本发明一实施例的日志处理方法的示意图;
图4为根据本发明一实施例的日志处理装置的结构图;
图5为根据本发明一实施例的电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提供一种日志处理方法。本实施例的执行主体为需要处理日志数据的设备。例如:执行主体为服务器、负载均衡器等。该负载均衡器可以是DPVS负载均衡器。
如图1所示,为根据本发明一实施例的日志处理方法的流程图。
步骤S110,创建业务处理线程以及日志处理线程。
业务处理线程,用于将应用程序运行过程中生成的日志数据传递给日志处理线程。该应用程序运行在本实施例的执行主体中。
日志处理线程,用于将业务处理线程传递的日志数据输出到日志文件中。
在本实施例中,利用DPVS负载均衡器的CPU亲和性,可以在DPVS负载均衡器创建多个业务处理线程以及一个日志处理线程。其中,每个业务处理线程对应绑定一个业务处理数据核,日志处理线程对应绑定一个日志处理数据核。
步骤S120,通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中。
在本实施例中,业务处理线程可以通过预设类型的队列将日志数据传递给日志处理线程。所述队列的类型,包括:无锁队列和/或消息队列。
在日志数据中,至少包括以下字段信息:异常代码对应的函数名和行号。当然,在日志数据中,还可以包括以下字段信息:生成该日志数据的数据核的信息和自定义字段信息。该数据核的信息例如是数据核的ID。该自定义字段信息可以根据需求而设置,例如:异常代码所在的代码模块名称。
具体而言,在该应用程序运行过程,该数据核生成日志数据,业务处理线程获取该日志数据,并将该日志数据写入预设类型的队列中。数据核与业务处理线程存在对应关系,业务处理线程获取对应的数据核生成的日志数据,这样根据日志数据中的数据核的信息可以确定获取该日志数据的业务处理线程。
在通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中的过程中,该预设类型的队列可能会出现阻塞的问题,如果所述预设类型的队列发生阻塞,则暂停通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中,或者,通过所述业务处理线程将仅保留预设字段信息的日志数据写入预设类型的队列中。其中,所述预设字段信息可以是日志数据中的重要信息,例如:预设字段信息至少包括以下之一:异常代码对应的函数名和行号。在日志数据中仅保留重要的字段信息可以缩短日志数据的长度,减小日志处理线程的处理压力。
步骤S130,通过所述日志处理线程从所述队列中获取所述日志数据,并将所述日志数据输出到预设的日志文件。
通过日志处理线程从所述队列中获取日志数据并缓存,并且,每间隔预设时间段,根据缓存的日志数据的数量的不同,采用相同或者不同的输出方式,将缓存的日志数据输出到预设的日志文件。例如:
如果所述日志数据的数量为一个,则直接通过IO接口操作,将所述日志数据输出到预设的日志文件。
如果所述日志数据的数量为多个,则通过所述日志处理线程对每个所述日志数据执行哈希运算,得到每个所述日志数据对应的哈希值;根据所述多个日志数据分别对应的哈希值,对所述多个日志数据执行去重处理,得到无重复的多个日志数据;通过IO(Input/Output,输入/输出)接口操作,将所述无重复的多个日志数据输出到预设的日志文件。进一步地,该去重处理,包括:查询哈希值相同的多个日志数据,在哈希值相同的多个日志数据中,保留其中一个日志数据。
上例采用不同的输出方式将日志数据输出到预设的日志文件。当日志数据较多时,尤其是针对重复性较强的异常日志数据,通过对日志数据进行去重处理,可以过滤掉大量重复的日志数据,减少大量无意义的开销。
在本实施例中,业务处理线程的数量可以是多个,在将所述日志数据输出到预设的日志文件之前,可以为每个业务处理线程对应设置日志文件,也可以为多个业务处理线程设置共用的日志文件。如果为每个业务处理线程对应设置日志文件,则根据所述日志数据的字段信息,确定生成所述日志数据的业务处理数据核;根据所述业务处理数据核对应的业务处理线程,将所述日志数据输出到预先为所述业务处理线程对应设置的日志文件中。例如:该日志数据的字段信息可以数据核的ID。
在本实施例中,引入日志处理线程,采用异步处理方式,由业务处理线程获取应用程序运行过程中生成的日志数据,并通过队列发送给日志处理线程,由日志处理线程将日志数据输出到日志文件,将大开销的日志处理任务和数据处理任务有效地隔离开,降低业务处理线程的日志处理压力,改善数据处理能力,提升业务处理线程的数据处理效率。
下面将以在DPVS负载均衡器执行日志处理为例,对本发明的日志处理方法进行进一步地描述。
如图2所示,为根据本发明一实施例的日志处理方法的具体流程图。
步骤S210,创建多个业务处理线程以及一个日志处理线程,并将多个业务处理线程以及一个日志处理线程分别绑定对应的数据核。
在DPVS负载均衡器中包括多个数据核,创建的线程和数据核一一对应。
日志处理线程对应绑定一个日志处理数据核。该日志处理数据核用于为日志处理线程提供运算资源和存储资源。
每个业务处理线程对应绑定一个业务处理数据核。每个业务处理数据核用于为业务处理线程提供运算资源和存储资源,并且每个业务处理数据核运行应用程序的部分代码,并且在该部分代码运行过程中生成日志数据。
步骤S220,多个业务处理线程分别将对应数据核(业务处理数据核)生成的日志数据写入预设的无锁队列中。
可以为每个业务处理线程对应设置一个无锁队列,当然也可以为多个业务处理线程对应设置共用的无锁队列。业务处理线程将对应的业务处理数据核生成的日志数据写入该业务处理线程对应的无锁队列之中。
如图3所示,为根据本发明一实施例的日志处理方法的示意图。DPVS负载均衡器中包括n个数据核(n>1),每个数据核对应绑定一个业务处理线程,每个业务处理线程对应一个无锁队列,这样,共设置n个无锁队列,业务处理线程将对应数据核生成的日志数据写入对应的无锁队列中,如:业务处理线程1将数据核1生成的日志写入无锁队列1中。
在向无锁队列写入日志数据的过程中,如果无锁队列被打满(阻塞),则可以暂停向该无锁队列写入日志数据,直接丢弃需要向该无锁队列写入的日志数据;也可以选取日志数据中的重要字段信息,缩短日志数据的长度,将缩短长度的日志数据写入该无锁队列中,这样既处理了日志数据,又不影响数据处理性能,从而在日志处理效率和数据处理性能之间达到平衡。
步骤S230,日志处理线程从所述无锁队列中获取日志数据,并每间隔预设时间段,对获取到的日志数据执行去重处理。
日志处理线程在获取到日志数据之后,不直接将日志数据输出到日志文件,而是将日志数据缓存。如图3所示,日志处理线程从无锁队列1至无锁队列n获取日志数据,并将获取到的日志数据缓存到对应的日志处理数据核的缓存中,以便对获取到的日志数据进行整合,得到无重复的日志数据,之后,将无重复的日志数据输出到日志文件中。
步骤S240,日志处理线程将去重处理后得到的日志数据输出到预设的日志文件中。
在本实施例中,通过异步处理的方式,由多个业务处理线程各自负责获取对应业务处理数据核产生的日志数据,由日志处理线程将多个业务处理数据核产生的日志数据统一输出到日志文件中,从而将大开销的日志处理任务和数据处理任务有效地隔离开,缓解业务处理数据核的日志打印压力,使得各个业务处理数据核在出现异常的情况仍能够高效地执行数据处理任务。通过本实施例解决了异常情况下数据核处理能力下降的问题,有效地提高了DPVS负载均衡器的稳定性,从而为高并发、大流量的业务提供了稳定的网络环境。
本发明实施例还提供了一种日志处理装置。如图4所示,为根据本发明一实施例的日志处理装置的结构图。
该日志处理装置,包括:创建模块410,写入模块420和输出模块430。
创建模块410,用于创建业务处理线程以及日志处理线程。
写入模块420,用于通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中。
输出模块430,用于通过所述日志处理线程从所述队列中获取所述日志数据,并将所述日志数据输出到预设的日志文件。
其中,所述创建模块410,用于:在DPVS负载均衡器创建多个业务处理线程以及一个日志处理线程;其中,每个所述业务处理线程对应绑定一个业务处理数据核,所述日志处理线程对应绑定一个日志处理数据核。
其中,所述输出模块430,进一步用于:根据所述日志数据的字段信息,确定生成所述日志数据的业务处理数据核;根据所述业务处理数据核对应的业务处理线程,将所述日志数据输出到预先为所述业务处理线程对应设置的日志文件中。
其中,所述写入模块420,还用于在通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中的过程中,如果所述预设类型的队列发生阻塞,则暂停通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中,或者,通过所述业务处理线程将仅保留预设字段信息的日志数据写入预设类型的队列中。
其中,所述预设字段信息至少包括以下之一:异常代码对应的函数名和行号。
其中,所述输出模块430,进一步用于:在将所述日志数据输出到预设的日志文件之前,如果所述日志数据的数量为多个,则通过所述日志处理线程对每个所述日志数据执行哈希运算,得到每个所述日志数据对应的哈希值;根据所述多个日志数据分别对应的哈希值,对所述多个日志数据执行去重处理,得到无重复的多个日志数据;通过输入/输出IO接口操作,将所述无重复的多个日志数据输出到预设的日志文件。
其中,所述队列的类型,包括:无锁队列和/或消息队列。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器510、通信接口520、存储器530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。
存储器530,用于存放计算机程序。
处理器510,用于执行存储器530上所存放的程序时,实现如下步骤:创建业务处理线程以及日志处理线程;通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中;通过所述日志处理线程从所述队列中获取所述日志数据,并将所述日志数据输出到预设的日志文件。
其中,所述创建业务处理线程以及日志处理线程,包括:在DPVS负载均衡器创建多个业务处理线程以及一个日志处理线程;其中,每个所述业务处理线程对应绑定一个业务处理数据核,所述日志处理线程对应绑定一个日志处理数据核。
其中,所述将所述日志数据输出到预设的日志文件,包括:根据所述日志数据的字段信息,确定生成所述日志数据的业务处理数据核;根据所述业务处理数据核对应的业务处理线程,将所述日志数据输出到预先为所述业务处理线程对应设置的日志文件中。
其中,在通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中的过程中,还包括:如果所述预设类型的队列发生阻塞,则暂停通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中,或者,通过所述业务处理线程将仅保留预设字段信息的日志数据写入预设类型的队列中。
其中,所述预设字段信息至少包括以下之一:异常代码对应的函数名和行号。
其中,在将所述日志数据输出到预设的日志文件之前,还包括:如果所述日志数据的数量为多个,则通过所述日志处理线程对每个所述日志数据执行哈希运算,得到每个所述日志数据对应的哈希值;根据所述多个日志数据分别对应的哈希值,对所述多个日志数据执行去重处理,得到无重复的多个日志数据;所述将所述日志数据输出到预设的日志文件,包括:通过输入/输出IO接口操作,将所述无重复的多个日志数据输出到预设的日志文件。
其中,所述队列的类型,包括:无锁队列和/或消息队列。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的日志处理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的日志处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (8)

1.一种日志处理方法,其特征在于,包括:
创建业务处理线程以及日志处理线程;
所述创建业务处理线程以及日志处理线程,包括:
在数据平面开发套件虚拟服务器DPVS负载均衡器创建多个业务处理线程以及一个日志处理线程;其中,每个所述业务处理线程对应绑定一个业务处理数据核,所述日志处理线程对应绑定一个日志处理数据核;
通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中;
通过所述日志处理线程从所述队列中获取所述日志数据,并将所述日志数据输出到预设的日志文件;所述将所述日志数据输出到预设的日志文件,包括:根据所述日志数据的字段信息,确定生成所述日志数据的业务处理数据核;根据所述业务处理数据核对应的业务处理线程,将所述日志数据输出到预先为所述业务处理线程对应设置的日志文件中。
2.根据权利要求1所述的方法,其特征在于,在通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中的过程中,还包括:
如果所述预设类型的队列发生阻塞,则暂停通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中,或者,通过所述业务处理线程将仅保留预设字段信息的日志数据写入预设类型的队列中。
3.根据权利要求2所述的方法,其特征在于,所述预设字段信息至少包括以下之一:异常代码对应的函数名和行号。
4.根据权利要求1所述的方法,其特征在于,
在将所述日志数据输出到预设的日志文件之前,还包括:
如果所述日志数据的数量为多个,则通过所述日志处理线程对每个所述日志数据执行哈希运算,得到每个所述日志数据对应的哈希值;
根据所述多个日志数据分别对应的哈希值,对所述多个日志数据执行去重处理,得到无重复的多个日志数据;
所述将所述日志数据输出到预设的日志文件,包括:
通过输入/输出IO接口操作,将所述无重复的多个日志数据输出到预设的日志文件。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述队列的类型,包括:无锁队列和/或消息队列。
6.一种日志处理装置,其特征在于,包括:
创建模块,用于创建业务处理线程以及日志处理线程;所述创建业务处理线程以及日志处理线程,包括:在数据平面开发套件虚拟服务器DPVS负载均衡器创建多个业务处理线程以及一个日志处理线程;其中,每个所述业务处理线程对应绑定一个业务处理数据核,所述日志处理线程对应绑定一个日志处理数据核;
写入模块,用于通过所述业务处理线程将应用程序运行过程中生成的日志数据写入预设类型的队列中;
输出模块,用于通过所述日志处理线程从所述队列中获取所述日志数据,并将所述日志数据输出到预设的日志文件;所述将所述日志数据输出到预设的日志文件,包括:根据所述日志数据的字段信息,确定生成所述日志数据的业务处理数据核;根据所述业务处理数据核对应的业务处理线程,将所述日志数据输出到预先为所述业务处理线程对应设置的日志文件中。
7.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5中任一所述的方法步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一所述的方法步骤。
CN201911142773.2A 2019-11-20 2019-11-20 日志处理方法、装置、电子设备和计算机可读存储介质 Active CN111045782B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911142773.2A CN111045782B (zh) 2019-11-20 2019-11-20 日志处理方法、装置、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911142773.2A CN111045782B (zh) 2019-11-20 2019-11-20 日志处理方法、装置、电子设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111045782A CN111045782A (zh) 2020-04-21
CN111045782B true CN111045782B (zh) 2024-01-12

Family

ID=70232504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911142773.2A Active CN111045782B (zh) 2019-11-20 2019-11-20 日志处理方法、装置、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111045782B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113810337B (zh) * 2020-06-12 2023-08-08 天翼云科技有限公司 用于网络报文去重的方法、装置、以及存储介质
CN111858077A (zh) * 2020-07-15 2020-10-30 济南浪潮数据技术有限公司 一种存储***中io请求日志的记录方法、装置及设备
CN112306980A (zh) * 2020-10-30 2021-02-02 深圳市元征科技股份有限公司 日志处理方法及终端设备
CN112380001A (zh) * 2020-10-30 2021-02-19 网宿科技股份有限公司 日志输出方法、负载均衡设备及计算机可读存储介质
CN112948136A (zh) * 2021-02-02 2021-06-11 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 一种嵌入式操作***异步日志记录的实现方法
CN113342632A (zh) * 2021-07-07 2021-09-03 北京物芯科技有限责任公司 仿真数据自动化处理方法、装置、电子设备及存储介质
CN113420032A (zh) * 2021-07-20 2021-09-21 奇安信科技集团股份有限公司 一种日志的分类存储方法及装置
CN114265637A (zh) * 2021-12-24 2022-04-01 ***数智科技有限公司 档案管理***配置方法、***、电子设备以及存储介质
CN117891695B (zh) * 2024-03-14 2024-06-21 新华三技术有限公司 一种日志记录方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252405A (zh) * 2013-06-26 2014-12-31 腾讯科技(深圳)有限公司 日志信息的输出方法及装置
CN106708578A (zh) * 2016-12-23 2017-05-24 北京五八信息技术有限公司 基于双线程的日志输出方法及装置
CN106844143A (zh) * 2016-12-27 2017-06-13 微梦创科网络科技(中国)有限公司 一种日志去重处理方法及装置
CN108052675A (zh) * 2017-12-28 2018-05-18 惠州Tcl家电集团有限公司 日志管理方法、***及计算机可读存储介质
CN108132955A (zh) * 2016-12-01 2018-06-08 中移(苏州)软件技术有限公司 一种日志存储方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069790B2 (en) * 2013-03-14 2015-06-30 Stephen P. LORD Multi-threaded message passing journal

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252405A (zh) * 2013-06-26 2014-12-31 腾讯科技(深圳)有限公司 日志信息的输出方法及装置
CN108132955A (zh) * 2016-12-01 2018-06-08 中移(苏州)软件技术有限公司 一种日志存储方法及装置
CN106708578A (zh) * 2016-12-23 2017-05-24 北京五八信息技术有限公司 基于双线程的日志输出方法及装置
CN106844143A (zh) * 2016-12-27 2017-06-13 微梦创科网络科技(中国)有限公司 一种日志去重处理方法及装置
CN108052675A (zh) * 2017-12-28 2018-05-18 惠州Tcl家电集团有限公司 日志管理方法、***及计算机可读存储介质

Also Published As

Publication number Publication date
CN111045782A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
CN111045782B (zh) 日志处理方法、装置、电子设备和计算机可读存储介质
KR102563165B1 (ko) 메모리 액세스 요청 스케줄링 방법, 장치, 기기 및 저장 매체
US10613992B2 (en) Systems and methods for remote procedure call
CN110389905B (zh) 资源释放方法、资源分配方法、设备和计算机程序产品
CN110753112A (zh) 云服务的弹性伸缩方法和装置
US11201836B2 (en) Method and device for managing stateful application on server
US20180006970A1 (en) Technologies for scalable packet reception and transmission
US9424091B2 (en) Deploying software in a multi-instance node
EP2829972B1 (en) Method and apparatus for allocating stream processing unit
CN114595043A (zh) 一种io调度方法和装置
US20210117263A1 (en) Using Real-Time Analytics To Manage Application Features
US11108698B2 (en) Systems and methods for client-side throttling after server handling in a trusted client component
US10616317B2 (en) Method and system for affinity load balancing
US10664191B2 (en) System and method for providing input/output determinism based on required execution time
US10459776B2 (en) Transmission of large messages in computer systems
CN112579282A (zh) 数据处理方法、装置、***、计算机可读存储介质
CN110968370B (zh) 一种数据处理方法及装置
US12039378B2 (en) In-band modification of event notification preferences for server events
JP2019179487A (ja) 情報処理装置、制御方法、及びプログラム
CN115297169B (zh) 数据处理方法、装置、电子设备及介质
CN114185682B (zh) 日志输出方法、装置、电子设备及存储介质
CN111459649B (zh) 管理计算资源的存储器的方法、设备和计算机可读介质
CN114063891B (zh) 管理数据传输的方法、设备和计算机程序产品
CN116233039A (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