KR20070032441A - Load balancing system based on fuzzy grouping and the load balancing method - Google Patents

Load balancing system based on fuzzy grouping and the load balancing method Download PDF

Info

Publication number
KR20070032441A
KR20070032441A KR1020050086666A KR20050086666A KR20070032441A KR 20070032441 A KR20070032441 A KR 20070032441A KR 1020050086666 A KR1020050086666 A KR 1020050086666A KR 20050086666 A KR20050086666 A KR 20050086666A KR 20070032441 A KR20070032441 A KR 20070032441A
Authority
KR
South Korea
Prior art keywords
load
server
fuzzy
load balancing
grouping
Prior art date
Application number
KR1020050086666A
Other languages
Korean (ko)
Other versions
KR100718907B1 (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 KR1020050086666A priority Critical patent/KR100718907B1/en
Publication of KR20070032441A publication Critical patent/KR20070032441A/en
Application granted granted Critical
Publication of KR100718907B1 publication Critical patent/KR100718907B1/en

Links

Images

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/1025Dynamic adaptation of the criteria on which the server selection is based
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

A system and a method for balancing load based on fuzzy grouping are provided to select the fittest server by monitoring a load state of each server in real-time, to distribute the load efficiently/stably by dynamically allocating the load to the servers, and reduce message overhead among the servers by allocating task to the server of the smallest load state. A load monitor(103) monitors load information of each server object(102) in real-time by each group. A fuzzy load balancer(104) infers service priority by using the collected load information. A global scheduler(105) allocates the task to the fittest server object based on the inferred service priority. The load monitor periodically transmits the collected load information to the fuzzy load balancer. The service priority is inferred based on a fuzzy rule. The fuzzy rule is defined by using CPU time usage and memory usage collected from each server object as an input value.

Description

퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법{LOAD BALANCING SYSTEM BASED ON FUZZY GROUPING AND THE LOAD BALANCING METHOD}Load balancing system based on fuzzy grouping and its load balancing method {LOAD BALANCING SYSTEM BASED ON FUZZY GROUPING AND THE LOAD BALANCING METHOD}

도 1은 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템을 도시한 블록도,1 is a block diagram illustrating a fuzzy grouping based load balancing system according to the present invention;

도 2는 본 발명에 따른 서비스 우선 순위를 추론하기 위해 사용되는 퍼지 규칙과 멤버쉽 그래프를 나타내는 도면,2 is a diagram illustrating a fuzzy rule and a membership graph used to infer service priorities according to the present invention;

도 3은 본 발명에 따른 그룹핑 방법을 나타내는 도면,3 is a view showing a grouping method according to the present invention;

도 4는 본 발명에 따른 퍼지 로드 밸런싱 작용을 설명 설명하는 흐름도,4 is a flowchart illustrating a fuzzy load balancing operation according to the present invention;

도 5는 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법을 설명하는 흐름도,5 is a flowchart illustrating a fuzzy grouping-based load balancing method according to the present invention;

도 6은 본 발명에 따른 서버수와 작업수에 따른 평균 응답시간과 처리율을 나타낸 그래프,6 is a graph showing the average response time and throughput according to the number of servers and the number of jobs according to the present invention;

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

101: 클라이언트 102: 서버 객체101: Client 102: Server Object

103: 부하 모니터링수단 104: 퍼지 로드 밸런싱수단103: load monitoring means 104: purge load balancing means

105: 글로벌 스케줄링수단105: global scheduling means

본 발명은 분산 객체 컴퓨팅 시스템(Distributed Object Computing System)에 관한 것으로, 특히 병렬로 운용되는 서버 객체들 사이에서의 부하가 균등하게 분배되도록 작업을 분산하여 할당하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a Distributed Object Computing System. In particular, a fuzzy grouping-based load balancing system and its load are distributed and allocated so that loads are distributed evenly among server objects operated in parallel. To a balancing method.

일반적으로 분산환경은 시스템 자원들이 물리 혹은 구성 측면에서 여러 곳에 떨어져 있는 환경을 말한다. 3티어(tier) 개념과 분산환경은 밀접한 관계가 있다. 여기서, 티어란 일련의 비슷한 객체가 나열된 상태에서의 열 또는 계층을 의미한다. 따라서, 3티어란 3개의 비슷한 객체를 말한다. 컴퓨터 프로그래밍에서는 프로그램의 일부가 여러 계층에 나뉘어 존재할 수 있으며, 그 계층 또한 네트워크상의 서로 다른 컴퓨터에 위치할 수 있다. 3티어에서는 데이터베이스, 미들웨어(middleware) 애플리케이션, 사용자 인터페이스 등이 모두 떨어져 있으므로, 각 계층 사이의 원활한 커뮤니케이션이 중요한 문제가 된다. 각 계층은 물리적으로 다른 컴퓨터에 존재하기도 하고, 한 컴퓨터에 모두 존재하기도 한다. 그러나 하나의 개념에 모두 포괄되는 것이 아니므로 각 계층이 서로에게 강력한 구속력이 없으면서도 동시에 서로를 잘 활용할 수 있어야 한다는 말이다. In general, a distributed environment is an environment in which system resources are separated from each other in terms of physical or configuration. The three-tier concept is closely related to the distributed environment. Here, a tier is a column or hierarchy with a series of similar objects listed. Thus, Tier 3 refers to three similar objects. In computer programming, parts of a program can exist in several layers, which can also be located on different computers on the network. In the third tier, databases, middleware applications, and user interfaces are all separated, so smooth communication between layers is an important issue. Each layer is physically on another computer, or all on one computer. However, not all concepts are encompassed, so that each class should be able to make good use of each other at the same time without having strong binding power on each other.

분산 환경에서 사용되는 분산객체는 물리 혹은 개념적으로 떨어져 있는 다양한 시스템 자원에 존재하는 개별 객체를 말하며, 이 객체들 사이의 원활한 의사소통을 위한 기술이 바로 분산객체의 핵심이다. 분산 환경은 3티어와 같이 종적으로 계층 구조가 나누어져 있거나, 같은 계층에 속하는 객체라고 해도 횡적으로 여러 시스템 자원에 나누어 존재하는 경우를 모두 의미하며, 이와 같은 환경에서 객체들 사이에 문제없이 의사를 주고 받을 수 있도록 하는 기술이 분산 환경 기술이다. Distributed objects used in distributed environment are individual objects that exist in various system resources that are physically or conceptually separated. The technology for smooth communication between these objects is the core of distributed objects. Distributed environment refers to all cases where hierarchical structure is divided like three tiers, or even objects belonging to the same hierarchically exist in several system resources horizontally. The technology that allows you to send and receive is distributed environment technology.

분산 환경에서 시행되는 분산 객체 컴퓨팅 시스템에서 서버 객체들은 원격의 클라이언트로부터 받은 서비스 요청을 처리해 주므로, 적합한 서비스를 처리해주는 서버를 선택하여 작업을 분배하는 기술인 로드 밸런싱(load balancing) 기법이 중요하다. 왜냐하면, 적절한 부하 분산 처리를 통해 전체 서버 시스템의 성능, 효율성, 그리고 신뢰성을 높일 수 있기 때문이다. In a distributed object computing system implemented in a distributed environment, server objects process service requests received from a remote client. Therefore, a load balancing technique, which is a technology of selecting a server that handles an appropriate service and distributing work, is important. This is because proper load balancing can increase the performance, efficiency, and reliability of the entire server system.

애플리케이션은 해야 할 작업이 있으며 그 작업에는 최소한 실행해야 할 프로세서 명령어가 있다. 애플리케이션을 실행하는 컴퓨터가 빠를수록 명령 실행 속도는 빨라지지만, 프로세서 속도에는 한계가 있다. 서버가 받는 동시 요청 개수가 증가함에 따라 작업 부하가 컴퓨터의 용량에 비해 너무 많아지게 되면 애플리케이션은 목표 응답 시간을 초과하게 된다. 이때의 해결책은 두 가지다 첫째는 더 빠른 컴퓨터를 사용하는 것이며, 둘째는 더 많은 컴퓨터를 사용하는 것이다. 더 빠른 컴퓨터를 사용하는 해결 방법은 항상 적용가능하지도 않고, 또한 많은 비용이 든다. 뿐만 아니라, 아무리 빠른 컴퓨터를 쓴다고 해도 결국 더 빠른 성능이 필요할 것이다. 어떤 효율적인 디자인이라도 그 애플리케이션이 다수의 서버에 설치될 필요가 있을 것이라는 가능성을 포함해야한다. 이를 수평적 확장성이라고 부른다. The application has a task to do and at least a processor instruction to execute. The faster the computer running the application, the faster the instruction is executed, but the processor speed is limited. As the number of concurrent requests the server receives increases, if the workload becomes too large for the computer's capacity, the application will exceed its target response time. There are two solutions: first, using faster computers, and second, using more computers. The solution using a faster computer is not always applicable and also expensive. In addition, no matter how fast a computer is, eventually it will need faster performance. Any efficient design should include the possibility that the application will need to be installed on multiple servers. This is called horizontal scalability.

수평적 확장성을 달성하는 기술 중 하나가 바로 로드 밸런싱이다. 로드 밸런싱은 서로 다른 컴퓨터가 각자 다양한 프로세서 용량을 효율적으로 사용하는 것을 보증하는 메커니즘이다. 로드 밸런싱 기법은 가장 바쁘지 않은 자원에 요청을 전달해야한다. 그러나 몇몇 로드 밸런싱 기법에서는 그러한 라우팅이 어려울 수 있으며, 특히 세션 기반의 애플리케이션 같은 몇몇 애플리케이션에서는 적당하지 않을 수 있다. 따라서, 애플리케이션에 가장 적절한 로드 밸런싱 메커니즘을 결정해야한다.One technique for achieving horizontal scalability is load balancing. Load balancing is a mechanism to ensure that different computers efficiently use different processor capacities. Load balancing techniques should pass requests to the least busy resources. However, in some load balancing techniques such routing may be difficult, and may not be suitable for some applications, especially session-based applications. Therefore, you need to determine the load balancing mechanism that is most appropriate for your application.

종래의 로드 밸런싱 기법에는 주로 랜덤(random)과 라운드-로빈(round-robin) 기법을 많이 사용하고 있다. 왜냐하면, 구현이 쉽고 간단하고 관리하기 쉽기 때문이다. 랜덤 기법은 서비스 요청이 있는 경우에 임의의 순서대로 요청을 할당해주는 방식이다. 이 기법은 서버 부하 상태를 전혀 고려하지 않고 임의의 선택된 서버에게 무조건 요청을 할당해 주는 방법을 취하고 있다. 그리고 라운드-로빈은 서비스 요청이 있는 경우에 서버의 정해진 순서에 따라 요청을 할당해주는 방식이다. 이 기법 역시 랜덤 기법과 마찬가지로 서버 부하 상태는 전혀 고려하지 않고 정해진 할당 순서에 따라 서비스 요청시 무조건으로 할당해주는 정적인 알고리즘이다.Conventional load balancing techniques mainly use random and round-robin techniques. Because it's easy to implement, simple, and easy to manage. The random scheme allocates requests in random order when there are service requests. This technique takes a method of unconditionally allocating requests to any selected server without considering server load conditions. Round-robin is a method of allocating requests according to a predetermined order of servers when there are service requests. Like the random technique, this technique is a static algorithm that unconditionally allocates service requests according to a predetermined allocation order without considering server load conditions.

이와 같은 로드 밸런싱에 대한 일례가 대한민국 특허 등록공보 10-0271199호(논리적프로세싱을 이용한 분산형컴퓨팅 시스템 및 그 방법)에 개시되어 있다.An example of such load balancing is disclosed in Korean Patent Registration Publication No. 10-0271199 (Distributed Computing System Using Logical Processing and Method).

상기 공보에 개시된 기술은 논리적 및 물리적인 두 가지 수준의 추상화를 포함하는 서버 프로세스들을 제공함으로써 분산형 네트워크 시스템의 로드 밸런싱을 제공하고, 가정에 의하여 물리적 프로세스들은 전송 메커니즘에 의하여 지원되는 어드레스들을 가지나, 반면에 논리적 프로세스들은 그러한 어드레스들을 갖지 않으므로, 각 논리적 프로세스는 일련의 물리적 프로세스들에 의하여 구현되며, 시스템은 상기 둘 사이의 매핑을 유지하고, 시스템은 또한, 클라이언트가 논리적 프로세스로 메시지를 송신할 수 있게 하며, 상기 메시지는 자동으로 적절한 물리적 프로세스로 재지정되도록 하는 인터페이스들을 제공하는 논리적 프로세싱을 이용한 분산형 컴퓨팅 시스템 및 그 방법에 대해 개시되어 있다.The technique disclosed in this publication provides load balancing of a distributed network system by providing server processes that include two levels of abstraction, both logical and physical, whereby physical processes have addresses supported by a transport mechanism, On the other hand, since logical processes do not have such addresses, each logical process is implemented by a series of physical processes, the system maintains a mapping between the two, and the system also allows the client to send messages to the logical process. And a message is disclosed for a distributed computing system and method using logical processing that provides interfaces that automatically redirect to an appropriate physical process.

또, 로드 밸런싱에 대한 일례가 대한민국 특허 공개공보 2005-0043616호(서버의 클러스터를 작동시키는 방법 및 시스템과 컴퓨터판독 가능한 기록 매체)에 개시되어 있다.In addition, an example of load balancing is disclosed in Korean Patent Laid-Open Publication No. 2005-0043616 (method and system for operating a cluster of servers and a computer-readable recording medium).

상기 공보에 개시된 기술은 서버 클러스터를 작동시키기 위한 시스템, 방법 및 프로그램 제품이 개시되고, 서버로부터 분리되는 로드 밸런서는 로드 밸런싱 알고리즘에 기반하여 클러스터에 할당된 각각의 작업 요청을 처리하는 서버를 선택하고, 그 작업 요청을 선택된 클러스터에 전송하고, 로드 밸런서는 클러스터의 현재의 멤버가 아닌 다른 서버로부터 요청을 수신하고, 그 요청은 상기 다른 서버가 작업 요청을 처리하는 클러스터의 멤버가 될 것을 요청하고, 그 요청에 응답하여, 로드 밸런서는 상기 다른 서버를 클러스터의 멤버로서 가입시켜 클러스터에 후속적으로 할당되는 소정의 작업 요청을 처리하며, 상기 다른 서버는 상기 로드 밸런서에 대해 상기 다른 서버에 대한 로드 임계치를 지정하고, 상기 다른 서버는 상기 로드 밸런서에 대해 상기 서버용으로 사용될 타임 아웃을 지정하고, 상기 타임 아웃은 이전의 헬로우 메세지를 전송한 이후에 헬로우 메세지를 송신하기 위해 상기 다른 서버에 할당된 시간을 나타내는 서버의 클러스터를 작동시키는 방법 및 시스템과 컴퓨터판독 가능한 기록 매체에 대해 개시되어 있다.The technique disclosed in this publication discloses a system, method, and program product for operating a server cluster, wherein a load balancer that is separate from the server selects a server that processes each work request assigned to the cluster based on a load balancing algorithm. Send the work request to the selected cluster, the load balancer receives the request from a server other than the current member of the cluster, and the request requests that the other server be a member of the cluster that processes the work request, In response to the request, the load balancer joins the other server as a member of the cluster to process a predetermined job request that is subsequently assigned to the cluster, and the other server load thresholds for the other server against the load balancer. , The other server is configured for the load balancer. Specify a timeout to be used for the existing server, the timeout operating a cluster of servers representing the time allotted to the other server to send the hello message after sending the previous hello message and the computer read A possible recording medium is disclosed.

그러나 상기 공보 10-0271199호에 개시된 기술에 있어서는 논리적 및 물리적인 두 가지 수준의 추상화를 이용하는 로드 밸런싱이며, 상기 공보 2005-0043616호에 개시된 기술에 있어서는 클러스터 내의 서버들에 작업 요청을 할당하기 위한 로드 밸런싱으로 전체 시스템의 상태를 고려하지 않고, 정해진 순서나 임의의 순서로 부하 분산을 처리하는 문제가 있었다. However, in the technique disclosed in the above-mentioned publication 10-0271199, it is load balancing using two levels of logical and physical abstraction, and in the technique disclosed in the above publication 2005-0043616, the load for allocating work requests to servers in a cluster. There was a problem in that load balancing was performed in a predetermined order or in an arbitrary order without considering the state of the entire system by balancing.

예를 들어, 최초의 요청이 처음 서버로 할당되고, 두 번째 요청은 두 번째 서버로 할당되고, 세 번째 요청은 세 번째 서버로 할당되어 실행중인 분산 처리 시스템이 있다. 이러한 처리 과정이 반복되어 네 번째 요청이 다시 처음 서버로 갈 경우, 만약 처음 서버가 처리하는데 몇 분이 걸리는 아주 큰 데이터 파일 요청을 받아서 첫 요청을 다 처리하지 못한 상태라면 네 번째 요청의 처리는 지연시킬 수밖에 없다. 그러나 네 번째 요청이 들어오는 시각에 두 번째 서버는 이미 두 번째 요청을 다 완료하였어도 종래의 기술과 상기 공보상의 기술들은 서버 상태를 전혀 고려하지 않고 처음 서버로 할당된다. 즉, 어떤 서버는 쉬는 상태가 되는 반면 어떤 서버는 과부하 상태가 되는 현상이 발생하여 상당히 비효율적으로 서버를 사용하게 되는 문제가 있었다.For example, there is a distributed processing system where the first request is assigned to the first server, the second request is assigned to the second server, and the third request is assigned to the third server. If this process is repeated and the fourth request goes back to the first server, if the first server receives a very large data file request that takes several minutes to process and fails to process the first request, the processing of the fourth request will be delayed. There is no choice but to. However, at the time when the fourth request comes in, even if the second server has already completed the second request, the prior art and the above-mentioned technologies are assigned to the first server without any consideration of the server status. That is, some servers are in a rest state while some servers are overloaded, resulting in a problem of using the server quite inefficiently.

본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위해 이루어진 것으 로서, 각 서버들의 부하상태를 실시간으로 모니터하여 가장 적합한 서버를 선택할 수 있는 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법을 제공하는 것이다.An object of the present invention is to solve the problems as described above, to provide a fuzzy grouping-based load balancing system and load balancing method that can monitor the load status of each server in real time to select the most suitable server will be.

본 발명의 다른 목적은 서버에 부하를 동적으로 할당하여 좀 더 효율적이고 안정적인 부하 분산을 가능하게 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법을 제공하는 것이다.Another object of the present invention is to provide a fuzzy grouping-based load balancing system and a load balancing method for dynamically allocating load to a server to enable more efficient and stable load balancing.

본 발명의 다른 목적은 그룹핑 개념을 사용하여 가장 적은 부하 상태인 서버에 작업을 할당하여 서버 간의 메시지 오버헤드를 감소시킬 수 있는 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법을 제공하는 것이다.Another object of the present invention is to provide a fuzzy grouping-based load balancing system and a load balancing method capable of reducing message overhead between servers by allocating tasks to servers having the least load using the concept of grouping.

상기 목적을 달성하기 위해 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템은 클라이언트와 네트워크를 통하여 연결되어 상기 클라이언트의 요청을 수행하는 다수의 서버 객체들을 구비하고, 병렬로 운용되는 각 서버 객체를 성능에 따라 그룹핑하여 부하를 각 서버 객체에 동적으로 할당하는 로드 밸런싱 시스템으로서, 상기 그룹핑된 그룹마다 각 서버 객체의 부하 정보를 실시간으로 모니터링하는 부하 모니터링수단, 상기 수집된 부하 정보를 이용하여 서비스 우선순위를 추론하는 퍼지 로드 밸런싱수단, 상기 추론된 서비스 우선순위에 따라 가장 적합한 서버 객체에게 작업을 할당하는 글로벌 스케줄링수단을 포함하며, 상기 부하 모니터링수단은 상기 퍼지 로드 밸런싱수단에게 수집된 부하 정보를 주기적으로 전송하는 것을 특징으로 한다.In order to achieve the above object, a fuzzy grouping-based load balancing system according to the present invention includes a plurality of server objects connected to a client through a network to perform a request of the client, and each server object operated in parallel to performance. A load balancing system for dynamically allocating loads to respective server objects by grouping the loads, wherein the load monitoring means monitors load information of each server object in real time for each grouped group; Fuzzy load balancing means for inferring, and global scheduling means for allocating work to a server object most suitable according to the inferred service priority, wherein the load monitoring means periodically transmits the collected load information to the fuzzy load balancing means. Characterized by The.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 상기 서비스 우선순위는 각 서버 객체로부터 수집한 CPU 시간의 사용량과 메모리 사용량을 입력값으로 사용하여 정의된 퍼지 규칙에 의해 추론되는 것을 특징으로 한다.In addition, in the fuzzy grouping-based load balancing system according to the present invention, the service priority is inferred by a fuzzy rule defined by using CPU time and memory usage collected from each server object as input values. It is done.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 상기 그룹핑은 활성화된 서버 객체의 수를 그룹당 들어가는 서버 객체의 수로 나누어 그룹수를 계산하고, 그룹핑 할 서버 객체의 랭크 넘버에 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산하여 이루어지는 것을 특징으로 한다.In addition, in the fuzzy grouping-based load balancing system according to the present invention, the grouping is calculated by dividing the number of activated server objects by the number of server objects per group, calculating the number of groups, and calculating the group number in the rank number of server objects to be grouped. The number of server objects to be included in the same group is calculated by adding the number.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 새로운 서버 객체가 추가될 경우, 상기 글로벌 스케줄링수단은 가장 높은 부하 상태의 그룹에게 상기 새로운 서버 객체를 추가시키는 것을 특징으로 한다.In addition, in the fuzzy grouping-based load balancing system according to the present invention, when a new server object is added, the global scheduling means adds the new server object to the highest load group.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 고장난 서버 객체가 발생할 경우, 고장난 서버 객체의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체로 재할당하는 것을 특징으로 한다.In addition, in the fuzzy grouping-based load balancing system according to the present invention, when a failed server object occurs, the work of the failed server object is reassigned to another server object according to a load state of another group.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 새로운 그룹이 추가될 경우, 상기 글로벌 스케줄링수단은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당하는 것을 특징으로 한다.In addition, in the fuzzy grouping-based load balancing system according to the present invention, when a new group is added, the global scheduling means allocates a service to the newly added group according to the updated service priority.

또, 상기 목적을 달성하기 위해 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법은 클라이언트와 네트워크를 통하여 연결되어 상기 클라이언트의 요청을 수행하는 다수의 서버 객체들을 구비하고, 병렬로 운용되는 각 서버 객체들을 성능 에 따라 그룹핑하여 부하를 각 서버 객체에 동적으로 할당하는 로드 밸런싱 방법으로서, 상기 클라이언트로부터 서비스를 요청받는 단계, 상기 서버 객체들의 부하 정보를 부하 모니터링수단에서 모니터링하여 수집하는 단계, 상기 부하 정보에 따라 각각의 서버 그룹의 서비스 우선순위를 퍼지 로드 밸런싱수단에서 추론하는 단계, 사기 추론 단계에서 추론된 서비스 우선순위에 따라 상기 클라이언트의 요청을 글로벌 스케줄링수단이 가장 적합한 서버 객체에게 할당하는 단계를 포함하고, 상기 부하 모니터링수단은 상기 퍼지 로드 밸런싱수단에게 수집된 부하 정보를 주기적으로 전송하는 것을 특징으로 한다.In addition, in order to achieve the above object, the fuzzy grouping-based load balancing method according to the present invention includes a plurality of server objects connected to a client through a network to perform a request of the client, and each server object operated in parallel. A load balancing method for dynamically allocating load to each server object by grouping according to performance, the method comprising: receiving a service request from the client; monitoring and collecting load information of the server objects by load monitoring means; Inferring the service priority of each server group by the fuzzy load balancing means, and allocating the request of the client to the server object most suitable for the global scheduling means according to the service priority inferred in the fraud inference step. The load monitor Means is characterized in that it periodically transmits the collected information to the load balancing means for the purge rod.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 상기 서비스 우선순위를 추론하는 단계는 상기 부하 모니터링수단이 각 서버 객체로부터 수집한 CPU 시간의 사용량과 메모리 사용량을 퍼지 규칙을 이용하여 추론하는 것을 특징으로 한다.In addition, in the fuzzy grouping-based load balancing method according to the present invention, the inferring of the service priority may infer the usage of the CPU time and the memory usage collected by the load monitoring unit from each server object using a fuzzy rule. Characterized in that.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 상기 그룹핑은 활성화된 서버 객체의 수를 그룹당 들어가는 서버 객체의 수로 나누어 그룹수를 계산하고, 그룹핑 할 서버 객체의 랭크 넘버에 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산하여 이루어지는 것을 특징으로 한다.In addition, in the fuzzy grouping-based load balancing method according to the present invention, the grouping is calculated by dividing the number of activated server objects by the number of server objects per group, calculating the number of groups, and calculating the group number in the rank number of server objects to be grouped. The number of server objects to be included in the same group is calculated by adding the number.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 새로운 서버 객체가 추가될 경우, 상기 글로벌 스케줄링수단은 가장 높은 부하 상태의 그룹에게 상기 새로운 서버 객체를 추가시키는 것을 특징으로 한다.In addition, in the fuzzy grouping-based load balancing method according to the present invention, when a new server object is added, the global scheduling means adds the new server object to the group having the highest load state.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 고장난 서버 객체가 발생할 경우, 고장난 서버 객체의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체로 재할당하는 것을 특징으로 한다.In addition, in the fuzzy grouping-based load balancing method according to the present invention, when a failed server object occurs, the failed server object may be reassigned to another server object according to a load state of another group.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 새로운 그룹이 추가될 경우, 상기 글로벌 스케줄링수단은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당하는 것을 특징으로 한다.Further, in the fuzzy grouping-based load balancing method according to the present invention, when a new group is added, the global scheduling means allocates a service to a newly added group according to the updated service priority.

이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시 예를 첨부된 도면을 참조로 하여 상세히 설명하기로 한다. Hereinafter, the most preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily practice the present invention. .

도 1은 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템을 도시한 블록도이다.1 is a block diagram illustrating a fuzzy grouping based load balancing system according to the present invention.

도 1에서 도시하는 바와 같이, (101)은 서비스를 요청하는 클라이언트이며, (102)는 클라이언트(101)의 요청을 수행하는 서버 객체이며, 다수의 서버 객체(102)들은 각 서버 객체(102)의 성능에 따라 그룹핑되어 병렬로 운용된다.As shown in FIG. 1, 101 is a client requesting a service, 102 is a server object performing a request of the client 101, and a plurality of server objects 102 are each server object 102. They are grouped according to their performance and run in parallel.

(103)은 상기 그룹핑된 그룹의 각 서버 객체(102)들의 부하 정보를 실시간으로 모니터링하는 부하 모니터링수단이며, (104)는 부하 모니터링수단(103)으로부터 부하 정보를 전송받아 서비스 우선순위를 추론하는 퍼지 로드 밸런싱수단이며, (105)는 퍼지 로드 밸런싱수단(104)로부터 서비스 우선순위를 전송받아 시행해야할 작업에 가장 적합한 서버 객체에게 작업을 할당하는 글로벌 스케줄링수단이다.Numeral 103 is a load monitoring means for monitoring load information of each server object 102 of the grouped group in real time, and 104 is inferred of service priority by receiving load information from the load monitoring means 103. The fuzzy load balancing means 105 is a global scheduling means for receiving a service priority from the fuzzy load balancing means 104 and assigning a task to a server object most suitable for a task to be executed.

도 1에 도시된 서버 객체(102)들은 두 개의 서버 객체를 하나의 그룹으로 그룹핑하고, 그룹마다 하나의 부하 모니터링수단(103)을 위치시켰다. 로드 밸런싱은 정확한 시스템 상태 정보를 요구하기 때문에, 각 그룹에서 부하 모니터링수단(103)은 이러한 서버 객체 상태의 부하 정보를 수집하는 역할을 한다. 또한, 여기서 부하 모니터링수단(103)은 부하 정보를 퍼지 로드 밸런싱수단(104)에게 전송한다. 부하 모니터링수단(103)은, 예를 들어 매 2초마다 두 서버 객체(102)의 부하 정보인 CPU 시간의 사용량과 메모리 사용량을 측정하고, 측정된 부하 정보를 비동기적인 이벤트의 형태로 퍼지 로드 밸런싱수단(104)에게 전송한다. 이 부하 정보를 통해 퍼지 로드 밸런싱수단(104)은 퍼지 규칙을 통해 서비스 우선순위를 추론하고, 그 결과를 글로벌 스케줄링수단(105)에게 전송한다. 그 후 글로벌 스케줄링수단(105)은 서비스 우선순위를 바탕으로 가장 적합한 서버 객체(102)를 선택하여 클라이언트(101)의 요청을 선택된 서버 객체(102)에게 할당한다. 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에서는 퍼지 로드 밸런싱수단(104)이 주기적으로 부하 모니터링수단(103)으로부터 쿼리(query)하는 폴링(polling) 정책을 적용하는 대신에, 부하 모니터링수단(103)이 주기적으로 퍼지 로드 밸런싱수단(104)에게 부하 정보를 측정하여 보내는 푸쉬(push) 정책을 사용하고 있다.The server objects 102 shown in FIG. 1 group two server objects into one group and place one load monitoring means 103 per group. Since load balancing requires accurate system state information, the load monitoring means 103 in each group serves to collect load information of such server object state. The load monitoring means 103 also transmits load information to the purge load balancing means 104. The load monitoring means 103 measures, for example, the CPU time usage and the memory usage, which are load information of the two server objects 102, every two seconds, and the measured load information is fuzzy load balancing in the form of an asynchronous event. Send to means 104. Through this load information, the fuzzy load balancing means 104 infers the service priority through the fuzzy rule and transmits the result to the global scheduling means 105. The global scheduling means 105 then selects the most appropriate server object 102 based on the service priority and assigns the request of the client 101 to the selected server object 102. In the load balancing system based on the fuzzy grouping according to the present invention, instead of applying a polling policy in which the fuzzy load balancing means 104 queries the load monitoring means 103 periodically, the load monitoring means 103 ) Uses a push policy that periodically measures and sends load information to the fuzzy load balancing means 104.

