KR20050063852A - System and method for dynamic load balancing - Google Patents

System and method for dynamic load balancing Download PDF

Info

Publication number
KR20050063852A
KR20050063852A KR1020030093101A KR20030093101A KR20050063852A KR 20050063852 A KR20050063852 A KR 20050063852A KR 1020030093101 A KR1020030093101 A KR 1020030093101A KR 20030093101 A KR20030093101 A KR 20030093101A KR 20050063852 A KR20050063852 A KR 20050063852A
Authority
KR
South Korea
Prior art keywords
web application
application server
response speed
node
weight table
Prior art date
Application number
KR1020030093101A
Other languages
Korean (ko)
Other versions
KR100576713B1 (en
Inventor
김성훈
정승욱
서범수
김중배
Original Assignee
한국전자통신연구원
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 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020030093101A priority Critical patent/KR100576713B1/en
Priority to JP2004158135A priority patent/JP2005182742A/en
Publication of KR20050063852A publication Critical patent/KR20050063852A/en
Application granted granted Critical
Publication of KR100576713B1 publication Critical patent/KR100576713B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Abstract

동적 부하 분산 시스템 및 그 방법이 개시된다. 부하 분산부는 소정의 노드 가중치 테이블을 기초로 적어도 하나 이상의 웹응용서버 중에서 클라이언트의 요청을 전송할 웹응용서버를 선택한다. 응답 속도 수집부는 각각의 웹응용서버에 구비되어 클라이언트의 요청에 대한 웹응용서버의 평균 응답 속도를 계산한다. 그리고, 중앙 노드관리부는 웹응용서버의 평균 응답 속도를 기초로 노드 가중치 테이블을 보정한다. 이로써, 특정 노드에서 처리되는 응용(application)의 응답속도가 비정상적으로 느려지는 것을 방지하여 클라이언트 요청에 대해 빠른 응답속도를 보장한다.A dynamic load balancing system and method are disclosed. The load balancer selects a web application server to transmit a client request from at least one web application server based on a predetermined node weight table. The response rate collector is provided in each web application server to calculate an average response speed of the web application server for the client's request. The central node manager corrects the node weight table based on the average response speed of the web application server. As a result, the response speed of the application processed in the specific node is prevented from being abnormally slowed, thereby ensuring a fast response speed for the client request.

Description

동적 부하 분산 시스템 및 그 방법{System and method for dynamic load balancing}Dynamic load balancing system and method

본 발명은 동적 부하 분산 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 다양한 종류의 비즈니스 응용(business application)을 서비스하는 서버들을 클러스터(cluster)로 구성하는 경우에 다중 서버들간에 부하 분산을 효율적으로 수행하는 동적 부하 분산 시스템 밑 그 방법에 관한 것이다. The present invention relates to a dynamic load balancing system and a method thereof, and more particularly, to efficiently load balance among multiple servers when configuring servers serving various kinds of business applications in a cluster. A method underneath a dynamic load balancing system to perform.

일반적으로 단일 시스템을 사용하여 서비스를 하는 경우에, 사용자의 증가로 인하여 응답속도가 저하되어 사이트 사용자들에게 양질의 서비스를 제공하기 어려운 문제점이 있다. 이러한 문제를 해결하기 위해 여러 대의 서버를 클러스터로 구성하여 사용자에게 서버스를 제공한다. In general, in the case of a service using a single system, there is a problem that it is difficult to provide a quality service to site users because the response speed is reduced due to the increase of users. To solve this problem, multiple servers are clustered to provide users with services.

클러스터로 구성한 시스템에서 필요한 것이 각각의 서버에 클라이언트의 요청을 분배하는 부하 분산장치이다. 종래의 부하 분산장치에서 사용되고 있는 부하 분산 방법에는 여러 대의 서버에 클라이언트 요청을 순차적으로 분산하는 방법, 무작위(random) 방법으로 클라이언트 요청을 분배하는 방법 및 서로 다른 처리 능력을 가진 서버가 클러스터로 구성되어 있는 경우에 노드(각각의 서버)에 가중치(weight)를 주어 부하를 분배하는 방법이 있다. 이 외에 각 노드에 전달되는 클라이언트의 요청 수를 기반으로 가중치를 실행시간에 가변하여 부하를 분산하는 방법이 있다. 현재 상용화된 웹응용서버(Web Application Server)들은 상술한 방법들 중 어느 하나의 방법을 시스템 관리자가 선택할 수 있도록 한다.What is needed in a clustered system is a load balancer that distributes client requests to each server. The load balancing method used in the conventional load balancer includes a method of sequentially distributing client requests to a plurality of servers, a method of distributing client requests in a random manner, and a server having different processing capacities. If so, there is a way to distribute the load by giving the nodes (each server) a weight. In addition, there is a method of distributing the load by varying the weight at execution time based on the number of requests of the client delivered to each node. Currently commercially available web application servers (Web Application Server) allows the system administrator to select any one of the methods described above.

종래의 인터넷 비즈니스 사이트에서는 서로 다른 응답시간을 가진 다양한 응용(application)들을 서비스하거나 하나의 응용에서도 각각의 클라이언트 요청마다 상이한 처리속도를 가진 응용들을 서비스한다. Conventional Internet business sites serve a variety of applications with different response times or even applications with different throughput rates for each client request in a single application.

따라서, 상기의 방법들을 사용하여 부하 분산을 할 경우, 클라이언트가 특정 노드(서버)에 요청 처리사간이 많이 소요되는 비즈니스를 호출하면 그 노드의 리소스를 많이 소모하게 되므로, 그 다음에 전달된 요청을 처리하는 시간이 지연될 수 있는 단점이 있다. 또한 가중치를 실행시간에 동적으로 변경하는 종래의 방법은 클라이언트 요청 수나 리소스의 사용량만을 기준으로 부하 분산을 하게 되므로 클라이언트의 응답속도에 대한 보장을 할 수 없는 단점이 있다.Therefore, in the case of load balancing using the above methods, when a client calls a business that requires a lot of requests between clients, a node consumes a lot of resources of the node. There is a disadvantage that the processing time may be delayed. In addition, the conventional method of dynamically changing the weight at execution time has a disadvantage in that it cannot guarantee the response speed of the client because load balancing is performed based only on the number of client requests or resource usage.

본 발명이 이루고자 하는 기술적 과제는, 다수의 웹응용서버들로 구성된 클러스터 환경에서 웹응용서버들간의 부하를 효율적으로 분산하여 클라이언트의 요청에 대한 응답 속도를 최소화하는 동적 부하 분산 시스템 및 그 방법을 제공하는 데 있다.SUMMARY The present invention provides a dynamic load balancing system and a method for minimizing the response speed to a client request by efficiently distributing loads among web application servers in a cluster environment composed of a plurality of web application servers. There is.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 동적 부하 분산 시스템의 일 실시예는, 소정의 노드 가중치 테이블을 기초로 적어도 하나 이상의 웹응용서버 중에서 클라이언트의 요청을 전송할 웹응용서버를 선택하는 부하 분산부; 상기 각각의 웹응용서버에 구비되어 상기 클라이언트의 요청에 대한 웹응용서버의 평균 응답 속도를 계산하는 응답 속도 수집부; 및 상기 웹응용서버의 평균 응답 속도를 기초로 상기 노드 가중치 테이블을 보정하는 중앙 노드관리부;를 포함한다.In order to achieve the above technical problem, an embodiment of the dynamic load balancing system according to the present invention includes a load for selecting a web application server to transmit a client request among at least one web application server based on a predetermined node weight table. Dispersion part; A response speed collector provided in each of the web application servers to calculate an average response speed of the web application server to the client request; And a central node manager configured to correct the node weight table based on the average response speed of the web application server.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 동적 부하 분산 방법의 일 실시예는, 소정의 노드 가중치 테이블을 기초로 적어도 하나 이상의 웹응용서버 중에서 클라이언트의 요청을 전송할 웹응용서버를 선택하는 단계; 상기 클라이언트의 요청에 대한 상기 웹응용서버의 평균 응답 속도를 계산하는 단계; 및 상기 웹응용서버의 평균 응답 속도를 기초로 상기 노드 가중치 테이블을 보정하는 단계;를 포함한다.In order to achieve the above technical problem, an embodiment of a dynamic load balancing method according to the present invention includes selecting a web application server to transmit a client request from at least one web application server based on a predetermined node weight table; ; Calculating an average response speed of the web application server to the client request; And correcting the node weight table based on the average response speed of the web application server.

이로써, 특정 노드에서 처리되는 응용의 응답속도가 비정상적으로 느려지는 것을 방지하여 클라이언트 요청에 대해 빠른 응답속도를 보장한다.As a result, the response speed of the application processed in the specific node is prevented from being abnormally slowed, thereby ensuring a fast response speed for the client request.

이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 동적 부하 분산 시스템 및 그 방법에 대하여 상세히 설명한다.Hereinafter, a dynamic load balancing system and method thereof according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 동적 부하 분산 시스템의 일 실시예의 구성을 도시한 도면이다.1 is a diagram showing the configuration of an embodiment of a dynamic load balancing system according to the present invention.

도 1을 참조하면, 본 발명에 따른 동적 부하 분산 시스템은 부하 분산부(100), 응답 속도 수집부(110 내지 114) 및 중앙 노드관리부(120)로 구성된다. 이 외에 인터넷을 통해 연결된 클라이언트(140), 클라이언트의 요청에 따른 동작을 수행하고 그 응답을 생성하는 웹응용서버(130 내지 134)가 존재한다.Referring to FIG. 1, the dynamic load balancing system according to the present invention includes a load balancer 100, a response speed collector 110 to 114, and a central node manager 120. In addition to the client 140 connected through the Internet, there is a web application server (130 to 134) to perform the operation according to the request of the client and to generate a response.

부하 분산부(또는 웹 서버)(100)는 노드 가중치 테이블을 기초로 선택한 웹응용서버(130 내지 134)로 클라이언트 요청을 전송한다. 그리고 그 웹응용서버(130 내지 134)로부터 클라이언트 요청에 대한 응답을 수신하여 클라이언트(140)로 전송한다. 일반적으로 클라이언트(140)는 웹 브라우저를 통해 부하 분산부(100)에 요청을 전달하고, 부하 분산부(100)로부터 전송받은 응답을 웹 브라우저를 통해 화면에 출력한다. 부하 분산부(100)는 HTTP를 통해 클라이언트(140)로부터 요청을 수신한다.The load balancer (or web server) 100 transmits a client request to the selected web application servers 130 to 134 based on the node weight table. The web application server 130 to 134 receives the response to the client request and transmits it to the client 140. In general, the client 140 transmits a request to the load balancer 100 through a web browser, and outputs a response received from the load balancer 100 to a screen through a web browser. The load balancer 100 receives a request from the client 140 through HTTP.

또한, 부하 분산부(100)는 노드 가중치 테이블로부터 최적의 웹응용서버(130 내지 134)를 선택하여 해당 웹응용서버로 요청을 재전송하거나 요청 전달 실패하였을 경우에 차선 웹응용서버로 요청을 전달하여 해당 비즈니스 로직(business logic)을 처리하게 한다. 그리고 그 웹응용서버(130 내지 134)로부터 반환된 응답 페이지를 클라이언트(140)에게 전송한다. In addition, the load balancer 100 selects the optimal web application server 130 to 134 from the node weight table to resend the request to the corresponding web application server, or forwards the request to the suboptimal web application server when the request delivery fails. Allows you to handle the business logic. The response page returned from the web application servers 130 to 134 is transmitted to the client 140.

비즈니스 로직은 업무에 필요한 데이터 처리를 수행하는 응용 프로그램의 일부로서, 데이터 입력, 수정, 조회 및 보고서 처리등을 수행하는 루틴을 말한다. 일반적으로 클라이언트 프로그램은 사용자 인터페이스와 비즈니스 로직으로 구성되며, 서버 프로그램은 대부분 비즈니스 로직으로 구성된다. 클라이언트/서버 모델의 경우에는 이외에도 통신링크가 추가되지만 통신과 관련된 인프라 스트럭처는 사용자 인터페이스처럼 비즈니스 로직의 일부는 아니다.Business logic is a part of an application that performs data processing required for a task. It is a routine that performs data input, modification, inquiry, and report processing. Typically, a client program consists of a user interface and business logic, and a server program mostly consists of business logic. In addition to the client / server model, communication links are added, but the infrastructure associated with the communication is not part of the business logic like the user interface.

응답 속도 수집부(110 내지 114)는 각각의 웹응용서버(130 내지 134))에 구비되어 웹응용서버의 평균 응답속도를 계산한다. 즉, 응답 속도 수집부(110 내지 114)는 각각의 웹응용서버에 플러그인(Plug-in)되어 웹응용서버(130 내지 134)의 각각의 비즈니스 응용들의 요청 처리 속도를 취합하고 모든 응용들의 평균 응답속도를 계산한 후, 중앙 노드관리부(120)로 전송한다. Response rate collecting unit 110 to 114 is provided in each of the web application server (130 to 134) to calculate the average response speed of the web application server. That is, the response speed collecting unit 110 to 114 is plugged in to each web application server to collect the request processing speeds of the respective business applications of the web application servers 130 to 134, and the average response of all the applications. After calculating the speed, and transmits to the central node management unit (120).

