KR100718907B1 - 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법 - Google Patents

퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법 Download PDF

Info

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

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

병렬로 운용되는 서버 객체들 사이에서의 부하가 균등하게 분배되도록 작업을 분산하여 할당하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법에 관한 것으로, 클라이언트와 네트워크를 통하여 연결되어 상기 클라이언트의 요청을 수행하는 다수의 서버 객체들을 구비하고, 병렬로 운용되는 각 서버 객체를 성능에 따라 그룹핑하여 부하를 각 서버 객체에 동적으로 할당하는 로드 밸런싱 시스템으로서, 상기 그룹핑된 그룹마다 각 서버 객체의 부하 정보를 실시간으로 모니터링하는 부하 모니터링수단, 상기 수집된 부하 정보를 이용하여 서비스 우선순위를 추론하는 퍼지 로드 밸런싱수단, 상기 추론된 서비스 우선순위에 따라 가장 적합한 서버 객체에게 작업을 할당하는 글로벌 스케줄링수단을 포함하는 구성을 마련한다.
상기와 같은 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법을 이용하는 것에 의해, 각 서버들의 부하상태를 실시간으로 모니터하여 가장 적합한 서버를 선택할 수 있다.
퍼지 그룹핑, 로드 밸런싱

Description

퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법{LOAD BALANCING SYSTEM BASED ON FUZZY GROUPING AND THE LOAD BALANCING METHOD}
도 1은 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템을 도시한 블록도,
도 2는 본 발명에 따른 서비스 우선 순위를 추론하기 위해 사용되는 퍼지 규칙과 멤버쉽 그래프를 나타내는 도면,
도 3은 본 발명에 따른 그룹핑 방법을 나타내는 도면,
도 4는 본 발명에 따른 퍼지 로드 밸런싱 작용을 설명 설명하는 흐름도,
도 5는 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법을 설명하는 흐름도,
도 6은 본 발명에 따른 서버수와 작업수에 따른 평균 응답시간과 처리율을 나타낸 그래프,
* 도면의 주요 부분에 대한 부호의 설명 *
101: 클라이언트 102: 서버 객체
103: 부하 모니터링수단 104: 퍼지 로드 밸런싱수단
105: 글로벌 스케줄링수단
본 발명은 분산 객체 컴퓨팅 시스템(Distributed Object Computing System)에 관한 것으로, 특히 병렬로 운용되는 서버 객체들 사이에서의 부하가 균등하게 분배되도록 작업을 분산하여 할당하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법에 관한 것이다.
일반적으로 분산환경은 시스템 자원들이 물리 혹은 구성 측면에서 여러 곳에 떨어져 있는 환경을 말한다. 3티어(tier) 개념과 분산환경은 밀접한 관계가 있다. 여기서, 티어란 일련의 비슷한 객체가 나열된 상태에서의 열 또는 계층을 의미한다. 따라서, 3티어란 3개의 비슷한 객체를 말한다. 컴퓨터 프로그래밍에서는 프로그램의 일부가 여러 계층에 나뉘어 존재할 수 있으며, 그 계층 또한 네트워크상의 서로 다른 컴퓨터에 위치할 수 있다. 3티어에서는 데이터베이스, 미들웨어(middleware) 애플리케이션, 사용자 인터페이스 등이 모두 떨어져 있으므로, 각 계층 사이의 원활한 커뮤니케이션이 중요한 문제가 된다. 각 계층은 물리적으로 다른 컴퓨터에 존재하기도 하고, 한 컴퓨터에 모두 존재하기도 한다. 그러나 하나의 개념에 모두 포괄되는 것이 아니므로 각 계층이 서로에게 강력한 구속력이 없으면서도 동시에 서로를 잘 활용할 수 있어야 한다는 말이다.
분산 환경에서 사용되는 분산객체는 물리 혹은 개념적으로 떨어져 있는 다양한 시스템 자원에 존재하는 개별 객체를 말하며, 이 객체들 사이의 원활한 의사소통을 위한 기술이 바로 분산객체의 핵심이다. 분산 환경은 3티어와 같이 종적으로 계층 구조가 나누어져 있거나, 같은 계층에 속하는 객체라고 해도 횡적으로 여러 시스템 자원에 나누어 존재하는 경우를 모두 의미하며, 이와 같은 환경에서 객체들 사이에 문제없이 의사를 주고 받을 수 있도록 하는 기술이 분산 환경 기술이다.
분산 환경에서 시행되는 분산 객체 컴퓨팅 시스템에서 서버 객체들은 원격의 클라이언트로부터 받은 서비스 요청을 처리해 주므로, 적합한 서비스를 처리해주는 서버를 선택하여 작업을 분배하는 기술인 로드 밸런싱(load balancing) 기법이 중요하다. 왜냐하면, 적절한 부하 분산 처리를 통해 전체 서버 시스템의 성능, 효율성, 그리고 신뢰성을 높일 수 있기 때문이다.
애플리케이션은 해야 할 작업이 있으며 그 작업에는 최소한 실행해야 할 프로세서 명령어가 있다. 애플리케이션을 실행하는 컴퓨터가 빠를수록 명령 실행 속도는 빨라지지만, 프로세서 속도에는 한계가 있다. 서버가 받는 동시 요청 개수가 증가함에 따라 작업 부하가 컴퓨터의 용량에 비해 너무 많아지게 되면 애플리케이션은 목표 응답 시간을 초과하게 된다. 이때의 해결책은 두 가지다 첫째는 더 빠른 컴퓨터를 사용하는 것이며, 둘째는 더 많은 컴퓨터를 사용하는 것이다. 더 빠른 컴퓨터를 사용하는 해결 방법은 항상 적용가능하지도 않고, 또한 많은 비용이 든다. 뿐만 아니라, 아무리 빠른 컴퓨터를 쓴다고 해도 결국 더 빠른 성능이 필요할 것이다. 어떤 효율적인 디자인이라도 그 애플리케이션이 다수의 서버에 설치될 필요가 있을 것이라는 가능성을 포함해야한다. 이를 수평적 확장성이라고 부른다.
수평적 확장성을 달성하는 기술 중 하나가 바로 로드 밸런싱이다. 로드 밸런싱은 서로 다른 컴퓨터가 각자 다양한 프로세서 용량을 효율적으로 사용하는 것을 보증하는 메커니즘이다. 로드 밸런싱 기법은 가장 바쁘지 않은 자원에 요청을 전달해야한다. 그러나 몇몇 로드 밸런싱 기법에서는 그러한 라우팅이 어려울 수 있으며, 특히 세션 기반의 애플리케이션 같은 몇몇 애플리케이션에서는 적당하지 않을 수 있다. 따라서, 애플리케이션에 가장 적절한 로드 밸런싱 메커니즘을 결정해야한다.
종래의 로드 밸런싱 기법에는 주로 랜덤(random)과 라운드-로빈(round-robin) 기법을 많이 사용하고 있다. 왜냐하면, 구현이 쉽고 간단하고 관리하기 쉽기 때문이다. 랜덤 기법은 서비스 요청이 있는 경우에 임의의 순서대로 요청을 할당해주는 방식이다. 이 기법은 서버 부하 상태를 전혀 고려하지 않고 임의의 선택된 서버에게 무조건 요청을 할당해 주는 방법을 취하고 있다. 그리고 라운드-로빈은 서비스 요청이 있는 경우에 서버의 정해진 순서에 따라 요청을 할당해주는 방식이다. 이 기법 역시 랜덤 기법과 마찬가지로 서버 부하 상태는 전혀 고려하지 않고 정해진 할당 순서에 따라 서비스 요청시 무조건으로 할당해주는 정적인 알고리즘이다.
이와 같은 로드 밸런싱에 대한 일례가 대한민국 특허 등록공보 10-0271199호(논리적프로세싱을 이용한 분산형컴퓨팅 시스템 및 그 방법)에 개시되어 있다.
상기 공보에 개시된 기술은 논리적 및 물리적인 두 가지 수준의 추상화를 포함하는 서버 프로세스들을 제공함으로써 분산형 네트워크 시스템의 로드 밸런싱을 제공하고, 가정에 의하여 물리적 프로세스들은 전송 메커니즘에 의하여 지원되는 어드레스들을 가지나, 반면에 논리적 프로세스들은 그러한 어드레스들을 갖지 않으므로, 각 논리적 프로세스는 일련의 물리적 프로세스들에 의하여 구현되며, 시스템은 상기 둘 사이의 매핑을 유지하고, 시스템은 또한, 클라이언트가 논리적 프로세스로 메시지를 송신할 수 있게 하며, 상기 메시지는 자동으로 적절한 물리적 프로세스로 재지정되도록 하는 인터페이스들을 제공하는 논리적 프로세싱을 이용한 분산형 컴퓨팅 시스템 및 그 방법에 대해 개시되어 있다.
또, 로드 밸런싱에 대한 일례가 대한민국 특허 공개공보 2005-0043616호(서버의 클러스터를 작동시키는 방법 및 시스템과 컴퓨터판독 가능한 기록 매체)에 개시되어 있다.
상기 공보에 개시된 기술은 서버 클러스터를 작동시키기 위한 시스템, 방법 및 프로그램 제품이 개시되고, 서버로부터 분리되는 로드 밸런서는 로드 밸런싱 알고리즘에 기반하여 클러스터에 할당된 각각의 작업 요청을 처리하는 서버를 선택하고, 그 작업 요청을 선택된 클러스터에 전송하고, 로드 밸런서는 클러스터의 현재의 멤버가 아닌 다른 서버로부터 요청을 수신하고, 그 요청은 상기 다른 서버가 작업 요청을 처리하는 클러스터의 멤버가 될 것을 요청하고, 그 요청에 응답하여, 로드 밸런서는 상기 다른 서버를 클러스터의 멤버로서 가입시켜 클러스터에 후속적으로 할당되는 소정의 작업 요청을 처리하며, 상기 다른 서버는 상기 로드 밸런서에 대해 상기 다른 서버에 대한 로드 임계치를 지정하고, 상기 다른 서버는 상기 로드 밸런서에 대해 상기 서버용으로 사용될 타임 아웃을 지정하고, 상기 타임 아웃은 이전의 헬로우 메세지를 전송한 이후에 헬로우 메세지를 송신하기 위해 상기 다른 서버에 할당된 시간을 나타내는 서버의 클러스터를 작동시키는 방법 및 시스템과 컴퓨터판독 가능한 기록 매체에 대해 개시되어 있다.
그러나 상기 공보 10-0271199호에 개시된 기술에 있어서는 논리적 및 물리적인 두 가지 수준의 추상화를 이용하는 로드 밸런싱이며, 상기 공보 2005-0043616호에 개시된 기술에 있어서는 클러스터 내의 서버들에 작업 요청을 할당하기 위한 로드 밸런싱으로 전체 시스템의 상태를 고려하지 않고, 정해진 순서나 임의의 순서로 부하 분산을 처리하는 문제가 있었다.
예를 들어, 최초의 요청이 처음 서버로 할당되고, 두 번째 요청은 두 번째 서버로 할당되고, 세 번째 요청은 세 번째 서버로 할당되어 실행중인 분산 처리 시스템이 있다. 이러한 처리 과정이 반복되어 네 번째 요청이 다시 처음 서버로 갈 경우, 만약 처음 서버가 처리하는데 몇 분이 걸리는 아주 큰 데이터 파일 요청을 받아서 첫 요청을 다 처리하지 못한 상태라면 네 번째 요청의 처리는 지연시킬 수밖에 없다. 그러나 네 번째 요청이 들어오는 시각에 두 번째 서버는 이미 두 번째 요청을 다 완료하였어도 종래의 기술과 상기 공보상의 기술들은 서버 상태를 전혀 고려하지 않고 처음 서버로 할당된다. 즉, 어떤 서버는 쉬는 상태가 되는 반면 어떤 서버는 과부하 상태가 되는 현상이 발생하여 상당히 비효율적으로 서버를 사용하게 되는 문제가 있었다.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위해 이루어진 것으 로서, 각 서버들의 부하상태를 실시간으로 모니터하여 가장 적합한 서버를 선택할 수 있는 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법을 제공하는 것이다.
본 발명의 다른 목적은 서버에 부하를 동적으로 할당하여 좀 더 효율적이고 안정적인 부하 분산을 가능하게 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법을 제공하는 것이다.
본 발명의 다른 목적은 그룹핑 개념을 사용하여 가장 적은 부하 상태인 서버에 작업을 할당하여 서버 간의 메시지 오버헤드를 감소시킬 수 있는 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템은 클라이언트와 네트워크를 통하여 연결되어 상기 클라이언트의 요청을 수행하는 다수의 서버 객체들을 구비하고, 병렬로 운용되는 각 서버 객체를 성능에 따라 그룹핑하여 부하를 각 서버 객체에 동적으로 할당하는 로드 밸런싱 시스템으로서, 상기 그룹핑된 그룹마다 각 서버 객체의 부하 정보를 실시간으로 모니터링하는 부하 모니터링수단, 상기 수집된 부하 정보를 이용하여 서비스 우선순위를 추론하는 퍼지 로드 밸런싱수단, 상기 추론된 서비스 우선순위에 따라 가장 적합한 서버 객체에게 작업을 할당하는 글로벌 스케줄링수단을 포함하며, 상기 부하 모니터링수단은 상기 퍼지 로드 밸런싱수단에게 수집된 부하 정보를 주기적으로 전송하는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 상기 서비스 우선순위는 각 서버 객체로부터 수집한 CPU 시간의 사용량과 메모리 사용량을 입력값으로 사용하여 정의된 퍼지 규칙에 의해 추론되는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 상기 그룹핑은 활성화된 서버 객체의 수를 그룹당 들어가는 서버 객체의 수로 나누어 그룹수를 계산하고, 그룹핑 할 서버 객체의 랭크 넘버에 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산하여 이루어지는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 새로운 서버 객체가 추가될 경우, 상기 글로벌 스케줄링수단은 가장 높은 부하 상태의 그룹에게 상기 새로운 서버 객체를 추가시키는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 고장난 서버 객체가 발생할 경우, 고장난 서버 객체의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체로 재할당하는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에 있어서, 새로운 그룹이 추가될 경우, 상기 글로벌 스케줄링수단은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당하는 것을 특징으로 한다.
또, 상기 목적을 달성하기 위해 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법은 클라이언트와 네트워크를 통하여 연결되어 상기 클라이언트의 요청을 수행하는 다수의 서버 객체들을 구비하고, 병렬로 운용되는 각 서버 객체들을 성능 에 따라 그룹핑하여 부하를 각 서버 객체에 동적으로 할당하는 로드 밸런싱 방법으로서, 상기 클라이언트로부터 서비스를 요청받는 단계, 상기 서버 객체들의 부하 정보를 부하 모니터링수단에서 모니터링하여 수집하는 단계, 상기 부하 정보에 따라 각각의 서버 그룹의 서비스 우선순위를 퍼지 로드 밸런싱수단에서 추론하는 단계, 사기 추론 단계에서 추론된 서비스 우선순위에 따라 상기 클라이언트의 요청을 글로벌 스케줄링수단이 가장 적합한 서버 객체에게 할당하는 단계를 포함하고, 상기 부하 모니터링수단은 상기 퍼지 로드 밸런싱수단에게 수집된 부하 정보를 주기적으로 전송하는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 상기 서비스 우선순위를 추론하는 단계는 상기 부하 모니터링수단이 각 서버 객체로부터 수집한 CPU 시간의 사용량과 메모리 사용량을 퍼지 규칙을 이용하여 추론하는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 상기 그룹핑은 활성화된 서버 객체의 수를 그룹당 들어가는 서버 객체의 수로 나누어 그룹수를 계산하고, 그룹핑 할 서버 객체의 랭크 넘버에 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산하여 이루어지는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 새로운 서버 객체가 추가될 경우, 상기 글로벌 스케줄링수단은 가장 높은 부하 상태의 그룹에게 상기 새로운 서버 객체를 추가시키는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 고장난 서버 객체가 발생할 경우, 고장난 서버 객체의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체로 재할당하는 것을 특징으로 한다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 있어서, 새로운 그룹이 추가될 경우, 상기 글로벌 스케줄링수단은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당하는 것을 특징으로 한다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시 예를 첨부된 도면을 참조로 하여 상세히 설명하기로 한다.
도 1은 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템을 도시한 블록도이다.
도 1에서 도시하는 바와 같이, (101)은 서비스를 요청하는 클라이언트이며, (102)는 클라이언트(101)의 요청을 수행하는 서버 객체이며, 다수의 서버 객체(102)들은 각 서버 객체(102)의 성능에 따라 그룹핑되어 병렬로 운용된다.
(103)은 상기 그룹핑된 그룹의 각 서버 객체(102)들의 부하 정보를 실시간으로 모니터링하는 부하 모니터링수단이며, (104)는 부하 모니터링수단(103)으로부터 부하 정보를 전송받아 서비스 우선순위를 추론하는 퍼지 로드 밸런싱수단이며, (105)는 퍼지 로드 밸런싱수단(104)로부터 서비스 우선순위를 전송받아 시행해야할 작업에 가장 적합한 서버 객체에게 작업을 할당하는 글로벌 스케줄링수단이다.
도 1에 도시된 서버 객체(102)들은 두 개의 서버 객체를 하나의 그룹으로 그룹핑하고, 그룹마다 하나의 부하 모니터링수단(103)을 위치시켰다. 로드 밸런싱은 정확한 시스템 상태 정보를 요구하기 때문에, 각 그룹에서 부하 모니터링수단(103)은 이러한 서버 객체 상태의 부하 정보를 수집하는 역할을 한다. 또한, 여기서 부하 모니터링수단(103)은 부하 정보를 퍼지 로드 밸런싱수단(104)에게 전송한다. 부하 모니터링수단(103)은, 예를 들어 매 2초마다 두 서버 객체(102)의 부하 정보인 CPU 시간의 사용량과 메모리 사용량을 측정하고, 측정된 부하 정보를 비동기적인 이벤트의 형태로 퍼지 로드 밸런싱수단(104)에게 전송한다. 이 부하 정보를 통해 퍼지 로드 밸런싱수단(104)은 퍼지 규칙을 통해 서비스 우선순위를 추론하고, 그 결과를 글로벌 스케줄링수단(105)에게 전송한다. 그 후 글로벌 스케줄링수단(105)은 서비스 우선순위를 바탕으로 가장 적합한 서버 객체(102)를 선택하여 클라이언트(101)의 요청을 선택된 서버 객체(102)에게 할당한다. 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템에서는 퍼지 로드 밸런싱수단(104)이 주기적으로 부하 모니터링수단(103)으로부터 쿼리(query)하는 폴링(polling) 정책을 적용하는 대신에, 부하 모니터링수단(103)이 주기적으로 퍼지 로드 밸런싱수단(104)에게 부하 정보를 측정하여 보내는 푸쉬(push) 정책을 사용하고 있다.
다음에 도 1에 도시된 시스템에 적용되는 규칙에 대해 도 2에 따라 설명한다.
도 2는 본 발명에 따른 서비스 우선 순위를 추론하기 위해 사용되는 퍼지 규칙과 멤버쉽 그래프를 나타내는 도면이다.
도 2에 도시된 퍼지 규칙과 멤버쉽 그래프는 퍼지 로드 밸런싱수단(104)이 서비스 우선순위를 결정하기 위해 사용된다. 퍼지 로드 밸런싱수단(104)은 퍼지 로직 제어 기반의 조건제어(IF-THEN) 규칙을 사용하여 복잡하고 애매모호한 비선형 시스템을 퍼지 규칙을 사용하여 효율적으로 제어할 수 있다. 따라서, 퍼지 로드 밸런싱수단(104)은 효율적인 로드 밸런싱을 위해 이 알고리즘을 사용하고 있으며, 이에 필요한 멤버쉽 그래프와 퍼지 규칙을 도 2와 같이 설정하였다. 도 2(a, b)는 CPU 시간의 사용량과 메모리 사용량을 멤버쉽 그래프로 나타낸 것이며, 이는 퍼지 규칙의 입력값으로 사용된다. 또한, 도 2(c)는 서비스 우선순위를 멤버쉽 그래프로 나타낸 것이며, 이는 퍼지 규칙의 결과값으로 사용된다.
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 시간의 사용량이 LMO이고 메모리 사용량이 S이면, 서비스 우선순위는 VL값을 추론하게 된다. 퍼지 로드 밸런싱수단(104)은 이러한 퍼지 로직 제어를 사용하여 보다 효율적인 로드 밸런싱이 가능하도록 가장 적합한 서버 객체를 추론하여 선택한다.
다음에 도 1에 도시된 시스템의 서버의 그룹핑에 대해 도 3에 따라 설명한다.
도 3은 본 발명에 따른 그룹핑 방법을 나타내는 도면이다.
도 3에서 도시하는 바와 같이, 6개의 서버 객체들이 세 개의 그룹으로 그룹핑된다. 그룹핑은 CPU와 메모리의 성능에 따라 이루어진다. 각 서버 객체마다 성능이 다르기 때문에 그룹의 성능 평준화를 위해 각 서버 객체 성능의 체크가 필요하다.
우선, 그룹핑을 하기 위해 각 CPU와 메모리 성능에 따라 랭크 넘버(Rank Number)를 정하고, 아래의 수식에 따라 생성할 그룹수를 계산한다.
[그룹수 = 활성화된 서버 객체의 수 / 그룹당 들어가는 서버 객체의 수]
다음으로, 그룹핑 할 서버 객체의 랭크 넘버에 상기 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산한다.
[그룹에 포함할 서버 객체의 랭크 넘버 = 그룹핑 할 서버 객체의 랭크 넘버 + 그룹수]
이렇게 계산된 그룹핑 할 서버 객체의 랭크 넘버와 그룹에 포함할 서버 객체의 랭크 넘버를 가진 서버 객체들이 하나의 그룹을 생성한다.
예를 들어, 활성화된 서버 객체의 수가 6이고, 그룹당 들어가는 서버 객체의 수가 2라면, 그룹수는 3이다. 이제 랭크 넘버와 그룹수를 더하여 그룹화를 한다. 랭크 넘버 1은 그룹의 수인 3과 더하여 4가 된다. 즉, 랭크 넘버가 1인 서버 객체는 랭크 넘버가 4인 서버 객체와 같은 그룹이 된다. 이러한 계산에 의해 {1, 4}, {2, 5}, {3, 6}가 같은 그룹이 된다.
만약, 새로운 서버 객체(102)가 추가될 경우 글로벌 스케줄링수단(105)은 가장 높은 부하 상태의 그룹에게 새로운 서버 객체(102)를 추가시킨다.
또, 고장난 서버 객체(102)가 발생할 경우 고장난 서버 객체(102)의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체(102)로 재할당한다.
또, 새로운 그룹이 추가될 경우 글로벌 스케줄링수단(105)은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당한다.
다음에 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법에 대해 도 4 내지 도 5에 따라 설명한다.
도 4는 본 발명에 따른 퍼지 로드 밸런싱 작용을 설명 설명하는 흐름도이며, 도 5는 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 방법을 설명하는 흐름도이다.
우선, 글로벌 스케줄링수단(105)이 클라이언트(101)로부터 서비스를 요청받 는다(ST 501). 그러면, 부하 모니터링수단(103)은 서버 객체(102)들의 부하 정보를 모니터링하여 수집하고(ST 502), 수집된 부하 정보는 퍼지 로드 밸런싱수단(104)으로 전송한다. 퍼지 로드 밸런싱수단(104)은 전송된 부하 정보를 바탕으로 각 그룹의 서비스 우선순위를 추론하고(ST 503), 추론된 서비스 우선순위는 글로벌 스케줄링수단(105)으로 전송한다. 글로벌 스케줄링수단(105)은 전송된 서비스 우선순위에 따라 가장 적합한 서버 객체(102)에게 클라이언트(101)의 요청을 할당한다(ST 504).
이상 본 발명자에 의해서 이루어진 발명을 상기 실시예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시예에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
또, 본 발명이 상용화될 경우, 여러 대의 서버를 그룹화하여 서버를 구성하여 운영하는 큰 이-비즈니스(e-Business) 기업이나 이-커머스(e-Commerce) 조직에서 거래 업무를 처리하기 위해 적용될 수 있으며, 많은 웹사이트뿐만 아니라 많은 서버들을 호스팅하는 인터넷 서비스 프로바이더(Internet Service Provider, ISP)에게 아주 유용하다. 그리고 다수의 사용자가 접속하는 인터넷 쇼핑몰과 온라인 게임업계의 활성화로 인하여 이와 관련된 업체들은 서버의 효율적인 사용이 필요하다. 또한, 로드 밸런싱은 VPN에서도 중요한 부분을 차지하고 있어 앞으로도 많이 활용될 전망이다.
본 발명은 종래의 로드 밸런싱 기법들과 비교하여 좀 더 향상된 최적화 모델을 구축하며 보다 나은 지능형 로드 밸런싱 모델을 생성함을 시뮬레이션을 통하여 비교 분석하였다.
본 시뮬레이션에서는 본 발명과 기존의 랜덤, 라운드-로빈 기법과의 작업에 대한 평균 응답 시간과 처리율을 비교하였다. 각 서버에 도착하는 작업은 λ=6으로 포아송(Poisson) 분산을 모델화하고, 모든 서버에 같은 비율로 작업이 도착한다는 것을 가정하였다. 또한, 작업 요청에 대한 서비스 시간과 CPU 시간의 사용량과 메모리 사용량은 규칙적으로 분산시켰다. 이 시뮬레이션 환경은 작업이 1500개가 들어왔을 때 서버 2대에서 12대가 존재할 때, 서버 6대가 존재하며 작업이 100~3000개 요청될 때의 평균 응답시간과 처리율을 비교하였으며, 그 결과는 도 6과 같다.
도 6은 서버수와 작업수에 따른 평균 응답시간과 처리율을 나타낸 그래프이다.
도 6에서는 기존의 다른 기법보다 평균 응답 시간과 처리율이 더 뛰어난 것을 확인할 수 있다. 도 6에서 보듯이 서버수가 증가할수록 처리율도 증가하며, 작업수가 증가할수록 처리율은 감소한다. 또한, 본 발명에 따른 퍼지 그룹이 가장 높은 처리율을 갖는다. 이러한 결과는 본 발명이 그룹핑 개념을 사용하여 가장 적은 부하 상태에서 작업 할당을 하기 때문이며, 그룹핑 개념을 사용하여 서버간의 메시지 오버헤드도 감소시켰다.
상술한 바와 같이, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법에 의하면, 각 서버들의 부하상태를 실시간으로 모니터하여 가장 적합한 서버를 선택할 수 있다는 효과가 얻어진다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법에 의하면, 서버에 부하를 동적으로 할당하여 시스템의 안정성과 성능을 향상시킬 수 있다는 효과도 얻어진다.
또, 본 발명에 따른 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법에 의하면, 그룹핑 개념을 사용하여 가장 적은 부하 상태인 서버에 작업을 할당하여 서버간의 메시지 오버헤드를 감소시킬 수 있다는 효과도 얻어진다.