다음에 도 1에 도시된 시스템에 적용되는 규칙에 대해 도 2에 따라 설명한다.Next, a rule applied to the system shown in FIG. 1 will be described with reference to FIG. 2.

도 2는 본 발명에 따른 서비스 우선 순위를 추론하기 위해 사용되는 퍼지 규칙과 멤버쉽 그래프를 나타내는 도면이다.2 is a diagram illustrating a fuzzy rule and a membership graph used to infer service priorities according to the present invention.

도 2에 도시된 퍼지 규칙과 멤버쉽 그래프는 퍼지 로드 밸런싱수단(104)이 서비스 우선순위를 결정하기 위해 사용된다. 퍼지 로드 밸런싱수단(104)은 퍼지 로직 제어 기반의 조건제어(IF-THEN) 규칙을 사용하여 복잡하고 애매모호한 비선형 시스템을 퍼지 규칙을 사용하여 효율적으로 제어할 수 있다. 따라서, 퍼지 로드 밸런싱수단(104)은 효율적인 로드 밸런싱을 위해 이 알고리즘을 사용하고 있으며, 이에 필요한 멤버쉽 그래프와 퍼지 규칙을 도 2와 같이 설정하였다. 도 2(a, b)는 CPU 시간의 사용량과 메모리 사용량을 멤버쉽 그래프로 나타낸 것이며, 이는 퍼지 규칙의 입력값으로 사용된다. 또한, 도 2(c)는 서비스 우선순위를 멤버쉽 그래프로 나타낸 것이며, 이는 퍼지 규칙의 결과값으로 사용된다.The fuzzy rules and membership graphs shown in FIG. 2 are used by the fuzzy load balancing means 104 to determine service priorities. The fuzzy load balancing means 104 can efficiently control complex and ambiguous nonlinear systems using fuzzy rules using fuzzy logic control based condition control (IF-THEN) rules. Therefore, the fuzzy load balancing means 104 uses this algorithm for efficient load balancing, and sets the membership graph and the fuzzy rule necessary for this as shown in FIG. 2 (a, b) shows the usage of the CPU time and the memory usage in a membership graph, which is used as an input value of the fuzzy rule. In addition, Figure 2 (c) shows the service priority in a membership graph, which is used as a result of the fuzzy rule.