중앙 노드관리부(120)는 응답 속도 수집부(110 내지 114)로부터 수신한 평균 응답속도를 기초로 노드 가중치 테이블을 보정한다. 중앙 노드관리부(120)는 각각의 웹응용서버들의 평균 응답속도를 기초로 노드(웹응용서버)(130 내지 134)의 실제 가중치를 계산한 후 가중치 값이 원래 목표했던 가중치와 차이가 있는 경우에 노드 가중치 테이블의 가중치를 재조정한다. 그리고 중앙 노드관리부(120)는 재조정된 노드 가중치 테이블을 부하 분산부(100)로 전송한다. 그러면, 부하 분산부(100)는 재조장된 노드 가중치 테이블을 기초로 클라이언트 요청을 전송할 웹응용서버(130 내지 134)를 선택한다.The central node manager 120 corrects the node weight table based on the average response speed received from the response speed collectors 110 to 114. The central node manager 120 calculates the actual weight of the nodes (web application servers) 130 to 134 based on the average response speeds of the respective web application servers, and then the weight value is different from the original target weight. Readjust the weights in the node weight table. The central node manager 120 transmits the readjusted node weight table to the load balancer 100. Then, the load balancer 100 selects the web application servers 130 to 134 to transmit the client request based on the recomposed node weight table.