Claims (12)

  1. 클라이언트와 네트워크를 통하여 연결되어 상기 클라이언트의 요청을 수행하는 다수의 서버 객체들을 구비하고, 병렬로 운용되는 각 서버 객체를 성능에 따라 그룹핑하여 부하를 각 서버 객체에 동적으로 할당하는 로드 밸런싱 시스템으로서,
    상기 그룹핑된 그룹마다 각 서버 객체의 부하 정보를 실시간으로 모니터링하는 부하 모니터링수단,
    상기 수집된 부하 정보를 이용하여 서비스 우선순위를 추론하는 퍼지 로드 밸런싱수단,
    상기 추론된 서비스 우선순위에 따라 가장 적합한 서버 객체에게 작업을 할당하는 글로벌 스케줄링수단을 포함하며,
    상기 부하 모니터링수단은 상기 퍼지 로드 밸런싱수단에게 수집된 부하 정보를 주기적으로 전송하고,
    상기 그룹핑은 활성화된 서버 객체의 수를 그룹당 들어가는 서버 객체의 수로 나누어 그룹수를 계산하고, 그룹핑 할 서버 객체의 랭크 넘버에 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산하여 이루어지는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.
  2. 제 1항에 있어서,
    상기 서비스 우선순위는 각 서버 객체로부터 수집한 CPU 시간의 사용량과 메모리 사용량을 입력값으로 사용하여 정의된 퍼지 규칙에 의해 추론되는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.
  3. 삭제
  4. 제 1항에 있어서,
    새로운 서버 객체가 추가될 경우, 상기 글로벌 스케줄링수단은 가장 높은 부하 상태의 그룹에게 상기 새로운 서버 객체를 추가시키는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.
  5. 제 1항에 있어서,
    고장난 서버 객체가 발생할 경우, 고장난 서버 객체의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체로 재할당하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.
  6. 제 1항에 있어서,
    새로운 그룹이 추가될 경우, 상기 글로벌 스케줄링수단은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 시스템.
  7. 클라이언트와 네트워크를 통하여 연결되어 상기 클라이언트의 요청을 수행하는 다수의 서버 객체들을 구비하고, 병렬로 운용되는 각 서버 객체들을 성능에 따라 그룹핑하여 부하를 각 서버 객체에 동적으로 할당하는 로드 밸런싱 방법으로서,
    상기 클라이언트로부터 서비스를 요청받는 단계,
    상기 서버 객체들의 부하 정보를 부하 모니터링수단에서 모니터링하여 수집하는 단계,
    상기 부하 정보에 따라 각각의 서버 그룹의 서비스 우선순위를 퍼지 로드 밸런싱수단에서 추론하는 단계,
    상기 추론 단계에서 추론된 서비스 우선순위에 따라 상기 클라이언트의 요청을 글로벌 스케줄링수단이 가장 적합한 서버 객체에게 할당하는 단계를 포함하고,
    상기 부하 모니터링수단은 상기 퍼지 로드 밸런싱수단에게 수집된 부하 정보를 주기적으로 전송하고,
    상기 그룹핑은 활성화된 서버 객체의 수를 그룹당 들어가는 서버 객체의 수로 나누어 그룹수를 계산하고, 그룹핑 할 서버 객체의 랭크 넘버에 계산된 그룹수를 더하여 동일 그룹에 포함할 서버 객체의 랭크 넘버를 계산하여 이루어지는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.
  8. 제 7항에 있어서,
    상기 서비스 우선순위를 추론하는 단계는 상기 부하 모니터링수단이 각 서버 객체로부터 수집한 CPU 시간의 사용량과 메모리 사용량을 퍼지 규칙을 이용하여 추론하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.
  9. 삭제
  10. 제 7항에 있어서,
    새로운 서버 객체가 추가될 경우, 상기 글로벌 스케줄링수단은 가장 높은 부하 상태의 그룹에게 상기 새로운 서버 객체를 추가시키는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.
  11. 제 7항에 있어서,
    고장난 서버 객체가 발생할 경우, 고장난 서버 객체의 작업을 다른 그룹의 부하 상태에 따라 다른 서버 객체로 재할당하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.
  12. 제 7항에 있어서,
    새로운 그룹이 추가될 경우, 상기 글로벌 스케줄링수단은 업데이트된 상기 서비스 우선순위에 따라 새롭게 추가된 그룹에게 서비스를 할당하는 것을 특징으로 하는 퍼지 그룹핑 기반의 로드 밸런싱 방법.