CPU 시간의 사용량은 '낮다(low, L)', '보통보다 낮다(less than moderate, LMO)', '보통(moderate, MO)', '높다(high, H)', '매우 높다(very high, VH)'의 퍼지 집합으로 정의하여 분류할 수 있다. 또한, 메모리 사용량은 '작다(small, S)', '보통보다 작다(less than medium, LME)', '보통(medium, ME)', '크다(large, L)'의 퍼지 집합으로 정의하여 분류할 수 있다. 그리고 두 부하 정보를 사용해 가장 적합한 서버를 판단하기 위해 도 2(c)와 같은 7개의 카테고리로 서비스 우선순위를 분류한다. 이 우선순위를 추론하는데 필요한 퍼지 규칙은 도 2(d)와 같이 정의한다. VL은 '매우 낮다(very low)', L은 '낮다(low)', LME는 '보통보다 낮다(less than medium)', ME는 '보통(medium)', MME는 '보통보다 높다(more than medium)', H는 '높다(high)', VH는 '매우 높다(very high)'를 의미한다.CPU time usage is 'low, L', 'less than moderate (LMO)', 'moderate (MO)', 'high, H', and 'very high' (very high, VH) 'can be defined and classified. In addition, the memory usage is defined as a fuzzy set of 'small (S)', 'less than medium (LME),' medium (ME), 'large (L)' Can be classified. In order to determine the most suitable server using the two load information, service priority is classified into seven categories as shown in FIG. The fuzzy rule required to infer this priority is defined as shown in FIG. VL is 'very low', L is 'low', LME is 'less than medium', ME is 'medium' and MME is 'more than normal' than medium) ', H means' high' and VH means' very high '.