도 2는 본 발명에 따른 동적 부하 분산 방법의 흐름을 도시한 흐름도이다.2 is a flowchart illustrating a flow of a dynamic load balancing method according to the present invention.

도 2를 참조하면, 부하 분산부(100)는 클라이언트로(140)부터 요청을 수신하면 수신한 요청을 전달할 웹응용서버(130 내지 134)를 선택한다(S200). 이때, 부하 분산부(100)는 노드 가중치 테이블을 기초로 요청을 전달한 최적의 웹응용서버(130 내지 134)를 선택한다(S200).Referring to FIG. 2, when the request is received from the client 140, the load balancer 100 selects the web application servers 130 to 134 to deliver the received request (S200). At this time, the load balancer 100 selects the optimal web application server 130 to 134 that transmitted the request based on the node weight table (S200).

응답 속도 수집부(110 내지 114)는 각각의 웹응용서버(130 내지 134)에 구비되어 웹응용서버(130 내지 134)가 클라이언트 요청에 대한 소정의 응답을 생성할 때 까지의 평균응답속도를 계산한다(S210). 그리고 각각의 응답 속도 수집부(110 내지 114)는 계산된 평균 응답 속도를 중앙 노드관리부(120)로 전송한다.Response rate collectors 110 to 114 are provided in the respective web application servers 130 to 134 to calculate the average response speed until the web application servers 130 to 134 generate a predetermined response to the client request. (S210). Each response rate collector 110 to 114 transmits the calculated average response rate to the central node manager 120.