KR1020050086666A 2005-09-16 2005-09-16 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법 KR100718907B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050086666A KR100718907B1 (ko) 2005-09-16 2005-09-16 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050086666A KR100718907B1 (ko) 2005-09-16 2005-09-16 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법

Publications (2)

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

Family

ID=41560435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050086666A KR100718907B1 (ko) 2005-09-16 2005-09-16 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법

Country Status (1)

Country Link
KR (1) KR100718907B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2453917C1 (ru) 2010-12-30 2012-06-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для оптимизации выполнения антивирусных задач в локальной сети
US8886781B2 (en) 2011-12-13 2014-11-11 Microsoft Corporation Load balancing in cluster storage systems
KR101696698B1 (ko) * 2011-12-23 2017-01-17 한국전자통신연구원 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법
KR101678181B1 (ko) * 2015-05-08 2016-11-21 (주)케이사인 병렬 처리 시스템
KR101661475B1 (ko) * 2015-06-10 2016-09-30 숭실대학교산학협력단 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템
KR102168583B1 (ko) * 2015-10-20 2020-10-21 에스케이텔레콤 주식회사 로드밸런싱관리장치 및 그 동작 방법
CN116737394B (zh) * 2023-08-14 2023-10-27 中海智(北京)科技有限公司 一种动态调整的安检集中判图任务分配方法
CN117857562A (zh) * 2023-12-18 2024-04-09 慧之安信息技术股份有限公司 基于贪婪策略的gRPC动态负载均衡通信方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040110647A (ko) 2003-06-20 2004-12-31 주식회사 케이티 각 서버간 부하 분산 시스템 및 그 방법
KR100478346B1 (ko) * 2003-10-21 2005-03-25 한국전자통신연구원 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040110647A (ko) 2003-06-20 2004-12-31 주식회사 케이티 각 서버간 부하 분산 시스템 및 그 방법
KR100478346B1 (ko) * 2003-10-21 2005-03-25 한국전자통신연구원 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템

Also Published As

Publication number Publication date
KR20070032441A (ko) 2007-03-22

Similar Documents

Publication Publication Date Title
KR100718907B1 (ko) 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법
Mehta et al. Decentralized content aware load balancing algorithm for distributed computing environments
Ren et al. The load balancing algorithm in cloud computing environment
Wang et al. Workload balancing and adaptive resource management for the swift storage system on cloud
Grover et al. Agent based dynamic load balancing in Cloud Computing
Gupta et al. A technique based on ant colony optimization for load balancing in cloud data center
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
Liu et al. A Modified Round-Robin load balancing algorithm based on content of request
Kamarunisha et al. Recitation of load balancing algorithms in grid computing environment using policies and strategies an approach
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
El-Zoghdy et al. A threshold-based load balancing algorithm for grid computing systems
Fu et al. Random choices for churn resilient load balancing in peer-to-peer networks
Hanamakkanavar et al. Load balancing in distributed systems: a survey
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
CN112738193B (zh) 云计算的负载均衡方法及装置
Gautam et al. Analysis of load balancing algorithms in cloud computing
Aggarwal et al. Dynamic load balancing based on CPU utilization and data locality in distributed database using priority policy

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