예를 들어, CPU 시간의 사용량이 LMO이고 메모리 사용량이 S이면, 서비스 우선순위는 VL값을 추론하게 된다. 퍼지 로드 밸런싱수단(104)은 이러한 퍼지 로직 제어를 사용하여 보다 효율적인 로드 밸런싱이 가능하도록 가장 적합한 서버 객체를 추론하여 선택한다.For example, if the CPU time usage is LMO and the memory usage is S, the service priority will infer the VL value. The fuzzy load balancing means 104 infers and selects the most suitable server object to enable more efficient load balancing using this fuzzy logic control.

다음에 도 1에 도시된 시스템의 서버의 그룹핑에 대해 도 3에 따라 설명한다.Next, grouping of servers of the system shown in FIG. 1 will be described with reference to FIG. 3.

도 3은 본 발명에 따른 그룹핑 방법을 나타내는 도면이다.3 is a diagram illustrating a grouping method according to the present invention.

도 3에서 도시하는 바와 같이, 6개의 서버 객체들이 세 개의 그룹으로 그룹핑된다. 그룹핑은 CPU와 메모리의 성능에 따라 이루어진다. 각 서버 객체마다 성능이 다르기 때문에 그룹의 성능 평준화를 위해 각 서버 객체 성능의 체크가 필요하다. As shown in FIG. 3, six server objects are grouped into three groups. Grouping is based on the performance of the CPU and memory. Since the performance of each server object is different, it is necessary to check the performance of each server object in order to equalize the performance of the group.