중앙 노드관리부(120)는 수신한 각각의 웹응용서버(130 내지 134)의 평균 응답속도를 기초로 가중치를 계산하여 이전의 노드 가중치 테이블을 보정한다(S220). 중앙 노드관리부(120)는 보정된 노드 가중치 테이블을 부하 분산부(100)로 전송한다. 그리고, 부하 분산부(100)는 중앙 노드관리부(120)로부터 전송받은 노드 가중치 테이블을 이용하여 웹응용서버(130 내지 134)를 선택한다. The central node manager 120 calculates a weight based on the average response speed of each of the received web application servers 130 to 134 to correct the previous node weight table (S220). The central node manager 120 transmits the corrected node weight table to the load balancer 100. The load balancer 100 selects the web application servers 130 to 134 using the node weight table received from the central node manager 120.

이하에서, 도 3 내지 도 5를 참조하여 도 2의 각 단계의 상세한 흐름에 대하여 살펴본다.Hereinafter, a detailed flow of each step of FIG. 2 will be described with reference to FIGS. 3 to 5.

도 3은 본 발명에 따른 부하 분산부의 동작을 도시한 흐름도이다.3 is a flowchart illustrating an operation of a load balancer according to the present invention.

도 3을 참조하면, 부하 분산부(100)는 웹서버에 내장된 소프트웨어로 구현될 수 있으며, 부하 분산부(100)가 시작되면 중앙 노드관리부(120)와 멀티캐스트(multicast)를 통해 통신할 통신 관리자를 초기화한다(S300). Referring to FIG. 3, the load balancer 100 may be implemented by software embedded in a web server. When the load balancer 100 starts, the load balancer 100 may communicate with the central node manager 120 through multicast. Initialize the communication manager (S300).

부하 분산부(100)가 받은 최초의 노드 가중치 테이블은 중앙 노드관리부(120)에 시스템 관리자가 설정한 목표 가중치 테이블이다(S305). 부하 분산부(100)는 최초에는 목표 가중치 테이블을 기초로 부하 분산을 시작한다. 중앙 노드관리부(120)로부터 가중치가 변경된 노드 가중치 테이블을 전달받으면, 부하 분산부(100)는 기존의 노드 가중치 테이블을 중앙 노드관리부(120)로부터 전달받은 노드 가중치 테이블로 교체한다(S305). The first node weight table received by the load balancer 100 is a target weight table set by the system administrator in the central node manager 120 (S305). The load balancer 100 first starts load balancing based on the target weight table. When receiving the node weight table whose weight is changed from the central node manager 120, the load balancer 100 replaces the existing node weight table with the node weight table received from the central node manager 120 (S305).

부하 분산부(100)는 클라이언트로(140)부터 요청을 접수하면(S310), 노드 가중치 테이블을 기초로 최적의 노드(웹응용서버)(130 내지 134)를 선택하고(S315), 선택한 노드(130 내지 134)로 요청을 전달한다(S320). 노드(130 내지 134)에 요청이 정상적으로 전달되면(S325) 노드(130 내지 134)로부터 요청에 대한 처리 결과를 수신하고(S335), 수신한 결과를 클라이언트(140)로 전송한다(S340). 그러나, 만약 해당 노드(130 내지 134)가 요청을 받지 못하거나 노드가 정상적으로 작동하지 않는다면(S325), 차기 노드(130 내지 134)에 요청을 재 전달하여 중단없는 서비스를 클라이언트에게 제공한다(S330). 노드 가중치 테이블의 가중치는 각 노드(130 내지 134)의 부하(load)를 나타내며 가중치가 낮을수록 부하가 적다. 따라서, 부하 분산부는 가중치가 가장낮은 노드(웹응용서버)(130 내지 134)로 클라이언트로 요청을 전송하며, 이 전송이 실패한 경우에는 그 다음 가중치가 낮은 웹응용서버로 클라이언트 요청을 전송한다.When the load balancer 100 receives a request from the client 140 (S310), the load balancer 100 selects an optimal node (web application server) 130 to 134 based on the node weight table (S315), and selects the selected node ( 130 to 134) transmits the request (S320). When the request is normally transmitted to the nodes 130 to 134 (S325), the processing result for the request is received from the nodes 130 to 134 (S335), and the received result is transmitted to the client 140 (S340). However, if the node (130 to 134) does not receive the request or the node does not operate normally (S325), re-deliver the request to the next node (130 to 134) to provide a service without interruption to the client (S330) . The weight of the node weight table indicates the load of each node 130 to 134. The lower the weight, the lower the load. Therefore, the load balancer sends the request to the client with the lowest weight (web application server) 130 to 134, and if this fails, then sends the client request to the web application server with the lower weight.

도 4는 본 발명에 따른 중앙 노드 관리부의 동작을 도시한 흐름도이다.4 is a flowchart illustrating the operation of the central node management unit according to the present invention.

도 4를 참조하면, 중앙 노드관리부(120)는 먼저 부하 분산부(100) 및 응답 속도 수집부(110 내지 114)와 멀티 캐스트 방법을 이용하여 통신하기 위한 통신관리자(미도시)를 초기화한다(S400). 통신관리자(미도시)는 부하 분산부(100)의 응답 속도 수집부(110 내지 114)와 메시지를 송수신한다. Referring to FIG. 4, the central node manager 120 first initializes a communication manager (not shown) for communicating with the load balancer 100 and the response speed collectors 110 to 114 using a multicast method ( S400). The communication manager (not shown) transmits and receives a message with the response speed collectors 110 to 114 of the load balancer 100.

중앙 노드관리부(120)는 각각의 웹응용서버(130 내지 134)에 구비된 응답 속도 수집부(110 내지 114)로부터 평균 응답 속도를 포함하는 메시지를 수신한다(S405). 중앙 노드관리부(120)는 수신된 평균 응답 속도를 데이터베이스화하여 응답 속도 저장소(미도시)에 저장한 후(S410), 응답속도 저장소(미도시)에 저장된 평균 응답 속도를 정규화한다(S415). 정규화는 모든 노드(130 내지 134)의 평균응답속도의 합을 100으로 가정하고 현재 수신한 노드의 평균 응답 속도가 100 중에서 어느 정도의 비중을 차지하는가를 나타낸다. 이 값은 실제로 노드(웹응용서버)(130 내지 134)에 가중된 부하로 간주되며, 본 발명에서는 이 값을 부하분산을 위한 실질적인 가중치를 계산하는데 사용한다(S415).The central node manager 120 receives a message including an average response speed from the response speed collectors 110 to 114 provided in the web application servers 130 to 134 (S405). The central node manager 120 makes a database of the received average response speed and stores it in the response speed storage (not shown) (S410), and then normalizes the average response speed stored in the response speed storage (not shown) (S415). Normalization assumes the sum of the average response speeds of all the nodes 130 to 134 as 100, and indicates how much the average response speed of the currently received node occupies 100. This value is actually regarded as a weighted load on the nodes (web application servers) 130 to 134. In the present invention, this value is used to calculate a substantial weight for load balancing (S415).

중앙 노드관리부(120)에는 시스템 관리자가 최초에 작성한 목표 가중치가 존재한다. 중앙 노드관리부(120)는 계산된 가중치가 최초 목표 가중치와 상이한 경우에는 가중치를 보정한다. 다만 보정범위의 최소 및 최대 임계값을 설정하여 이 사이값 안에서 보정이 이루어지게 한다.The central node manager 120 has a target weight originally created by the system administrator. If the calculated weight is different from the initial target weight, the central node manager 120 corrects the weight. However, the minimum and maximum threshold values of the correction range are set so that the correction is made within the interval.

즉, 중앙 노드관리부(120)는 계산된 가중치와 목표 가중치의 차이가 보정을 하지 않아도 되는 범위에 있으면(S420), 보정을 행하지 않는다. 이는 가중치의 빈번한 변화와 갑작스러운 변화를 방지하기 위함이다. 노드 가중치 테이블의 값을 변경할 때, 계산된 가중치와 목표 가중치의 차이 값이 관리자가 설정한 최대 또는 최소의 임계값보다 큰 경우에는 이 차이값을 최대 또는 최소의 값으로 차이값을 대체하고, 대체된 차이 값을 기초로 현재 노드의 고정 가중치 값을 보정한다(S425).In other words, if the difference between the calculated weight and the target weight does not need to be corrected (S420), the central node manager 120 does not perform correction. This is to prevent frequent and sudden changes in weight. When changing the value in the node weight table, if the difference between the calculated weight and the target weight is greater than the maximum or minimum threshold set by the administrator, replace the difference with the maximum or minimum value, and replace the difference. The fixed weight value of the current node is corrected based on the difference value (S425).

교정 가중치를 계산하는 방법을 예를 들어 설명하면 다음과 같다. 클러스터로 구성된 A,B,C의 웹응용서버들(130 내지 134)이 있고, 최초 목표 가중치 값이 각각 33,34,34로 설정되어 있으며, 가중치 차이값의 최대 또는 최소값을 -10 에서 +10으로 가정한다. 따라서, 차이값이 10이상이거나 -10이하이면 그 차이값은 10 또는 -10으로 대체된다. An example of how to calculate the calibration weights is as follows. There are A, B, and C web application servers 130 to 134 composed of clusters, and the initial target weight values are set to 33, 34 and 34, respectively, and the maximum or minimum value of the weight difference is -10 to +10. Assume Therefore, if the difference is more than 10 or less than -10, the difference is replaced by 10 or -10.

웹응용서버A(130)의 응답 속도 수집부(110)로부터 전달된 평균 응답 속도를 정규화한 값이 41이라면 목표 가중치인 33과의 차이값은 8이다. 차이값이 8이므로 최대 임계값인 10보다 작으므로 최대 임계값으로 대체할 필요는 없다. 이 값을 Smoothing Factor인 2로 나누어 4라는 값을 얻는다. Smoothing Factor는 위에서 설명한 바와 같이 갑작스럽게 노드의 가중치 값이 변경되는 것을 방지하기 위하여 관리자에 의해 설정된 값으로, 보정 과정에서 교정 가중치 값을 나누어주는 값이다. If the average response speed normalized from the response speed collector 110 of the web application server A 130 is 41, a difference from the target weight 33 is 8. Since the difference is 8, it is less than the maximum threshold of 10, so there is no need to replace it with the maximum threshold. Divide this value by 2, the smoothing factor, to get a value of 4. As described above, the smoothing factor is a value set by the administrator in order to prevent a sudden change of the weight value of the node. The smoothing factor is a value that divides the correction weight value during the correction process.

Smoothing Factor를 이용하여 얻어진 값인 4를 현재 웹응용서버A(130)의 가중치 값인 3에서 빼고, 나머지 웹응용서버B,C(132,134)에서 4의 값을 웹응용서버B,C(132,134)가 갖고 있던 가중치 값의 비율에 따라 각각 더한다. 즉, 33과 34는 거의 1:1의 비율이므로 웹응용서버B,C(132,134)의 가중치는 각각 2씩 더해진다. 이로써, 웹응용서버A(130)는 4만큼의 부하가 감소하고 나머지 웹응용서버들(132,134)은 4만큼의 부하를 더 수행하게 된다. 이러한 과정을 통해 중앙 노드관리부(120)는 29,35,36의 값으로 교정된 노드 가중치 테이블을 생성한다(S430). The value obtained by using the Smoothing Factor is subtracted from 3, which is the weight value of the current web application server A 130, and the remaining values of 4 from the web application servers B and C (132,134) are obtained by the web application servers B and C (132,134). Each is added according to the ratio of the weight values. That is, since 33 and 34 are almost 1: 1, the weights of the web application servers B and C (132 and 134) are added by 2, respectively. As a result, the web application server A 130 reduces the load by 4 and the remaining web application servers 132 and 134 further perform the load by 4. Through this process, the central node manager 120 generates a node weight table corrected to values of 29, 35, and 36 (S430).

중앙 노드관리부(120)는 교정한 노드 가중치 테이블을 부하 분산부(100)로 전달한다(S435). 따라서, 부하 분산부(100)는 중앙 노드관리부(120)로부터 수신한 노드 가중치 테이블을 기초로 부하 분산을 수행한다.The central node manager 120 transmits the corrected node weight table to the load balancer 100 (S435). Therefore, the load balancer 100 performs load balancing based on the node weight table received from the central node manager 120.

도 5는 본 발명에 따른 응답 속도 수집부의 동작을 도시한 흐름도이다.5 is a flowchart illustrating an operation of a response speed collector according to the present invention.

도 5를 참조하면, 응답 속도 수집부(110 내지 114)는 각각의 웹응용서버(130 내지 134)에 플러그인 형태로 존재하며, 응답 속도 수집부(110 내지 114)가 시작되면(S500), 중앙 노드관리부(120)와 통신하기 위한 통신관리자(미도시)를 시작한다(S505).Referring to FIG. 5, the response speed collecting units 110 to 114 exist in each web application server 130 to 134 in the form of a plug-in. When the response speed collecting units 110 to 114 are started (S500), The communication manager (not shown) for communicating with the node manager 120 starts (S505).

응답 속도 수집부(110 내지 114)는 내부적으로 정보전달을 담당하는 쓰레드(Thread)가 존재한다(S510). 이와 같은 쓰레드를 두는 것은 웹응용서버(130 내지 134)의 실행시간 동작 시간에 부하를 주지 않기 위함이다. 정보전달 쓰레드는 호출된 모든 응용의 처리 속도를 시간단위로 평균값을 계산하고(S515), 평균 응답 시간을 포함하는 메시지를 생성한다(S520). 응답 속도 수집부(110 내지 114)는 생성한 메시지를 통신관리자(미도시)를 통해 중앙 노드관리부(120)로 전송한다(S525).Response rate collecting unit (110 to 114) there is a thread (Thread) that is responsible for information transfer internally (S510). The purpose of placing such a thread is not to put a load on the runtime operation time of the web application server (130 to 134). The information delivery thread calculates an average value of processing speeds of all called applications in units of time (S515), and generates a message including an average response time (S520). Response rate collecting unit (110 to 114) transmits the generated message to the central node management unit 120 through a communication manager (not shown) (S525).

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The invention can also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명은 비즈니스 응용들의 평균 응답속도에 기초한 동적 부하 분석 방법으로, 종래의 다른 부하 분산 방법들에 비해 특정 노드에서 처리되는 응용의 응답속도가 비정상적으로 느려지는 것을 방지할 뿐만 아니라 모든 응용들의 응답속도가 느려지는 것을 방지하여 클라이언트 요청에 대해 빠른 응답속도를 보장한다.The present invention is a dynamic load analysis method based on the average response speed of business applications, as well as preventing the response speed of the application processed at a particular node from being unusually slow compared to other conventional load balancing methods, as well as the response speed of all applications. Speeds up response to client requests.

또한, 부하 분산을 위해 필요한 노드의 실행시간 계산을 부하 분산부와 별도의 서버에서 수행함으로써, 부하 분산부의 실행시간 속도 저하를 방지할 수 있으며 시스템의 성능과 안정성을 보장할 수 있다.In addition, by executing the calculation of the execution time of the node necessary for load balancing in a server separate from the load balancer, it is possible to prevent the speed reduction of the load balancer execution time and to ensure the performance and stability of the system.

도 1은 본 발명에 따른 동적 부하 분산 시스템의 일 실시예의 구성을 도시한 도면,1 is a diagram showing the configuration of an embodiment of a dynamic load balancing system according to the present invention;

도 2는 본 발명에 따른 동적 부하 분산 방법의 흐름을 도시한 흐름도,2 is a flowchart illustrating a flow of a dynamic load balancing method according to the present invention;

도 3은 본 발명에 따른 부하 분산부의 동작을 도시한 흐름도,3 is a flowchart illustrating an operation of a load balancer according to the present invention;

도 4는 본 발명에 따른 중앙 노드 관리부의 동작을 도시한 흐름도, 그리고,4 is a flowchart illustrating the operation of the central node management unit according to the present invention;

도 5는 본 발명에 따른 응답 속도 수집부의 동작을 도시한 흐름도이다.5 is a flowchart illustrating an operation of a response speed collector according to the present invention.

Claims (7)

소정의 노드 가중치 테이블을 기초로 적어도 하나 이상의 웹응용서버 중에서 클라이언트의 요청을 전송할 웹응용서버를 선택하는 부하 분산부;A load balancer for selecting a web application server to transmit a client request among at least one web application server based on a predetermined node weight table; 상기 각각의 웹응용서버에 구비되어 상기 클라이언트의 요청에 대한 웹응용서버의 평균 응답 속도를 계산하는 응답 속도 수집부; 및A response speed collector provided in each of the web application servers to calculate an average response speed of the web application server to the client request; And 상기 웹응용서버의 평균 응답 속도를 기초로 상기 노드 가중치 테이블을 보정하는 중앙 노드관리부;를 포함하는 것을 특징으로 하는 동적 부하 분산 시스템.And a central node manager for correcting the node weight table based on the average response speed of the web application server. 제 1항에 있어서,The method of claim 1, 상기 부하 분산부는 상기 선택된 웹응용서버로부터 상기 클라이언트 요청에 대한 정상적인 응답을 수신하지 못하면 상기 노드 가중치 테이블을 기초로 차선의 웹응용서버를 선택하는 것을 특징으로 하는 동적 부하 분산 시스템.And if the load balancer does not receive a normal response to the client request from the selected web application server, selects the next best web application server based on the node weight table. 제 1항에 있어서,The method of claim 1, 상기 중앙 노드관리부는 상기 각각의 웹응용서버의 평균 응답 속도의 합이 100이 되도록 환산하고, 상기 각각의 평균 응답 속도가 100 중에서 차지하는 비율을 기초로 상기 웹응용서버들의 가중치를 계산한 후, 상기 노드 가중치 테이블을 상기 계산된 가중치로 보정하는 것을 특징으로 하는 동적 부하 분산 시스템.The central node manager converts the average response speed of each web application server to be 100, calculates a weight of the web application servers based on a ratio of the average response speeds of 100, and then And correcting the node weight table with the calculated weight. 제 1항에 있어서,The method of claim 1, 상기 중앙 노드관리부는 상기 노드 가중치 테이블의 가중치를 소정의 임계 변화폭내에서 보정하는 것을 특징으로 하는 동적 부하 분산 시스템.And the central node manager corrects the weight of the node weight table within a predetermined threshold variation range. 소정의 노드 가중치 테이블을 기초로 적어도 하나 이상의 웹응용서버 중에서 클라이언트의 요청을 전송할 웹응용서버를 선택하는 단계;Selecting a web application server to transmit a client request from at least one web application server based on a predetermined node weight table; 상기 클라이언트의 요청에 대한 상기 웹응용서버의 평균 응답 속도를 계산하는 단계; 및Calculating an average response speed of the web application server to the client request; And 상기 웹응용서버의 평균 응답 속도를 기초로 상기 노드 가중치 테이블을 보정하는 단계;를 포함하는 것을 특징으로 하는 동적 부하 분산 방법.And calibrating the node weight table based on the average response speed of the web application server. 제 5항에 있어서,The method of claim 5, 상기 선택 단계는 상기 선택된 웹응용서버로부터 상기 클라이언트 요청에 대한 정상적인 응답을 수신하지 못하면 상기 노드 가중치 테이블을 기초로 차선의 웹응용서버를 선택하는 단계를 포함하는 것을 특징으로 하는 동적 부하 분산 방법.And selecting the next web application server based on the node weight table if the normal response to the client request is not received from the selected web application server. 제 5항에 있어서,The method of claim 5, 상기 보정 단계는 상기 노드 가중치 테이블의 가중치를 소정의 임계 변화폭내에서 보정하는 단계를 포함하는 것을 특징으로 하는 동적 부하 분산 방법.And the correcting step includes correcting a weight of the node weight table within a predetermined threshold variation range.
KR1020030093101A 2003-12-18 2003-12-18 System and method for dynamic load balancing KR100576713B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020030093101A KR100576713B1 (en) 2003-12-18 2003-12-18 System and method for dynamic load balancing
JP2004158135A JP2005182742A (en) 2003-12-18 2004-05-27 Dynamic load distribution system and its method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030093101A KR100576713B1 (en) 2003-12-18 2003-12-18 System and method for dynamic load balancing

Publications (2)

Publication Number Publication Date
KR20050063852A true KR20050063852A (en) 2005-06-29
KR100576713B1 KR100576713B1 (en) 2006-05-03

Family

ID=34793184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030093101A KR100576713B1 (en) 2003-12-18 2003-12-18 System and method for dynamic load balancing

Country Status (2)

Country Link
JP (1) JP2005182742A (en)
KR (1) KR100576713B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009041762A1 (en) * 2007-09-28 2009-04-02 Nexg Co., Ltd. Method and system for transmitting data using traffic distribution for each line between server and client connected by virtual interface
CN110278251A (en) * 2019-06-11 2019-09-24 中国农业机械化科学研究院 A kind of agricultural machinery big data platform server load balancing method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100446495C (en) * 2006-06-28 2008-12-24 华为技术有限公司 Method and system for sharing connection dynamically
CN109995818A (en) * 2017-12-29 2019-07-09 中移(杭州)信息技术有限公司 A kind of method and device of server load balancing
CN111124528B (en) * 2019-11-11 2023-06-27 泰康保险集团股份有限公司 Page loading method and device, electronic equipment and computer readable storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009041762A1 (en) * 2007-09-28 2009-04-02 Nexg Co., Ltd. Method and system for transmitting data using traffic distribution for each line between server and client connected by virtual interface
CN110278251A (en) * 2019-06-11 2019-09-24 中国农业机械化科学研究院 A kind of agricultural machinery big data platform server load balancing method

Also Published As

Publication number Publication date
JP2005182742A (en) 2005-07-07
KR100576713B1 (en) 2006-05-03

Similar Documents

Publication Publication Date Title
CN109308221B (en) Nginx dynamic load balancing method based on WebSocket long connection
US7543060B2 (en) Service managing apparatus for keeping service quality by automatically allocating servers of light load to heavy task
EP2515504B1 (en) Content delivery method, system and schedule server
EP1472846B1 (en) Method and apparatus for web farm traffic control
Lu et al. Join-idle-queue: A novel load balancing algorithm for dynamically scalable web services
US6401238B1 (en) Intelligent deployment of applications to preserve network bandwidth
US8626890B2 (en) Connection pool use of runtime load balancing service performance advisories
EP2137944B1 (en) On-demand propagation of routing information in distributed computing system
US7558859B2 (en) Peer-to-peer auction based data distribution
US7373644B2 (en) Automated server replication
US7437460B2 (en) Service placement for enforcing performance and availability levels in a multi-node system
US9703610B2 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US20050256971A1 (en) Runtime load balancing of work across a clustered computing system using current service performance levels
CN109547517B (en) Method and device for scheduling bandwidth resources
CN109218355A (en) Load equalizing engine, client, distributed computing system and load-balancing method
US20050088976A1 (en) Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
CN110933139A (en) System and method for solving high concurrency of Web server
CN108833462A (en) A kind of system and method found from registration service towards micro services
CN112217894A (en) Load balancing system based on dynamic weight
CN102724105B (en) A kind of load-balancing method and device
CN107426323A (en) One kind is based on distributed resource service and Visualized Monitoring System and method
CN112711479A (en) Load balancing system, method and device of server cluster and storage medium
CN117155942A (en) Micro-service dynamic self-adaptive client load balancing method and system
CN115714817A (en) Dynamic feedback weighted cloud storage resource scheduling method, device and equipment
KR100576713B1 (en) System and method for dynamic load balancing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100401

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee