CN111049914B - 负载均衡方法、装置和计算机系统 - Google Patents
负载均衡方法、装置和计算机系统 Download PDFInfo
- Publication number
- CN111049914B CN111049914B CN201911306862.6A CN201911306862A CN111049914B CN 111049914 B CN111049914 B CN 111049914B CN 201911306862 A CN201911306862 A CN 201911306862A CN 111049914 B CN111049914 B CN 111049914B
- Authority
- CN
- China
- Prior art keywords
- server
- performance index
- threads
- thread
- bus
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种负载均衡方法、装置和计算机系统,所述负载均衡方法,包括:实时获取服务器的性能指标;根据所述性能指标动态确定服务器的总线程数;分配与所述总线程数数量一致的服务线程,并采用所述服务线程处理客户端数据。本发明所述的方法通过实时监控服务器的性能指标,并根据该性能指标动态确定服务器的总线程数,从而为客户端数据动态分配线程,该方法有利于优化业务并发,实现负载均衡,资源的合理配置,从而有利于提高服务器的处理效率。
Description
技术领域
本发明涉及计算机多线程数据处理技术领域,具体涉及一种负载均衡方法、装置和计算机系统。
背景技术
随着互联网业务的业务量不断增长,服务器数据处理的压力不断增大,导致服务器性能下降。在数据处理层面,基本都会采用一些优化方案,例如线程池技术,通过线程池分配线程,线程执行数据的处理,以达到提升业务运行效率。
线程池分配线程的原则是根据服务器配置而定,核心线程数一般设置为CPU个数的2倍,但实际还是要依据服务器当前性能而进行核心线程数的选择。一旦设置了固定的线程数,那业务的并发进行就显得比较被动,如果线程数设置大了,容易造成资源浪费,设置小了则无法达到并发的最优效果。现有的服务器常常会出现因程序端不合理的资源配置导致服务器性能问题。
发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种负载均衡方法、装置和计算机系统。
为实现以上目的,本发明采用如下技术方案:一种负载均衡方法,包括:
实时获取服务器的性能指标;
根据所述性能指标动态确定服务器的总线程数;
分配与所述总线程数数量一致的服务线程,并采用所述服务线程处理客户端数据。
可选的,所述性能指标包括:
CPU运行时间和IO阻塞时间。
可选的,所述实时获取服务器的性能指标,包括:
实时获取服务器的性能文件;
读取所述性能文件中的服务器的性能指标;
所述性能文件是由预设脚本实时爬取服务器的性能指标而生成的。
可选的,所述根据所述性能指标动态确定服务器的总线程数,包括:
根据所述性能指标计算服务器的阻塞系数,所述阻塞系数用于反映所述服务器的占用情况;
根据所述阻塞系数确定服务器的总线程数。
可选的,所述负载均衡方法还包括:
根据所述总线程数确定缓冲队列的大小。
可选的,所述采用所述服务线程处理客户端数据,包括:
若接收到客户端发送的数据处理请求后,存在空闲的服务线程,则采用空闲的服务线程处理所述数据处理请求;或者,
若接收到客户端发送的数据处理请求后,不存在空闲的服务线程,则将所述数据处理请求放入缓冲队列中,并在出现空闲的服务线程后从所述缓冲队列中获取所述数据处理请求并进行处理。
可选的,所述负载均衡方法还包括:
所述服务线程对客户端数据进行处理后,将处理后的数据进行保存。
本发明还提供了一种负载均衡装置,包括:
获取模块,用于实时获取服务器的性能指标;
线程数确定模块,用于根据所述性能指标动态确定服务器的总线程数;
线程分配模块,用于分配与所述总线程数数量一致的服务线程,并采用所述服务线程处理客户端数据。
可选的,所述负载均衡装置还包括:
存储模块,用于将所述服务线程处理后的数据进行保存。
此外,本发明还提供了一种计算机系统,包括:如前面所述的负载均衡装置。
本发明采用以上技术方案,所述负载均衡方法,包括:实时获取服务器的性能指标;根据所述性能指标动态确定服务器的总线程数;分配与所述总线程数数量一致的服务线程,并采用所述服务线程处理客户端数据。本发明所述的方法通过实时监控服务器的性能指标,并根据该性能指标动态确定服务器的总线程数,从而为客户端数据动态分配线程,该方法有利于优化业务并发,实现负载均衡,资源的合理配置,从而有利于提高服务器的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明负载均衡方法实施例一提供的流程示意图;
图2是本发明负载均衡方法实施例二提供的流程示意图;
图3是本发明负载均衡装置实施例一提供的结构示意图;
图4是本发明负载均衡装置提供的一种实际应用场景示意图。
图中:1、获取模块;2、线程数确定模块;3、线程分配模块;4、存储模块;5、第一服务器;6、第二服务器。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
图1是本发明负载均衡方法实施例一提供的流程示意图。
如图1所示,本实施例所述的负载均衡方法,包括:
S11:实时获取服务器的性能指标;
进一步的,所述性能指标包括:
CPU运行时间和IO阻塞时间。
进一步的,所述实时获取服务器的性能指标,包括:
实时获取服务器的性能文件;
读取所述性能文件中的服务器的性能指标;
所述性能文件是由预设脚本实时爬取服务器的性能指标而生成的。
S12:根据所述性能指标动态确定服务器的总线程数;
S13:分配与所述总线程数数量一致的服务线程,并采用所述服务线程处理客户端数据。
本实施例所述的方法通过实时监控服务器的性能指标,并根据该性能指标动态确定服务器的总线程数,从而为客户端数据动态分配线程,该方法有利于优化业务并发,实现负载均衡,资源的合理配置,从而有利于提高服务器的性能。
图2是本发明负载均衡方法实施例二提供的流程示意图。
如图2所示,本实施例所述的负载均衡方法,包括:
S21:实时获取服务器的性能指标;
进一步的,所述性能指标包括:
CPU运行时间和IO阻塞时间。
进一步的,所述实时获取服务器的性能指标,包括:
实时获取服务器的性能文件;
读取所述性能文件中的服务器的性能指标;
所述性能文件是由预设Linux脚本实时爬取服务器的性能指标而生成的。
S22:根据所述性能指标动态计算服务器的阻塞系数,所述阻塞系数用于反映所述服务器的占用情况;
进一步的,所述根据所述性能指标计算服务器的阻塞系数,包括:
计算单位时间内所述CPU运行时间和所述IO阻塞时间的比值;
根据所述比值确定出所述阻塞系数,
其中,所述阻塞系数与所述比值成反比关系。
具体的,
阻塞系数=1/(1+CPU运行时间/IO阻塞时间)。
S23:根据所述阻塞系数动态确定服务器的总线程数;
进一步的,所述根据所述阻塞系数确定所述服务器的总线程数,包括:
将常数1减去所述阻塞系数的差值与所述服务器的CPU总核数的乘积确定为所述服务器的总线程数;
即,总线程数=服务器CPU总核数*(1-阻塞系数)。
其中,所述阻塞系数的取值在0和1之间。
S24:分配与所述总线程数数量一致的服务线程,并采用所述服务线程处理客户端数据;
进一步的,所述采用所述服务线程处理客户端数据,包括:
若接收到客户端发送的数据处理请求后,存在空闲的服务线程,则采用空闲的服务线程处理所述数据处理请求;或者,
若接收到客户端发送的数据处理请求后,不存在空闲的服务线程,则将所述数据处理请求放入缓冲队列中,并在出现空闲的服务线程后从所述缓冲队列中获取所述数据处理请求并进行处理。
其中,所述缓冲队列的大小是根据所述总线程数确定的。
在实际应用中,通常设置所述缓冲队列的大小为总线程数的5倍,当上文提及到的所述总线程数配置好之后,缓冲队列也会随之进行动态配置。
S25:所述服务线程对客户端数据进行处理后,将处理后的数据进行保存。
需要说明的是,本实施例采用的是Linux脚本爬取服务器性能,Java程序通过读取实时性能文件,对线程进行动态分配,以达到服务器负载均衡的效果。该技术亦可运用到任何服务器与客户端的架构中。
本实施例所述的方法通过实时监控服务器的性能指标,并根据该性能指标动态确定服务器的总线程数,从而为客户端数据动态分配线程,该方法有利于优化业务并发,达到负载均衡,资源的合理配置,有利于提高服务器的处理效率。
图3是本发明负载均衡装置实施例一提供的结构示意图。
如图3所示,本实施例所述的负载均衡装置,包括:
获取模块1,用于实时获取服务器的性能指标;
线程数确定模块2,用于根据所述性能指标动态确定服务器的总线程数;
线程分配模块3,用于分配与所述总线程数数量一致的服务线程,并采用所述服务线程处理客户端数据。
进一步的,还包括:
存储模块4,用于将所述服务线程处理后的数据进行保存。
本实施例所述负载均衡装置的工作原理与上文所述负载均衡方法任一实施例所述的工作原理相同,在此不再赘述。
如图4所示,所述负载均衡装置在实际执行时,所述服务器可以包括第一服务器5和第二服务器6,其中,所述第一服务器5指代生产环境下用于部署及维护各类服务(如前端页面、后端程序等)的服务器,是正式使用的服务器,与之对应的有测试服务器;所述第二服务器6是只用于数据存储的服务器。
在实际使用中,步骤一,利用Linux脚本实时爬取第一服务器5和第二服务器6的CPU运行时间和IO阻塞时间(即,单位时间内的CPU运行时间和IO阻塞时间),分别在服务器生成对应的性能文件。步骤二,通过IO输入输出流的技术,读取第一服务器5生成的实时性能文件,将读取到的CPU运行时间和IO阻塞时间进行百分比的计算,生成阻塞系数,同理,读取第二服务器6的CPU运行时间和IO阻塞时间,生成对应的阻塞系数。步骤三,通过阻塞系数动态计算总线程数,将计算得出的总线程数用于客户端数据处理的分配,最终将处理完的数据保存。
当阻塞系数较高时,说明此时服务器性能较弱,可分配的线程数就会较少,当阻塞系数较低时,说明此时服务器的待处理能力较强,随之,可分配的线程数就会较多。服务器的性能决定数据的运行处理效率,同时,数据的平稳运行处理也影响着服务器的安全性,二者起到了双向的关系。
线程数根据服务器性能而设定,当线程数满了,会将业务请求暂时放到缓冲队列中,待有空闲线程时,才从所述缓冲队列中获取所述业务请求并进行处理。缓冲队列的大小是根据总线程数的大小而设定。线程数和缓冲队列的合理动态配置,很好地优化了数据处理的并发效率和避免了“线程缺乏”和“线程过剩”等情况。
本实施例所述的装置通过所述获取模块1实时监控服务器的性能指标,并根据该性能指标动态确定服务器的总线程数,从而为客户端数据动态分配线程,该方法有利于优化业务并发,实现负载均衡,资源的合理配置,从而有利于提高服务器的性能。
此外,本发明还提供了一种计算机系统,一种计算机系统,包括:如前面所述的负载均衡装置。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (9)
1.一种负载均衡方法,其特征在于,包括:
实时获取服务器的性能指标;
根据所述性能指标动态确定服务器的总线程数;
分配与所述总线程数数量一致的服务线程,并采用所述服务线程处理客户端数据;
其中,所述根据所述性能指标动态确定服务器的总线程数,包括:
根据所述性能指标计算服务器的阻塞系数,所述阻塞系数用于反映所述服务器的占用情况;
将常数1减去所述阻塞系数的差值与所述服务器的CPU总核数的乘积确定为所述服务器的总线程数。
2.根据权利要求1所述的负载均衡方法,其特征在于,所述性能指标包括:
CPU运行时间和IO阻塞时间。
3.根据权利要求1所述的负载均衡方法,其特征在于,所述实时获取服务器的性能指标,包括:
实时获取服务器的性能文件;
读取所述性能文件中的服务器的性能指标;
所述性能文件是由预设脚本实时爬取服务器的性能指标而生成的。
4.根据权利要求1所述的负载均衡方法,其特征在于,还包括:
根据所述总线程数确定缓冲队列的大小。
5.根据权利要求4所述的负载均衡方法,其特征在于,所述采用所述服务线程处理客户端数据,包括:
若接收到客户端发送的数据处理请求后,存在空闲的服务线程,则采用空闲的服务线程处理所述数据处理请求;或者,
若接收到客户端发送的数据处理请求后,不存在空闲的服务线程,则将所述数据处理请求放入缓冲队列中,并在出现空闲的服务线程后从所述缓冲队列中获取所述数据处理请求并进行处理。
6.根据权利要求1至5任一项所述的负载均衡方法,其特征在于,还包括:
所述服务线程对客户端数据进行处理后,将处理后的数据进行保存。
7.一种负载均衡装置,其特征在于,包括:
获取模块,用于实时获取服务器的性能指标;
线程数确定模块,用于根据所述性能指标动态确定服务器的总线程数;
线程分配模块,用于分配与所述总线程数数量一致的服务线程,并采用所述服务线程处理客户端数据;
其中,所述根据所述性能指标动态确定服务器的总线程数,包括:
根据所述性能指标计算服务器的阻塞系数,所述阻塞系数用于反映所述服务器的占用情况;
将常数1减去所述阻塞系数的差值与所述服务器的CPU总核数的乘积确定为所述服务器的总线程数。
8.根据权利要求7所述的负载均衡装置,其特征在于,还包括:
存储模块,用于将所述服务线程处理后的数据进行保存。
9.一种计算机系统,其特征在于,包括:如权利要求7或8所述的负载均衡装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911306862.6A CN111049914B (zh) | 2019-12-18 | 2019-12-18 | 负载均衡方法、装置和计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911306862.6A CN111049914B (zh) | 2019-12-18 | 2019-12-18 | 负载均衡方法、装置和计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111049914A CN111049914A (zh) | 2020-04-21 |
CN111049914B true CN111049914B (zh) | 2021-02-09 |
Family
ID=70237455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911306862.6A Active CN111049914B (zh) | 2019-12-18 | 2019-12-18 | 负载均衡方法、装置和计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111049914B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269660B (zh) * | 2020-10-28 | 2023-04-11 | 浙江纺织服装职业技术学院 | 一种海量数据处理并发任务自适应测控方法及系统 |
CN113064620A (zh) * | 2021-04-02 | 2021-07-02 | 北京天空卫士网络安全技术有限公司 | 一种处理系统数据的方法和装置 |
CN113515503A (zh) * | 2021-07-23 | 2021-10-19 | 浩鲸云计算科技股份有限公司 | 一种基于表的InfluxDB数据迁移方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159768A (zh) * | 2015-09-09 | 2015-12-16 | 浪潮集团有限公司 | 一种任务管理方法及云数据中心管理平台 |
CN107463441A (zh) * | 2017-06-30 | 2017-12-12 | 大唐软件技术股份有限公司 | 一种线程数量控制方法及设备 |
CN108874550A (zh) * | 2018-07-18 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种调整线程池的方法、装置、存储介质和计算机设备 |
CN110069340A (zh) * | 2019-04-01 | 2019-07-30 | 北京百度网讯科技有限公司 | 线程数评估方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899097A (zh) * | 2015-04-17 | 2015-09-09 | 杭州华三通信技术有限公司 | 线程分配数量计算方法以及装置 |
US9870275B2 (en) * | 2015-05-12 | 2018-01-16 | International Business Machines Corporation | Processor thread management |
CN105630606A (zh) * | 2015-12-22 | 2016-06-01 | 山东中创软件工程股份有限公司 | 用于调整线程池容量的方法及装置 |
US10761897B2 (en) * | 2018-02-02 | 2020-09-01 | Workday, Inc. | Predictive model-based intelligent system for automatically scaling and managing provisioned computing resources |
-
2019
- 2019-12-18 CN CN201911306862.6A patent/CN111049914B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159768A (zh) * | 2015-09-09 | 2015-12-16 | 浪潮集团有限公司 | 一种任务管理方法及云数据中心管理平台 |
CN107463441A (zh) * | 2017-06-30 | 2017-12-12 | 大唐软件技术股份有限公司 | 一种线程数量控制方法及设备 |
CN108874550A (zh) * | 2018-07-18 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种调整线程池的方法、装置、存储介质和计算机设备 |
CN110069340A (zh) * | 2019-04-01 | 2019-07-30 | 北京百度网讯科技有限公司 | 线程数评估方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111049914A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111049914B (zh) | 负载均衡方法、装置和计算机系统 | |
US20170255496A1 (en) | Method for scheduling data flow task and apparatus | |
CN111522636B (zh) | 应用容器的调整方法、调整系统、计算机可读介质及终端设备 | |
JP5744707B2 (ja) | メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) | |
US8984519B2 (en) | Scheduler and resource manager for coprocessor-based heterogeneous clusters | |
CN106452818B (zh) | 一种资源调度的方法和系统 | |
US20140189109A1 (en) | System and method for dynamically expanding virtual cluster and recording medium on which program for executing the method is recorded | |
US8468530B2 (en) | Determining and describing available resources and capabilities to match jobs to endpoints | |
CN105007337A (zh) | 集群系统负载均衡的方法和系统 | |
CN103019853A (zh) | 一种作业任务的调度方法和装置 | |
US10055134B2 (en) | Data compression method and storage system | |
CN108574645B (zh) | 一种队列调度方法及装置 | |
CN109960575B (zh) | 一种计算能力共享方法、系统及相关设备 | |
CN109960591B (zh) | 一种面向租户资源侵占的云应用资源动态调度的方法 | |
CN109257399B (zh) | 云平台应用程序管理方法及管理平台、存储介质 | |
WO2012127641A1 (ja) | 情報処理システム | |
CN112685298A (zh) | 应用程序的代码覆盖测试方法、装置以及电子设备 | |
CN112905342A (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
US11765099B2 (en) | Resource allocation using distributed segment processing credits | |
CN111158904A (zh) | 一种任务调度方法、装置、服务器及介质 | |
US11005776B2 (en) | Resource allocation using restore credits | |
CN115640113A (zh) | 多平面弹性调度方法 | |
CN117435412A (zh) | 服务器测试方法及装置、存储介质、电子设备 | |
US10812408B1 (en) | Preventing concentrated selection of resource hosts for placing resources | |
CN113014408A (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 |