우선, 그룹핑을 하기 위해 각 CPU와 메모리 성능에 따라 랭크 넘버(Rank Number)를 정하고, 아래의 수식에 따라 생성할 그룹수를 계산한다.First, in order to group, a rank number is determined according to each CPU and memory performance, and the number of groups to be generated is calculated according to the following formula.

[그룹수 = 활성화된 서버 객체의 수 / 그룹당 들어가는 서버 객체의 수][Number of groups = number of active server objects / number of server objects entering per group]

다음으로, 그룹핑 할 서버 객체의 랭크 넘버에 상기 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산한다.Next, the rank number of the server object to be included in the same group is calculated by adding the calculated number of groups to the rank number of the server object to be grouped.

[그룹에 포함할 서버 객체의 랭크 넘버 = 그룹핑 할 서버 객체의 랭크 넘버 + 그룹수][Rank number of server objects to be included in the group = rank number of server objects to be grouped + number of groups]

이렇게 계산된 그룹핑 할 서버 객체의 랭크 넘버와 그룹에 포함할 서버 객체의 랭크 넘버를 가진 서버 객체들이 하나의 그룹을 생성한다.The server objects with the rank number of the server object to be grouped and the rank number of the server object to be included in the group are created as one group.

예를 들어, 활성화된 서버 객체의 수가 6이고, 그룹당 들어가는 서버 객체의 수가 2라면, 그룹수는 3이다. 이제 랭크 넘버와 그룹수를 더하여 그룹화를 한다. 랭크 넘버 1은 그룹의 수인 3과 더하여 4가 된다. 즉, 랭크 넘버가 1인 서버 객체는 랭크 넘버가 4인 서버 객체와 같은 그룹이 된다. 이러한 계산에 의해 {1, 4}, {2, 5}, {3, 6}가 같은 그룹이 된다.For example, if the number of active server objects is six and the number of server objects entering per group is two, the number of groups is three. Now add the rank number and the number of groups to group. Rank number 1 equals 4, the number of groups. That is, the server object with rank number 1 becomes the same group as the server object with rank number 4. This calculation makes {1, 4}, {2, 5}, and {3, 6} the same group.

만약, 새로운 서버 객체(102)가 추가될 경우 글로벌 스케줄링수단(105)은 가장 높은 부하 상태의 그룹에게 새로운 서버 객체(102)를 추가시킨다.If a new server object 102 is added, the global scheduling means 105 adds the new server object 102 to the group of highest load.

또, 고장난 서버 객체(102)가 발생할 경우 고장난 서버 객체(102)의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체(102)로 재할당한다.In addition, when a failed server object 102 occurs, the work of the failed server object 102 is reassigned to another server object 102 according to the load status of another group.

또, 새로운 그룹이 추가될 경우 글로벌 스케줄링수단(105)은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당한다.In addition, when a new group is added, the global scheduling means 105 allocates a service to the newly added group according to the updated service priority.

다음에 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 대해 도 4 내지 도 5에 따라 설명한다.Next, a fuzzy grouping-based load balancing method according to the present invention will be described with reference to FIGS. 4 to 5.

도 4는 본 발명에 따른 퍼지 로드 밸런싱 작용을 설명 설명하는 흐름도이며, 도 5는 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법을 설명하는 흐름도이다.4 is a flowchart illustrating a fuzzy load balancing operation according to the present invention, and FIG. 5 is a flowchart illustrating a fuzzy grouping based load balancing method according to the present invention.

우선, 글로벌 스케줄링수단(105)이 클라이언트(101)로부터 서비스를 요청받 는다(ST 501). 그러면, 부하 모니터링수단(103)은 서버 객체(102)들의 부하 정보를 모니터링하여 수집하고(ST 502), 수집된 부하 정보는 퍼지 로드 밸런싱수단(104)으로 전송한다. 퍼지 로드 밸런싱수단(104)은 전송된 부하 정보를 바탕으로 각 그룹의 서비스 우선순위를 추론하고(ST 503), 추론된 서비스 우선순위는 글로벌 스케줄링수단(105)으로 전송한다. 글로벌 스케줄링수단(105)은 전송된 서비스 우선순위에 따라 가장 적합한 서버 객체(102)에게 클라이언트(101)의 요청을 할당한다(ST 504).First, the global scheduling means 105 receives a service request from the client 101 (ST 501). Then, the load monitoring means 103 monitors and collects load information of the server objects 102 (ST 502), and transmits the collected load information to the fuzzy load balancing means 104. The fuzzy load balancing means 104 infers the service priority of each group based on the transmitted load information (ST 503), and transmits the inferred service priority to the global scheduling means 105. The global scheduling means 105 allocates the request of the client 101 to the most suitable server object 102 according to the transmitted service priority (ST 504).

이상 본 발명자에 의해서 이루어진 발명을 상기 실시예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시예에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.As mentioned above, although the invention made by this inventor was demonstrated concretely according to the said Example, this invention is not limited to the said Example and can be variously changed in the range which does not deviate from the summary.

또, 본 발명이 상용화될 경우, 여러 대의 서버를 그룹화하여 서버를 구성하여 운영하는 큰 이-비즈니스(e-Business) 기업이나 이-커머스(e-Commerce) 조직에서 거래 업무를 처리하기 위해 적용될 수 있으며, 많은 웹사이트뿐만 아니라 많은 서버들을 호스팅하는 인터넷 서비스 프로바이더(Internet Service Provider, ISP)에게 아주 유용하다. 그리고 다수의 사용자가 접속하는 인터넷 쇼핑몰과 온라인 게임업계의 활성화로 인하여 이와 관련된 업체들은 서버의 효율적인 사용이 필요하다. 또한, 로드 밸런싱은 VPN에서도 중요한 부분을 차지하고 있어 앞으로도 많이 활용될 전망이다.In addition, when the present invention is commercialized, it can be applied to process a transaction in a large e-business enterprise or an e-Commerce organization in which a plurality of servers are grouped and operated. It is very useful for Internet Service Providers (ISPs) that host many servers as well as many websites. In addition, due to the activation of the Internet shopping mall and the online game industry that are accessed by a large number of users, related companies need to use the server efficiently. In addition, load balancing is an important part of VPNs and is expected to be utilized in the future.

본 발명은 종래의 로드 밸런싱 기법들과 비교하여 좀 더 향상된 최적화 모델을 구축하며 보다 나은 지능형 로드 밸런싱 모델을 생성함을 시뮬레이션을 통하여 비교 분석하였다.The present invention compared and analyzed conventional load balancing techniques to build a more advanced optimization model and to generate a better intelligent load balancing model through simulation.

본 시뮬레이션에서는 본 발명과 기존의 랜덤, 라운드-로빈 기법과의 작업에 대한 평균 응답 시간과 처리율을 비교하였다. 각 서버에 도착하는 작업은 λ=6으로 포아송(Poisson) 분산을 모델화하고, 모든 서버에 같은 비율로 작업이 도착한다는 것을 가정하였다. 또한, 작업 요청에 대한 서비스 시간과 CPU 시간의 사용량과 메모리 사용량은 규칙적으로 분산시켰다. 이 시뮬레이션 환경은 작업이 1500개가 들어왔을 때 서버 2대에서 12대가 존재할 때, 서버 6대가 존재하며 작업이 100~3000개 요청될 때의 평균 응답시간과 처리율을 비교하였으며, 그 결과는 도 6과 같다.In this simulation, we compared the average response time and throughput for our work with the existing random and round-robin techniques. The task arriving at each server modeled the Poisson distribution with λ = 6 and assumed that the task arrived at the same rate on all servers. In addition, service time, CPU time usage, and memory usage for work requests are regularly distributed. This simulation environment compares the average response time and throughput when there are 6 servers when there are 1500 to 2 jobs and 6 servers when there are 100 to 3000 jobs. same.

도 6은 서버수와 작업수에 따른 평균 응답시간과 처리율을 나타낸 그래프이다. 6 is a graph showing the average response time and throughput according to the number of servers and the number of jobs.

도 6에서는 기존의 다른 기법보다 평균 응답 시간과 처리율이 더 뛰어난 것을 확인할 수 있다. 도 6에서 보듯이 서버수가 증가할수록 처리율도 증가하며, 작업수가 증가할수록 처리율은 감소한다. 또한, 본 발명에 따른 퍼지 그룹이 가장 높은 처리율을 갖는다. 이러한 결과는 본 발명이 그룹핑 개념을 사용하여 가장 적은 부하 상태에서 작업 할당을 하기 때문이며, 그룹핑 개념을 사용하여 서버간의 메시지 오버헤드도 감소시켰다.In Figure 6 it can be seen that the average response time and throughput is superior to other conventional techniques. As shown in FIG. 6, the throughput increases as the number of servers increases, and the throughput decreases as the number of tasks increases. In addition, the purge group according to the present invention has the highest throughput. This result is because the present invention uses the grouping concept to allocate work in the least load state, and the grouping concept also reduces the message overhead between servers.

상술한 바와 같이, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법에 의하면, 각 서버들의 부하상태를 실시간으로 모니터하여 가장 적합한 서버를 선택할 수 있다는 효과가 얻어진다.As described above, according to the fuzzy grouping-based load balancing system and the load balancing method according to the present invention, it is possible to monitor the load state of each server in real time to select the most suitable server.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법에 의하면, 서버에 부하를 동적으로 할당하여 시스템의 안정성과 성능을 향상시킬 수 있다는 효과도 얻어진다.In addition, according to the fuzzy grouping-based load balancing system and the load balancing method according to the present invention, an effect of improving the stability and performance of the system can be obtained by dynamically allocating load to the server.

또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법에 의하면, 그룹핑 개념을 사용하여 가장 적은 부하 상태인 서버에 작업을 할당하여 서버간의 메시지 오버헤드를 감소시킬 수 있다는 효과도 얻어진다.In addition, according to the fuzzy grouping-based load balancing system and the load balancing method according to the present invention, it is also possible to reduce the message overhead between servers by assigning tasks to the server with the least load using the grouping concept. Lose.

Claims (12)

클라이언트와 네트워크를 통하여 연결되어 상기 클라이언트의 요청을 수행하는 다수의 서버 객체들을 구비하고, 병렬로 운용되는 각 서버 객체를 성능에 따라 그룹핑하여 부하를 각 서버 객체에 동적으로 할당하는 로드 밸런싱 시스템으로서,A load balancing system having a plurality of server objects connected to a client through a network to perform a client's request, and dynamically assigning a load to each server object by grouping each server object operated in parallel according to performance. 상기 그룹핑된 그룹마다 각 서버 객체의 부하 정보를 실시간으로 모니터링하는 부하 모니터링수단,Load monitoring means for monitoring load information of each server object in real time for each of the grouped groups; 상기 수집된 부하 정보를 이용하여 서비스 우선순위를 추론하는 퍼지 로드 밸런싱수단,Fuzzy load balancing means for inferring a service priority using the collected load information; 상기 추론된 서비스 우선순위에 따라 가장 적합한 서버 객체에게 작업을 할당하는 글로벌 스케줄링수단을 포함하며,Global scheduling means for allocating work to the most suitable server object according to the inferred service priority; 상기 부하 모니터링수단은 상기 퍼지 로드 밸런싱수단에게 수집된 부하 정보를 주기적으로 전송하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.The load monitoring means is a fuzzy grouping-based load balancing system, characterized in that for periodically transmitting the collected load information to the fuzzy load balancing means. 제 1항에 있어서,The method of claim 1, 상기 서비스 우선순위는 각 서버 객체로부터 수집한 CPU 시간의 사용량과 메모리 사용량을 입력값으로 사용하여 정의된 퍼지 규칙에 의해 추론되는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.The service priority is inferred by a fuzzy rule defined using the CPU time and memory usage collected from each server object as input values. 제 1항에 있어서,The method of claim 1, 상기 그룹핑은 활성화된 서버 객체의 수를 그룹당 들어가는 서버 객체의 수로 나누어 그룹수를 계산하고, 그룹핑 할 서버 객체의 랭크 넘버에 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산하여 이루어지는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.The grouping calculates the number of groups by dividing the number of activated server objects by the number of server objects per group, and calculates the rank number of server objects to be included in the same group by adding the calculated number of groups to the rank number of server objects to be grouped. Fuzzy grouping based load balancing system, characterized in that made. 제 1항에 있어서,The method of claim 1, 새로운 서버 객체가 추가될 경우, 상기 글로벌 스케줄링수단은 가장 높은 부하 상태의 그룹에게 상기 새로운 서버 객체를 추가시키는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.The fuzzy grouping-based load balancing system, wherein when the new server object is added, the global scheduling means adds the new server object to the group under the highest load. 제 1항에 있어서,The method of claim 1, 고장난 서버 객체가 발생할 경우, 고장난 서버 객체의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체로 재할당하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.A load balancing system based on fuzzy grouping, wherein when a failed server object occurs, the work of the failed server object is reassigned to another server object according to a load condition of another group. 제 1항에 있어서,The method of claim 1, 새로운 그룹이 추가될 경우, 상기 글로벌 스케줄링수단은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.If a new group is added, the global scheduling means assigns a service to the newly added group according to the updated service priority. 클라이언트와 네트워크를 통하여 연결되어 상기 클라이언트의 요청을 수행하는 다수의 서버 객체들을 구비하고, 병렬로 운용되는 각 서버 객체들을 성능에 따라 그룹핑하여 부하를 각 서버 객체에 동적으로 할당하는 로드 밸런싱 방법으로서,A load balancing method comprising a plurality of server objects connected to a client through a network to perform a client request, and dynamically assigning a load to each server object by grouping each server object operated in parallel according to performance. 상기 클라이언트로부터 서비스를 요청받는 단계,Receiving a service request from the client, 상기 서버 객체들의 부하 정보를 부하 모니터링수단에서 모니터링하여 수집하는 단계,Monitoring and collecting load information of the server objects in a load monitoring means; 상기 부하 정보에 따라 각각의 서버 그룹의 서비스 우선순위를 퍼지 로드 밸런싱수단에서 추론하는 단계,Inferring the service priority of each server group by the fuzzy load balancing means according to the load information, 상기 추론 단계에서 추론된 서비스 우선순위에 따라 상기 클라이언트의 요청을 글로벌 스케줄링수단이 가장 적합한 서버 객체에게 할당하는 단계를 포함하고,Allocating a request of the client to a server object most suitable for global scheduling means according to the service priority inferred in the reasoning step; 상기 부하 모니터링수단은 상기 퍼지 로드 밸런싱수단에게 수집된 부하 정보를 주기적으로 전송하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.The load monitoring means is a fuzzy grouping-based load balancing method, characterized in that for transmitting the collected load information to the fuzzy load balancing means periodically. 제 7항에 있어서,The method of claim 7, wherein 상기 서비스 우선순위를 추론하는 단계는 상기 부하 모니터링수단이 각 서버 객체로부터 수집한 CPU 시간의 사용량과 메모리 사용량을 퍼지 규칙을 이용하여 추론하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.And inferring the service priority according to the fuzzy grouping-based load balancing method, wherein the load monitoring means infers the CPU time usage and the memory usage collected from each server object by using a fuzzy rule. 제 7항에 있어서,The method of claim 7, wherein 상기 그룹핑은 활성화된 서버 객체의 수를 그룹당 들어가는 서버 객체의 수로 나누어 그룹수를 계산하고, 그룹핑 할 서버 객체의 랭크 넘버에 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산하여 이루어지는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.The grouping calculates the number of groups by dividing the number of activated server objects by the number of server objects per group, and calculates the rank number of server objects to be included in the same group by adding the calculated number of groups to the rank number of server objects to be grouped. Fuzzy grouping based load balancing method, characterized in that made. 제 7항에 있어서,The method of claim 7, wherein 새로운 서버 객체가 추가될 경우, 상기 글로벌 스케줄링수단은 가장 높은 부하 상태의 그룹에게 상기 새로운 서버 객체를 추가시키는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.The fuzzy grouping-based load balancing method according to claim 1, wherein when the new server object is added, the global scheduling means adds the new server object to the highest load group. 제 7항에 있어서,The method of claim 7, wherein 고장난 서버 객체가 발생할 경우, 고장난 서버 객체의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체로 재할당하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.A method for load balancing based on fuzzy grouping, wherein when a failed server object occurs, the work of the failed server object is reassigned to another server object according to a load condition of another group. 제 7항에 있어서,The method of claim 7, wherein 새로운 그룹이 추가될 경우, 상기 글로벌 스케줄링수단은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.If a new group is added, the global scheduling means allocates a service to the newly added group according to the updated service priority.
KR1020050086666A 2005-09-16 2005-09-16 Load balancing system based on fuzzy grouping and the load balancing method KR100718907B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050086666A KR100718907B1 (en) 2005-09-16 2005-09-16 Load balancing system based on fuzzy grouping and the load balancing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050086666A KR100718907B1 (en) 2005-09-16 2005-09-16 Load balancing system based on fuzzy grouping and the load balancing method

Publications (2)

Publication Number Publication Date
KR20070032441A true KR20070032441A (en) 2007-03-22
KR100718907B1 KR100718907B1 (en) 2007-05-16

Family

ID=41560435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050086666A KR100718907B1 (en) 2005-09-16 2005-09-16 Load balancing system based on fuzzy grouping and the load balancing method

Country Status (1)

Country Link
KR (1) KR100718907B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2472817A1 (en) 2010-12-30 2012-07-04 Kaspersky Lab Zao System and method for optimization of execution of security tasks in local network
WO2013090640A1 (en) * 2011-12-13 2013-06-20 Microsoft Corporation Load balancing in cluster storage systems
KR20130073449A (en) * 2011-12-23 2013-07-03 한국전자통신연구원 Distribution and management method of components having reliance
KR101661475B1 (en) * 2015-06-10 2016-09-30 숭실대학교산학협력단 Load balancing method for improving hadoop performance in heterogeneous clusters, recording medium and hadoop mapreduce system for performing the method
KR20160131621A (en) * 2015-05-08 2016-11-16 (주)케이사인 Parallel processing system
KR20170045893A (en) * 2015-10-20 2017-04-28 에스케이텔레콤 주식회사 Load balancing management apparatus and control method thereof
CN116737394A (en) * 2023-08-14 2023-09-12 中海智(北京)科技有限公司 Dynamic adjustment security check centralized graph judging task allocation method
CN117857562A (en) * 2023-12-18 2024-04-09 慧之安信息技术股份有限公司 gRPC dynamic load balancing communication method and system based on greedy strategy

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100989490B1 (en) 2003-06-20 2010-10-22 주식회사 케이티 Sysem and its method for load distribution between servers
KR100478346B1 (en) * 2003-10-21 2005-03-25 한국전자통신연구원 Load balancing method based on graph-partitioning for cluster sever and the system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2472817A1 (en) 2010-12-30 2012-07-04 Kaspersky Lab Zao System and method for optimization of execution of security tasks in local network
WO2013090640A1 (en) * 2011-12-13 2013-06-20 Microsoft Corporation Load balancing in cluster storage systems
US8886781B2 (en) 2011-12-13 2014-11-11 Microsoft Corporation Load balancing in cluster storage systems
KR20130073449A (en) * 2011-12-23 2013-07-03 한국전자통신연구원 Distribution and management method of components having reliance
KR20160131621A (en) * 2015-05-08 2016-11-16 (주)케이사인 Parallel processing system
KR101661475B1 (en) * 2015-06-10 2016-09-30 숭실대학교산학협력단 Load balancing method for improving hadoop performance in heterogeneous clusters, recording medium and hadoop mapreduce system for performing the method
KR20170045893A (en) * 2015-10-20 2017-04-28 에스케이텔레콤 주식회사 Load balancing management apparatus and control method thereof
CN116737394A (en) * 2023-08-14 2023-09-12 中海智(北京)科技有限公司 Dynamic adjustment security check centralized graph judging task allocation method
CN116737394B (en) * 2023-08-14 2023-10-27 中海智(北京)科技有限公司 Dynamic adjustment security check centralized graph judging task allocation method
CN117857562A (en) * 2023-12-18 2024-04-09 慧之安信息技术股份有限公司 gRPC dynamic load balancing communication method and system based on greedy strategy

Also Published As

Publication number Publication date
KR100718907B1 (en) 2007-05-16

Similar Documents

Publication Publication Date Title
Mehta et al. Decentralized content aware load balancing algorithm for distributed computing environments
US7519734B1 (en) System and method for routing service requests
KR100718907B1 (en) Load balancing system based on fuzzy grouping and the load balancing method
Sreenivas et al. Load balancing techniques: Major challenge in Cloud Computing-a systematic review
Ider et al. An enhanced AHP–TOPSIS-based load balancing algorithm for switch migration in software-defined networks
Vashistha et al. Comparative study of load balancing algorithms
Singh et al. WSQ: web server queueing algorithm for dynamic load balancing
Srivastava et al. A dominance of the channel capacity in load balancing of software defined network
Muchori et al. Machine learning load balancing techniques in cloud computing: A review
Sharma Response time based balancing of load in web server clusters
Vijayalakshmi et al. Investigations on job scheduling algorithms in cloud computing
Kamarunisha et al. Recitation of load balancing algorithms in grid computing environment using policies and strategies an approach
Patel et al. An improved approach for load balancing among heterogeneous resources in computational grids
Sheetal et al. Priority based resource allocation and scheduling using artificial bee colony (ABC) optimization for cloud computing systems
Lee et al. Development of an optimal load balancing algorithm based on ANFIS modeling for the clustering web-server
Wen et al. Load balancing consideration of both transmission and process responding time for multi-task assignment
Bhardwaj et al. A propound method for agent based dynamic load balancing algorithm for heterogeneous P2P systems
Shukla et al. Analysis of effective load balancing techniques in distributed environment
Berwal et al. Load Balancing in cloud computing
El-Zoghdy et al. A threshold-based load balancing algorithm for grid computing systems
Hanamakkanavar et al. Load balancing in distributed systems: a survey
Deepa et al. Classification of Request-Based Mobility Load Balancing in Fog Computing.
Shen et al. Locality-aware randomized load balancing algorithms for DHT networks
Dhingra et al. Failure Node Reduction Algorithm to Enhance Fault Tolerance Capability of Cloud Nodes
Bassem et al. Network-constrained packing of brokered workloads in virtualized environments

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: 20120718

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130409

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee