CN109840142A - 基于云监控的线程控制方法、装置、电子设备及存储介质 - Google Patents
基于云监控的线程控制方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109840142A CN109840142A CN201811537798.8A CN201811537798A CN109840142A CN 109840142 A CN109840142 A CN 109840142A CN 201811537798 A CN201811537798 A CN 201811537798A CN 109840142 A CN109840142 A CN 109840142A
- Authority
- CN
- China
- Prior art keywords
- thread
- utilization rate
- request
- data
- application program
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000012544 monitoring process Methods 0.000 title claims abstract description 37
- 230000008569 process Effects 0.000 claims description 47
- 238000004590 computer program Methods 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 9
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000012797 qualification Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005314 correlation function Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 229910002804 graphite Inorganic materials 0.000 description 2
- 239000010439 graphite Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
一种基于云监控的线程控制方法,包括:当接收到数据请求时,获取系统当前运行的应用程序的进程信息;根据进程信息获取系统的当前线程数;根据当前线程数和预先配置的最大线程数,计算当前线程使用率;判断当前线程使用率是否大于预设线程使用率阈值;当当前线程使用率小于预设线程使用率阈值时,创建新的线程执行所述数据请求;当当前线程使用率大于或者等于预设线程使用率阈值时,将数据请求放入消息队列中。本发明还提供一种基于云监控的线程控制装置、电子设备及存储介质。本发明能够通过云监控当前线程使用率确定是否需要创建新的线程执行新的数据请求,使得系统运行的线程数永远保持或低于最优线程数,保证了系统资源能够最大程度得到合理化的利用。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于云监控的线程控制方法、装置、电子设备及存储介质。
背景技术
计算机系统中,会使用各种系统资源进行任务处理,当有任务需要处理时,系统会收到访问指定系统资源的请求,系统对该请求建立线程,然后利用所建立的线程对该请求进行处理。为了充分利用系统资源,通常会采用多线程方式实现对多个请求的并行处理。然而过高的线程数量会因资源争用、线程切换等导致过多的资源消耗在非必要任务操作上,使得系统因资源消耗过多而导致系统不稳定,影响对请求进行处理的效率。因此,需要对线程数量进行控制以使资源利用达到最优。
现有技术中,通常是在系统启动时,设置一个最大线程数量,并控制当前已建立的线程数量不大于所预先设置的该最大线程数量,进而实现线程控制。
然而,在系统运行负载较大的时候,如果继续根据现有技术中的最大线程数来建立线程,可能会出现建立的线程数量接近最大线程数,从而引起系统不稳定,或者引起系统运行卡死,进而影响系统的资源利用率。
发明内容
鉴于以上内容,有必要提出一种基于云监控的线程控制方法、装置、电子设备及存储介质,能够通过云监控系统当前线程使用率来确定是否需要创建新的线程执行新的数据请求,使得系统运行的线程数永远保持或低于最优线程数。
本发明的第一方面提供一种基于云监控的线程控制方法,所述方法包括:
当接收到数据请求时,获取系统当前运行的应用程序的进程信息;
根据所述进程信息获取系统的当前线程数;
根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率;
判断所计算的当前线程使用率是否大于预设线程使用率阈值;
当所计算的当前线程使用率小于所述预设线程使用率阈值时,创建新的线程执行所述数据请求;或者
当所计算的当前线程使用率大于或者等于预设线程使用率阈值时,将所述数据请求放入消息队列中。
根据本发明的一个优选实施例,所述根据所述进程信息获取系统的当前线程数包括:
获取当前运行的所有应用程序;
从每个运行的应用程序对应的进程信息中获取每个应用程序使用的线程数;
将每个应用程序使用的线程数进行累加,得到系统当前的线程数。
根据本发明的一个优选实施例,在所述创建新的线程处理所述数据请求时,所述方法还包括:
获取所述数据请求中的线程请求数;
计算所述线程请求数与所述当前线程数之和,得到未来线程数;
根据所述未来线程数计算未来线程使用率;
判断所述未来线程使用率是否小于所述预设线程使用率阈值;
当所述未来线程使用率小于或者等于所述预设线程使用率阈值时,创建所述线程请求数对应的线程执行所述数据请求。
根据本发明的一个优选实施例,当所述未来线程使用率大于所述预设线程使用率阈值时,所述方法还包括:
将所述数据请求放入消息队列中;
当有新的线程时,从所述消息队列中获取待处理的数据请求并对所述待处理的数据请求进行处理。
根据本发明的一个优选实施例,在所述获取系统当前运行的应用程序的进程信息时,所述方法还包括:
将所述进程信息存储到指定数据库,所述指定数据库为时间序列数据库。
根据本发明的一个优选实施例,所述方法还包括:
通过Grafana的采集agent,将所述应用程序的进程信息及对应所使用的线程信息传送至所述Grafana平台进行展示。
根据本发明的一个优选实施例,所述获取系统当前运行的应用程序的进程信息包括:
从应用程序的环境配置文件中获取所述应用程序的应用实例名称;
根据所述应用实例名称采集系统当前运行的应用程序的进程信息。
本发明的第二方面提供一种基于云监控的线程控制装置,所述装置包括:
第一获取模块,用于当接收到数据请求时,获取系统当前运行的应用程序的进程信息;
第二获取模块,用于根据所述进程信息获取系统的当前线程数;
计算模块,用于根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率;
判断模块,用于判断所计算的当前线程使用率是否大于预设线程使用率阈值;
创建模块,用于当所述判断模块判断所计算的当前线程使用率小于所述预设线程使用率阈值时,创建新的线程执行所述数据请求;
存储模块,用于当所述判断模块判断所计算的当前线程使用率大于或者等于预设线程使用率阈值时,将所述数据请求放入消息队列中。
本发明的第三方面提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的基于云监控的线程控制方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于云监控的线程控制方法。
本发明实施例提供的基于云监控的线程控制方法、装置、电子设备及存储介质,当接收到数据请求时,先获取系统当前运行的应用程序的进程信息;根据所述进程信息获取系统的当前线程数;然后再根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率;在所计算的当前线程使用率小于预设线程使用率阈值时,创建新的线程执行所述数据请求。能够在有新的数据请求时,可根据系统当前线程使用率确定是否需要创建新的线程执行新的数据请求,使得系统运行的线程数永远保持或低于最优线程数,保证了系统资源能够最大程度得到合理化的利用,使系统资源利用率能够保持最优,避免重新配置的线程数过大造成资源浪费,从而能够有效的保证系统正常运行又能节约系统资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一提供的基于云监控的线程控制方法的流程图。
图2是本发明实施例二提供的基于云监控的线程控制装置的功能模块图。
图3是本发明实施例三提供的电子设备的示意图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例的基于云监控的线程控制方法应用在电子设备中,也可以应用在电子设备和通过网络与所述电子设备进行连接的服务器所构成的硬件环境中,由服务器和电子设备共同执行。网络包括但不限于:广域网、城域网或局域网。
所述电子设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算电子设备。
所述对于需要进行基于云监控的线程控制方法的电子设备,可以直接在电子设备上集成本发明的方法所提供的基于云监控的线程控制功能,或者安装用于实现本发明的方法的客户端。再如,本发明所提供的方法还可以以软件开发工具包(Software DevelopmentKit,SDK)的形式运行在服务器等电子设备上,以SDK的形式提供基于云监控的线程控制功能的接口,服务器或其他电子设备通过提供的接口即可实现基于云监控的线程控制功能。
实施例一
图1是本发明实施例一提供的基于云监控的线程控制方法的流程图。所述基于云监控的线程控制方法对电子设备中的应用程序的当前线程数指标进行监控。根据不同的需求,该流程图中的执行顺序可以改变,某些步骤可以省略。
S11:当接收到数据请求时,获取系统当前运行的应用程序的进程信息。
电子设备的系统(本文简称为系统)可以运行一个应用程序,也可以运行多个应用程序。所述应用程序可以是java应用程序。系统在运行应用程序时,可以接收数据请求,例如其他应用程序的调用请求,请求运行应用程序。在接收到数据请求时,需获取系统当前运行的应用程序的进程信息,便于后续根据所述进程信息获取当前的线程数,从而决定是否创建新的线程处理所述数据请求。
应用程序的每个应用实例对应应用程序的一个进程。
在本实施例中,获取系统当前运行的应用程序的进程信息可以包括:
1)从应用程序的环境配置文件中获取应用程序的应用实例名称。
所述环境配置文件可以是env文件。读取应用程序的环境配置文件后,从读取的环境配置文件中获取应用实例名称spri_lcloud-rmp-prd-ins9740。
2)根据所述应用实例名称采集系统当前运行的应用程序的进程信息。
采集的应用程序的进程信息包括应用程序进程的进程标识符(ProcessIdentifier,PID)。进程标识符用于区分各个进程。进程标识符可以是一个数字编号,如四位的数字编号。
采集的应用程序的进程信息还可以包括应用程序进程所属的应用程序及包括的线程数。一个应用程序包括一个应用程序进程,一个应用程序进程可以包括一个线程,也可以包括多个线程,即一个应用程序可以对应一个或者多个线程。
采集的应用程序的进程信息还可以包括应用程序进程的状态。所述状态可以包括运行、睡眠、空闲等。
采集的应用程序的进程信息还可以包括应用程序进程的启动时间和日期、应用程序进程的优先级等。
通过springboot-monitor.jar包线程采集方法,收集JVM(Java VirtualMachine,Java虚拟机)里的所述进程信息及线程运行情况。
可以在所述操作系统命令中以所述应用实例名称作为限定条件,采集电子设备当前运行的应用程序的进程信息。例如,应用实例名称为spri_lcloud-rmp-prd-ins9740,则在操作系统命令中加上应用实例名称为spri_lcloud-rmp-prd-ins9740的限定条件,得到应用实例名称为spri_lcloud-rmp-prd-ins9740的应用程序的进程信息。
可以按照预设时间采集所述进程信息。例如,可以设置采集所述进程信息的时间间隔(例如每10分钟一次),按照所述时间间隔采集所述进程信息。又如,可以设置采集所述进程信息的具体时间(例如每个整点时间,如0点、1点、2点),按照所述具体时间采集所述进程信息。
采集的进程信息可以存储到指定数据库。
所述指定数据库可以是时间序列数据库(即时序数据库),例如OpenTSDB、nfluxDB。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。
OpenTSDB是基于Hbase的分布式的、可伸缩的时间序列数据库。存储到OpenTSDB的数据,是以metric为单位的,metric就是1个监控项,例如CPU使用率。OpenTSDB使用HBase作为存储,由于有良好的设计,因此对metric的数据存储支持到秒级别。OpenTSDB支持数据永久存储,即保存的数据不会主动删除;并且原始数据会一直保存(有些监控系统会将较久之前的数据聚合之后保存)。
InfluxDB是一个开源分布式时序、事件和指标数据库。InfluxDB使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。InfluxDB有三大特性:1.TimeSeries(时间序列):可以使用与时间有关的相关函数(如最大,最小,求和等);2.Metrics(度量):可以实时对大量数据进行计算;3.Eevents(事件):支持任意的事件数据。
优选的,所述方法还可以包括:通过Grafana的采集agent,将所述应用程序的进程信息及对应所使用的线程信息传送至所述Grafana平台进行展示。
可以生成监控信息展示界面,在所述监控信息展示界面中展示所述应用程序的进程信息及对应所使用的线程信息。
如果系统中运行的应用程序进程为多个,可以得到多个应用程序的进程信息及对应所使用的线程信息。
在一具体实施例中,可以通过Grafana展示所述应用程序的进程信息及对应所使用的线程信息。可以通过Grafana的采集agent,传送所述应用程序的进程信息及对应所使用的线程信息到Grafana平台展示。
Grafana是一个可视化面板(Dashboard),支持各种图表和布局展示,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana具有以下特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;支持多个数据源。
S12:根据所述进程信息获取系统的当前线程数。
本实施例中,所述当前线程数表示系统目前已经建立的线程数。
本实施例中,所述根据所述进程信息获取系统的当前线程数包括:获取当前运行的所有应用程序;从每个运行的应用程序对应的进程信息中获取每个应用程序使用的线程数;将每个应用程序使用的线程数进行累加,得到系统当前的线程数。
示例性的,假设系统当前运行了5个应用程序:应用程序1、应用程序2、应用程序3、应用程序4及应用程序5,其中,应用程序1当前使用1个线程,应用程序2当前使用3个线程,应用程序3当前使用3个线程,应用程序4当前使用2个线程,应用程序5当前使用1个线程,则运行的应用程序当前使用的总线程数为1+3+3+2+1=10。
S13:根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率。
所述最大线程数表示目前系统最多能够建立的线程数。
本实施例中,可以预先根据系统的初始配置文件配置最大线程数,该初始配置文件中存储有预先设置的初始线程数,该初始线程数可以是开发人员根据系统的硬件配置,确定的一个确保系统能够承载的合理值。因而,可以将初始配置文件中的初始线程数提取出来,作为系统的最大线程数。
应当理解的是,根据系统的初始配置文件确定的当前最大线程数是系统能够承载的线程数的合理值,系统运行的应用程序使用的总线程数是不会超过所述初始最大线程数的。
当前线程使用率=当前线程数/预先配置的最大线程数。
S14:判断所计算的当前线程使用率是否大于预设线程使用率阈值。
本实施例中,所述预设线程使用率阈值为预先设置的线程使用率的临界值,是能够保证系统正常且稳定运行的最佳值。示例性的,所述预设线程使用率阈值为80%。
当所计算的当前线程使用率大于或者等于预设线程使用率阈值时,执行S15。当所计算的当前线程使用率小于所述预设线程使用率阈值时,可以重复执行上述S16。
S15:将所述数据请求放入消息队列中。
本实施例中,当前线程使用率大于预设线程使用率阈值,即系统当前的线程数已接近系统的最大线程数,因而不可以再创建新的线程处理所述数据请求,否则创建新的线程可能会导致系统卡死或崩溃。
当前线程使用率大于预设线程使用率阈值时,可以暂时将所述数据请求放入内存中的消息队列中,当有新的线程时,从所述消息队列中获取待处理的数据请求并对所述待处理的数据请求进行处理。
S16:创建新的线程执行所述数据请求。
本实施例中,当前线程使用率小于所述预设线程使用率阈值时,即系统当前的线程数未达到系统的最大线程数,说明系统此时还可以承载更多的线程,因而可以创建新的线程处理所述数据请求。
示例性的,假设系统中的当前线程数为6,最大线程数为10,当前线程使用率为60%。由于当前线程使用率60%小于预设线程使用率阈值80%,因此,可以针对所述数据请求建立对应的新线程。
本实施例中,在针对新的数据请求建立对应的线程的时候,会先根据当前线程数和最大线程数计算当前线程使用率,根据当前线程使用率与预设线程使用率阈值的大小关系,进而确定是否建立新线程。这样,可以保证系统的当前线程数不会超过最佳线程数(是指刚好达到预设线程使用率阈值时对应的线程数),进而保证了系统的稳定运行。
进一步地,在所述创建新的线程处理所述数据请求时,所述方法还可以包括:
获取所述数据请求中的线程请求数;
计算所述线程请求数与所述当前线程数之和,得到未来线程数;
根据所述未来线程数计算未来线程使用率;
判断所述未来线程使用率是否小于所述预设线程使用率阈值;
当所述未来线程使用率大于所述预设线程使用率阈值时,将所述数据请求放入消息队列中;
当所述未来线程使用率小于或者等于所述预设线程使用率阈值时,创建所述线程请求数对应的线程执行所述数据请求。
本实施例中的数据请求可以携带有线程请求数,请求相应的线程执行所述数据请求。在获取到数据请求中的线程请求数之后,将所述线程请求数与系统的当前线程数进行加总得到未来预计运行的线程数;通过未来线程数得到未来线程使用率,并进一步判断未来线程使用率是否小于预设线程使用率阈值;在确定未来线程使用率小于所述预设线程使用率阈值时,创建所述线程请求数对应的线程执行所述数据请求。能够使得创建新的线程后也能保证系统运行的线程不会太多,保证系统运行的稳定性。
示例性的,假设系统中的当前线程数为6,最大线程数为10,数据请求中的线程请求数为2。则未来线程数为8(线程请求数2+当前线程数6=未来线程数8)。由于当前线程使用率80%等于预设线程使用率阈值80%,因此,可以针对所述数据请求建立3个新线程以执行所述数据请求。若数据请求中的线程请求数为3。则未来线程数为9(线程请求数3+当前线程数6=未来线程数9)。由于当前线程使用率90%大于预设线程使用率阈值80%,因此,不可以创建新的线程执行所述数据请求。否则,建立太多线程会占用过多系统资源,容易导致系统崩溃。
综上所述,本发明实施例一提供的基于云监控的线程控制方法,当接收到数据请求时,先获取系统当前运行的应用程序的进程信息;根据所述进程信息获取系统的当前线程数;然后再根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率;在所计算的当前线程使用率小于预设线程使用率阈值时,创建新的线程执行所述数据请求。能够在有新的数据请求时,可根据系统当前线程使用率确定是否需要创建新的线程执行新的数据请求,使得系统运行的线程数永远保持或低于最优线程数,保证了系统资源能够最大程度得到合理化的利用,使系统资源利用率能够保持最优,避免重新配置的线程数过大造成资源浪费,从而能够有效的保证系统正常运行又能节约系统资源。
另外,传统的主机层面的进程无法区分是应用程序进程还是操作系统进程,本发明可以获取运行的应用程序的进程信息,根据运行的应用程序的进程信息获取应用程序所使用的线程,从而提高了监控应用程序当前线程数及当前线程使用率的准确性。
以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
下面结合第2至3图,分别对实现上述基于云监控的线程控制方法的电子设备的功能模块及硬件结构进行介绍。
实施例二
图2为本发明基于云监控的线程控制装置较佳实施例中的功能模块图。
在一些实施例中,所述基于云监控的线程控制装置20运行于电子设备中。所述基于云监控的线程控制装置20可以包括多个由程序代码段所组成的功能模块。所述基于云监控的线程控制装置20中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行(详见图1及其相关描述)对电子设备中的应用程序的当前线程数指标进行监控。
本实施例中,所述基于云监控的线程控制装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:第一获取模块201、展示模块202、第二获取模块203、计算模块204、判断模块205、存储模块206及创建模块207。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。
第一获取模块201,用于当接收到数据请求时,获取系统当前运行的应用程序的进程信息。
电子设备的系统(后续简称为系统)可以运行一个应用程序,也可以运行多个应用程序。所述应用程序可以是java应用程序。系统在运行应用程序时,可以接收数据请求,例如其他应用程序的调用请求,请求运行应用程序。在接收到数据请求时,需获取系统当前运行的应用程序的进程信息,便于后续根据所述进程信息获取当前的线程数,从而决定是否创建新的线程处理所述数据请求。
应用程序的每个应用实例对应应用程序的一个进程。
在本实施例中,所述第一获取模块201获取系统当前运行的应用程序的进程信息可以包括:
1)从应用程序的环境配置文件中获取应用程序的应用实例名称。
所述环境配置文件可以是env文件。读取应用程序的环境配置文件后,从读取的环境配置文件中获取应用实例名称spri_lcloud-rmp-prd-ins9740。
2)根据所述应用实例名称采集系统当前运行的应用程序的进程信息。
采集的应用程序的进程信息包括应用程序进程的进程标识符(ProcessIdentifier,PID)。进程标识符用于区分各个进程。进程标识符可以是一个数字编号,如四位的数字编号。
采集的应用程序的进程信息还可以包括应用程序进程所属的应用程序及包括的线程数。一个应用程序包括一个应用程序进程,一个应用程序进程可以包括一个线程,也可以包括多个线程,即一个应用程序可以对应一个或者多个线程。
采集的应用程序的进程信息还可以包括应用程序进程的状态。所述状态可以包括运行、睡眠、空闲等。
采集的应用程序的进程信息还可以包括应用程序进程的启动时间和日期、应用程序进程的优先级等。
通过springboot-monitor.jar包线程采集方法,收集JVM(Java VirtualMachine,Java虚拟机)里的所述进程信息及线程运行情况。
可以在所述操作系统命令中以所述应用实例名称作为限定条件,采集电子设备当前运行的应用程序的进程信息。例如,应用实例名称为spri_lcloud-rmp-prd-ins9740,则在操作系统命令中加上应用实例名称为spri_lcloud-rmp-prd-ins9740的限定条件,得到应用实例名称为spri_lcloud-rmp-prd-ins9740的应用程序的进程信息。
可以按照预设时间采集所述进程信息。例如,可以设置采集所述进程信息的时间间隔(例如每10分钟一次),按照所述时间间隔采集所述进程信息。又如,可以设置采集所述进程信息的具体时间(例如每个整点时间,如0点、1点、2点),按照所述具体时间采集所述进程信息。
采集的进程信息可以存储到指定数据库。
所述指定数据库可以是时间序列数据库(即时序数据库),例如OpenTSDB、nfluxDB。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。
OpenTSDB是基于Hbase的分布式的、可伸缩的时间序列数据库。存储到OpenTSDB的数据,是以metric为单位的,metric就是1个监控项,例如CPU使用率。OpenTSDB使用HBase作为存储,由于有良好的设计,因此对metric的数据存储支持到秒级别。OpenTSDB支持数据永久存储,即保存的数据不会主动删除;并且原始数据会一直保存(有些监控系统会将较久之前的数据聚合之后保存)。
InfluxDB是一个开源分布式时序、事件和指标数据库。InfluxDB使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。InfluxDB有三大特性:1.TimeSeries(时间序列):可以使用与时间有关的相关函数(如最大,最小,求和等);2.Metrics(度量):可以实时对大量数据进行计算;3.Eevents(事件):支持任意的事件数据。
优选的,所述基于云监控的线程控制装置20还可以包括:展示模块模块202,用于通过Grafana的采集agent,将所述应用程序的进程信息及对应所使用的线程信息传送至所述Grafana平台进行展示。
可以生成监控信息展示界面,在所述监控信息展示界面中展示所述应用程序的进程信息及对应所使用的线程信息。
如果系统中运行的应用程序进程为多个,可以得到多个应用程序的进程信息及对应所使用的线程信息。
在一具体实施例中,可以通过Grafana展示所述应用程序的进程信息及对应所使用的线程信息。可以通过Grafana的采集agent,传送所述应用程序的进程信息及对应所使用的线程信息到Grafana平台展示。
Grafana是一个可视化面板(Dashboard),支持各种图表和布局展示,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana具有以下特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;支持多个数据源。
第二获取模块203,用于根据所述进程信息获取系统的当前线程数。
本实施例中,所述当前线程数表示系统目前已经建立的线程数。
本实施例中,所述根据所述进程信息获取系统的当前线程数包括:获取当前运行的所有应用程序;从每个运行的应用程序对应的进程信息中获取每个应用程序使用的线程数;将每个应用程序使用的线程数进行累加,得到系统当前的线程数。
示例性的,假设系统当前运行了5个应用程序:应用程序1、应用程序2、应用程序3、应用程序4及应用程序5,其中,应用程序1当前使用1个线程,应用程序2当前使用3个线程,应用程序3当前使用3个线程,应用程序4当前使用2个线程,应用程序5当前使用1个线程,则运行的应用程序当前使用的总线程数为1+3+3+2+1=10。
计算模块204,用于根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率。
所述最大线程数表示目前系统最多能够建立的线程数。
本实施例中,可以预先根据系统的初始配置文件配置最大线程数,该初始配置文件中存储有预先设置的初始线程数,该初始线程数可以是开发人员根据系统的硬件配置,确定的一个确保系统能够承载的合理值。因而,可以将初始配置文件中的初始线程数提取出来,作为系统的最大线程数。
应当理解的是,根据系统的初始配置文件确定的当前最大线程数是系统能够承载的线程数的合理值,系统运行的应用程序使用的总线程数是不会超过所述初始最大线程数的。
当前线程使用率=当前线程数/预先配置的最大线程数。
判断模块205,用于判断所计算的当前线程使用率是否大于预设线程使用率阈值。
本实施例中,所述预设线程使用率阈值为预先设置的线程使用率的临界值,是能够保证系统正常且稳定运行的最佳值。示例性的,所述预设线程使用率阈值为80%。
存储模块206,用于当所述判断模块205判断所计算的当前线程使用率大于或者等于预设线程使用率阈值时,将所述数据请求放入消息队列中。
本实施例中,当前线程使用率大于预设线程使用率阈值,即系统当前的线程数已接近系统的最大线程数,因而不可以再创建新的线程处理所述数据请求,否则创建新的线程可能会导致系统卡死或崩溃。
当前线程使用率大于预设线程使用率阈值时,可以暂时将所述数据请求放入内存中的消息队列中,当有新的线程时,从所述消息队列中获取待处理的数据请求并对所述待处理的数据请求进行处理。
创建模块207,用于当所述判断模块205判断所计算的当前线程使用率小于所述预设线程使用率阈值时,创建新的线程执行所述数据请求。
本实施例中,当前线程使用率小于所述预设线程使用率阈值时,即系统当前的线程数未达到系统的最大线程数,说明系统此时还可以承载更多的线程,因而可以创建新的线程处理所述数据请求。
示例性的,假设系统中的当前线程数为6,最大线程数为10,当前线程使用率为60%。由于当前线程使用率60%小于预设线程使用率阈值80%,因此,可以针对所述数据请求建立对应的新线程。
本实施例中,在针对新的数据请求建立对应的线程的时候,会先根据当前线程数和最大线程数计算当前线程使用率,根据当前线程使用率与预设线程使用率阈值的大小关系,进而确定是否建立新线程。这样,可以保证系统的当前线程数不会超过最佳线程数(是指刚好达到预设线程使用率阈值时对应的线程数),进而保证了系统的稳定运行。
进一步地,在所述创建模块207创建新的线程处理所述数据请求时,所述第二获取模块203,还用于获取所述数据请求中的线程请求数;
所述计算模块204,还用于计算所述线程请求数与所述当前线程数之和,得到未来线程数;
所述计算模块204,还用于根据所述未来线程数计算未来线程使用率;
所述判断模块205,还用于判断所述未来线程使用率是否小于所述预设线程使用率阈值;
所述存储模块206,还用于当所述判断模块205判断所述未来线程使用率大于所述预设线程使用率阈值时,将所述数据请求放入消息队列中;
所述创建模块207,还用于当所述未来线程使用率小于或者等于所述预设线程使用率阈值时,创建所述线程请求数对应的线程执行所述数据请求。
本实施例中的数据请求可以携带有线程请求数,请求相应的线程执行所述数据请求。在获取到数据请求中的线程请求数之后,将所述线程请求数与系统的当前线程数进行加总得到未来预计运行的线程数;通过未来线程数得到未来线程使用率,并进一步判断未来线程使用率是否小于预设线程使用率阈值;在确定未来线程使用率小于所述预设线程使用率阈值时,创建所述线程请求数对应的线程执行所述数据请求。能够使得创建新的线程后也能保证系统运行的线程不会太多,保证系统运行的稳定性。
示例性的,假设系统中的当前线程数为6,最大线程数为10,数据请求中的线程请求数为2。则未来线程数为8(线程请求数2+当前线程数6=未来线程数8)。由于当前线程使用率80%等于预设线程使用率阈值80%,因此,可以针对所述数据请求建立3个新线程以执行所述数据请求。若数据请求中的线程请求数为3。则未来线程数为9(线程请求数3+当前线程数6=未来线程数9)。由于当前线程使用率90%大于预设线程使用率阈值80%,因此,不可以创建新的线程执行所述数据请求。否则,建立太多线程会占用过多系统资源,容易导致系统崩溃。
综上所述,本发明实施例一提供的基于云监控的线程控制装置,当接收到数据请求时,先获取系统当前运行的应用程序的进程信息;根据所述进程信息获取系统的当前线程数;然后再根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率;在所计算的当前线程使用率小于预设线程使用率阈值时,创建新的线程执行所述数据请求。能够在有新的数据请求时,可根据系统当前线程使用率确定是否需要创建新的线程执行新的数据请求,使得系统运行的线程数永远保持或低于最优线程数,保证了系统资源能够最大程度得到合理化的利用,使系统资源利用率能够保持最优,避免重新配置的线程数过大造成资源浪费,从而能够有效的保证系统正常运行又能节约系统资源。
另外,传统的主机层面的进程无法区分是应用程序进程还是操作系统进程,本发明可以获取运行的应用程序的进程信息,根据运行的应用程序的进程信息获取应用程序所使用的线程,从而提高了监控应用程序当前线程数及当前线程使用率的准确性。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,双屏电子设备,或者网络电子设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
实施例三
图3为本发明实施例三提供的电子设备的示意图。
所述电子设备3包括:存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。
所述至少一个处理器32执行所述计算机程序33时实现上述基于云监控的线程控制方法实施例中的步骤。
具体的,所述至少一个处理器32执行所述计算机程序33时实现如下步骤:
当接收到数据请求时,获取系统当前运行的应用程序的进程信息;
根据所述进程信息获取系统的当前线程数;
根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率;
判断所计算的当前线程使用率是否大于预设线程使用率阈值;
当所计算的当前线程使用率小于所述预设线程使用率阈值时,创建新的线程执行所述数据请求;或者
当所计算的当前线程使用率大于或者等于预设线程使用率阈值时,将所述数据请求放入消息队列中。
进一步的,所述根据所述进程信息获取系统的当前线程数包括:
获取当前运行的所有应用程序;
从每个运行的应用程序对应的进程信息中获取每个应用程序使用的线程数;
将每个应用程序使用的线程数进行累加,得到系统当前的线程数。
进一步的,在所述创建新的线程处理所述数据请求时,所述至少一个处理器32还实现如下步骤:
获取所述数据请求中的线程请求数;
计算所述线程请求数与所述当前线程数之和,得到未来线程数;
根据所述未来线程数计算未来线程使用率;
判断所述未来线程使用率是否小于所述预设线程使用率阈值;
当所述未来线程使用率小于或者等于所述预设线程使用率阈值时,创建所述线程请求数对应的线程执行所述数据请求。
进一步的,当所述未来线程使用率大于所述预设线程使用率阈值时,所述至少一个处理器32还实现如下步骤:
将所述数据请求放入消息队列中;
当有新的线程时,从所述消息队列中获取待处理的数据请求并对所述待处理的数据请求进行处理。
进一步的,在所述获取系统当前运行的应用程序的进程信息时,所述至少一个处理器32还实现如下步骤:
将所述进程信息存储到指定数据库,所述指定数据库为时间序列数据库。
进一步的,所述至少一个处理器32还实现如下步骤:
通过Grafana的采集agent,将所述应用程序的进程信息及对应所使用的线程信息传送至所述Grafana平台进行展示。
进一步的,所述获取系统当前运行的应用程序的进程信息包括:
从应用程序的环境配置文件中获取所述应用程序的应用实例名称;
根据所述应用实例名称采集系统当前运行的应用程序的进程信息。
示例性的,所述计算机程序33可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述至少一个处理器32执行。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序33在所述电子设备3中的执行过程。
所述电子设备3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算电子设备。本领域技术人员可以理解,所述示意图3仅仅是电子设备3的示例,并不构成对电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备3还可以包括输入输出电子设备、网络接入电子设备、总线等。
所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述电子设备3的控制中心,利用各种接口和线路连接整个电子设备3的各个部分。
所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述电子设备3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备3的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述电子设备3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的服务器和方法,可以通过其它的方式实现。例如,以上所描述的服务器实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神范围。
Claims (10)
1.一种基于云监控的线程控制方法,其特征在于,所述方法包括:
当接收到数据请求时,获取系统当前运行的应用程序的进程信息;
根据所述进程信息获取系统的当前线程数;
根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率;
判断所计算的当前线程使用率是否大于预设线程使用率阈值;
当所计算的当前线程使用率小于所述预设线程使用率阈值时,创建新的线程执行所述数据请求;或者
当所计算的当前线程使用率大于或者等于预设线程使用率阈值时,将所述数据请求放入消息队列中。
2.如权利要求1所述的方法,其特征在于,所述根据所述进程信息获取系统的当前线程数包括:
获取当前运行的所有应用程序;
从每个运行的应用程序对应的进程信息中获取每个应用程序使用的线程数;
将每个应用程序使用的线程数进行累加,得到系统当前的线程数。
3.如权利要求1所述的方法,其特征在于,在所述创建新的线程处理所述数据请求时,所述方法还包括:
获取所述数据请求中的线程请求数;
计算所述线程请求数与所述当前线程数之和,得到未来线程数;
根据所述未来线程数计算未来线程使用率;
判断所述未来线程使用率是否小于所述预设线程使用率阈值;
当所述未来线程使用率小于或者等于所述预设线程使用率阈值时,创建所述线程请求数对应的线程执行所述数据请求。
4.如权利要求3所述的方法,其特征在于,当所述未来线程使用率大于所述预设线程使用率阈值时,所述方法还包括:
将所述数据请求放入消息队列中;
当有新的线程时,从所述消息队列中获取待处理的数据请求并对所述待处理的数据请求进行处理。
5.如权利要求1所述的方法,其特征在于,在所述获取系统当前运行的应用程序的进程信息时,所述方法还包括:
将所述进程信息存储到指定数据库,所述指定数据库为时间序列数据库。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
通过Grafana的采集agent,将所述应用程序的进程信息及对应所使用的线程信息传送至所述Grafana平台进行展示。
7.如权利要求1至6中任意一项所述的方法,其特征在于,所述获取系统当前运行的应用程序的进程信息包括:
从应用程序的环境配置文件中获取所述应用程序的应用实例名称;
根据所述应用实例名称采集系统当前运行的应用程序的进程信息。
8.一种基于云监控的线程控制装置,其特征在于,所述装置包括:
第一获取模块,用于当接收到数据请求时,获取系统当前运行的应用程序的进程信息;
第二获取模块,用于根据所述进程信息获取系统的当前线程数;
计算模块,用于根据所述当前线程数和预先配置的最大线程数,计算当前线程使用率;
判断模块,用于判断所计算的当前线程使用率是否大于预设线程使用率阈值;
创建模块,用于当所述判断模块判断所计算的当前线程使用率小于所述预设线程使用率阈值时,创建新的线程执行所述数据请求;
存储模块,用于当所述判断模块判断所计算的当前线程使用率大于或者等于预设线程使用率阈值时,将所述数据请求放入消息队列中。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述的基于云监控的线程控制方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的基于云监控的线程控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811537798.8A CN109840142B (zh) | 2018-12-15 | 2018-12-15 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811537798.8A CN109840142B (zh) | 2018-12-15 | 2018-12-15 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840142A true CN109840142A (zh) | 2019-06-04 |
CN109840142B CN109840142B (zh) | 2024-03-15 |
Family
ID=66883255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811537798.8A Active CN109840142B (zh) | 2018-12-15 | 2018-12-15 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840142B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124643A (zh) * | 2019-12-20 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 一种分布式存储中的删除任务调度方法、系统及相关装置 |
CN111427704A (zh) * | 2020-03-13 | 2020-07-17 | 平安科技(深圳)有限公司 | 配置指令的远程监控方法、装置、设备及存储介质 |
CN111464331A (zh) * | 2020-03-03 | 2020-07-28 | 深圳市计通智能技术有限公司 | 一种线程创建的控制方法、系统及终端设备 |
CN112977617A (zh) * | 2021-03-30 | 2021-06-18 | 平安国际智慧城市科技股份有限公司 | 车辆轮胎转向角度的确定方法、装置和计算机设备 |
CN113377816A (zh) * | 2021-06-11 | 2021-09-10 | 重庆农村商业银行股份有限公司 | 一种分布式数据存取系统 |
CN113467933A (zh) * | 2021-06-15 | 2021-10-01 | 济南浪潮数据技术有限公司 | 分布式文件系统线程池优化方法、系统、终端及存储介质 |
CN114003367A (zh) * | 2022-01-04 | 2022-02-01 | 北京新唐思创教育科技有限公司 | 风险监控方法、装置、设备及存储介质 |
CN114265637A (zh) * | 2021-12-24 | 2022-04-01 | 中电信数智科技有限公司 | 档案管理系统配置方法、系统、电子设备以及存储介质 |
CN116450364A (zh) * | 2023-06-15 | 2023-07-18 | 药融云数字科技(成都)有限公司 | 基于cpu并行计算的序列比对方法、系统、存储介质及终端 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147746A (zh) * | 2010-03-05 | 2011-08-10 | 微软公司 | 动态线程池管理 |
US20120297216A1 (en) * | 2011-05-19 | 2012-11-22 | International Business Machines Corporation | Dynamically selecting active polling or timed waits |
CN103279331A (zh) * | 2013-05-31 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | Android系统多任务并发处理方法及装置 |
US9354931B1 (en) * | 2015-05-14 | 2016-05-31 | Tmaxsoft, Co., Ltd. | Method, server and computer-readable recording medium for managing size of thread pool dynamically |
CN106557369A (zh) * | 2016-11-25 | 2017-04-05 | 武汉斗鱼网络科技有限公司 | 一种多线程的管理方法及系统 |
CN107402810A (zh) * | 2016-05-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 线程分配方法及装置 |
CN107463441A (zh) * | 2017-06-30 | 2017-12-12 | 大唐软件技术股份有限公司 | 一种线程数量控制方法及设备 |
CN107800768A (zh) * | 2017-09-13 | 2018-03-13 | 平安科技(深圳)有限公司 | 开放平台控制方法和系统 |
CN108446170A (zh) * | 2018-01-24 | 2018-08-24 | 北京奇艺世纪科技有限公司 | 一种基于机器学习的dns线程管理方法、装置和服务器 |
CN108536535A (zh) * | 2018-01-24 | 2018-09-14 | 北京奇艺世纪科技有限公司 | 一种dns服务器及其线程控制方法和装置 |
CN108920322A (zh) * | 2018-06-04 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种中间件运行监测的方法、装置及计算机存储介质 |
-
2018
- 2018-12-15 CN CN201811537798.8A patent/CN109840142B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147746A (zh) * | 2010-03-05 | 2011-08-10 | 微软公司 | 动态线程池管理 |
US20120297216A1 (en) * | 2011-05-19 | 2012-11-22 | International Business Machines Corporation | Dynamically selecting active polling or timed waits |
CN103279331A (zh) * | 2013-05-31 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | Android系统多任务并发处理方法及装置 |
US9354931B1 (en) * | 2015-05-14 | 2016-05-31 | Tmaxsoft, Co., Ltd. | Method, server and computer-readable recording medium for managing size of thread pool dynamically |
CN107402810A (zh) * | 2016-05-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 线程分配方法及装置 |
CN106557369A (zh) * | 2016-11-25 | 2017-04-05 | 武汉斗鱼网络科技有限公司 | 一种多线程的管理方法及系统 |
CN107463441A (zh) * | 2017-06-30 | 2017-12-12 | 大唐软件技术股份有限公司 | 一种线程数量控制方法及设备 |
CN107800768A (zh) * | 2017-09-13 | 2018-03-13 | 平安科技(深圳)有限公司 | 开放平台控制方法和系统 |
CN108446170A (zh) * | 2018-01-24 | 2018-08-24 | 北京奇艺世纪科技有限公司 | 一种基于机器学习的dns线程管理方法、装置和服务器 |
CN108536535A (zh) * | 2018-01-24 | 2018-09-14 | 北京奇艺世纪科技有限公司 | 一种dns服务器及其线程控制方法和装置 |
CN108920322A (zh) * | 2018-06-04 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种中间件运行监测的方法、装置及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
阳波, 谭剑: "队列实现不间断网络监控优化的研究与设计", 计算机与现代化, no. 06, 30 June 2003 (2003-06-30), pages 42 - 51 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124643A (zh) * | 2019-12-20 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 一种分布式存储中的删除任务调度方法、系统及相关装置 |
CN111464331A (zh) * | 2020-03-03 | 2020-07-28 | 深圳市计通智能技术有限公司 | 一种线程创建的控制方法、系统及终端设备 |
CN111427704A (zh) * | 2020-03-13 | 2020-07-17 | 平安科技(深圳)有限公司 | 配置指令的远程监控方法、装置、设备及存储介质 |
CN112977617A (zh) * | 2021-03-30 | 2021-06-18 | 平安国际智慧城市科技股份有限公司 | 车辆轮胎转向角度的确定方法、装置和计算机设备 |
CN113377816B (zh) * | 2021-06-11 | 2022-10-25 | 重庆农村商业银行股份有限公司 | 一种分布式数据存取系统 |
CN113377816A (zh) * | 2021-06-11 | 2021-09-10 | 重庆农村商业银行股份有限公司 | 一种分布式数据存取系统 |
CN113467933A (zh) * | 2021-06-15 | 2021-10-01 | 济南浪潮数据技术有限公司 | 分布式文件系统线程池优化方法、系统、终端及存储介质 |
CN113467933B (zh) * | 2021-06-15 | 2024-02-27 | 济南浪潮数据技术有限公司 | 分布式文件系统线程池优化方法、系统、终端及存储介质 |
CN114265637A (zh) * | 2021-12-24 | 2022-04-01 | 中电信数智科技有限公司 | 档案管理系统配置方法、系统、电子设备以及存储介质 |
CN114003367A (zh) * | 2022-01-04 | 2022-02-01 | 北京新唐思创教育科技有限公司 | 风险监控方法、装置、设备及存储介质 |
CN114003367B (zh) * | 2022-01-04 | 2022-03-15 | 北京新唐思创教育科技有限公司 | 风险监控方法、装置、设备及存储介质 |
CN116450364A (zh) * | 2023-06-15 | 2023-07-18 | 药融云数字科技(成都)有限公司 | 基于cpu并行计算的序列比对方法、系统、存储介质及终端 |
CN116450364B (zh) * | 2023-06-15 | 2023-08-22 | 药融云数字科技(成都)有限公司 | 基于cpu并行计算的序列比对方法、系统、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN109840142B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840142A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN109815007A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
US9852035B2 (en) | High availability dynamic restart priority calculator | |
CN107766145B (zh) | 双系统下的内存管理方法和装置 | |
CN111694646A (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN112540841B (zh) | 任务调度的方法、装置、处理器与电子设备 | |
CN109800067A (zh) | 基于云监控的数据库连接优化方法、装置及相关设备 | |
EP4113299A2 (en) | Task processing method and device, and electronic device | |
CN112130963A (zh) | 虚拟机任务的调度方法、装置、计算机设备及存储介质 | |
CN112600761B (zh) | 一种资源分配的方法、装置及存储介质 | |
CN113448743A (zh) | 用于任务处理的方法、电子设备以及计算机程序产品 | |
CN111338785A (zh) | 资源调度方法及装置、电子设备、存储介质 | |
CN109800261A (zh) | 双数据库连接池的动态控制方法、装置及相关设备 | |
CN111143039A (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN111459622A (zh) | 调度虚拟cpu的方法、装置、计算机设备和存储介质 | |
CN114911385A (zh) | 远程会话期间安全的多个应用共享 | |
CN109871266A (zh) | 任务延时处理方法、装置、计算机装置及存储介质 | |
CN115373860B (zh) | Gpu任务的调度方法、装置、设备和存储介质 | |
CN109144838A (zh) | 应用程序监控方法及装置、计算机装置及计算机存储介质 | |
US20230096015A1 (en) | Method, electronic deviice, and computer program product for task scheduling | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN109634812A (zh) | Linux系统的进程CPU占用率控制方法、终端设备及存储介质 | |
CN109040491A (zh) | 挂机行为处理方法、装置、计算机设备及存储介质 | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN109840141A (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 |