KR20100138885A - 라우팅 워크로드들 및 그 계산방법 - Google Patents
라우팅 워크로드들 및 그 계산방법 Download PDFInfo
- Publication number
- KR20100138885A KR20100138885A KR1020107018384A KR20107018384A KR20100138885A KR 20100138885 A KR20100138885 A KR 20100138885A KR 1020107018384 A KR1020107018384 A KR 1020107018384A KR 20107018384 A KR20107018384 A KR 20107018384A KR 20100138885 A KR20100138885 A KR 20100138885A
- Authority
- KR
- South Korea
- Prior art keywords
- workload
- dispatcher
- type
- systems
- relative
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
본 발명은 워크로드 매니저에서 디스패처의 셰어(D)를 계산하는 방법을 제공하는데 - 상기 워크로드 매니저는 아비트레이터(arbitrator)에 결합되며, 상기 아비트레이터는 복수의 시스템들에 결합되고, 각 시스템은 디스패처(dispatcher)를 포함하며, 각 디스패처는 복수의 실행 유닛들과 결합되고, 상기 아비트레이터는 워크로드 항목들의 흐름을 수신하여 디스패처들에게 분배하도록 준비되며, 상기 실행 유닛들은 워크로드 항목들을 실행하도록 준비되고, 상기 워크로드 항목들은 적어도 세 가지 유형으로 이루어짐 -, 상기 방법은: 복수의 시스템들 전체에 걸쳐 각 워크로드 유형에 대한 서비스 유닛들(W)의 총계를 판독하는 단계 - 상기 서비스 유닛들은 CPU 소모량을 측정한 값이 됨 -; 각 시스템(SYS)상의 각 워크로드 유형에 대한 캐패시티(cap) 값을 판독하는 단계 - 상기 캐패시티 값은 하나의 시스템이 실행할 수 있는 최대 서비스 유닛들을 나타냄 - 를 포함한다. 또한 상기 방법은: 캐패시티를 서비스 유닛들의 총계로 나눔으로써 디스패처의 상대적 셰어(R)를 계산하는 단계; 각 시스템상의 디스패처의 상대적 셰어 중 최소값을 획득하는 단계; 각 시스템상의 각 워크로드 유형에 대한 워크로드 항목들의 큐 길이(q)를 각 시스템상의 각 워크로드 유형의 캐패시티로 나눔으로써 각 시스템에 대해 상대적 큐 길이(V)를 계산하는 단계; 상기 최소값 및 상기 상대적 큐 길이에 관한 제 1 함수를 곱하여(multiplying) 각 시스템에 대해 디스패처의 셰어(D)를 계산하는 단계를 더 포함한다.
Description
본 발명은, 워크로드 매니저(workload manager)에서 라우팅 워크로드를 계산하는 방법 및 그 컴퓨터 프로그램 제품에 관한 것이다.
메인프레임(mainframes)은 크리티컬한(critical) 애플리케이션에 대해 그리고 재무 거래 처리와 같은 대용량 데이터를 처리할 목적으로 주로 큰 조직체들에 의해 사용되는 컴퓨터이다. 메인프레임은 신뢰할 수 있고 안전한 시스템들을 제공하기 위해 대단히 리던던트(redundant)하다. 그리고 메인프레임은 다수의 운영 시스템들을 실행하거나 호스트 할 수 있기 때문에 보다 작은 수십 개 서버들의 사용을 대체할 수 있으며, 이는 관리(management)를 감소시키고 향상된 확장성(scalability)을 제공한다. 현대 메인프레임들에는 IBM zSeries 및 시스템 z9 서버들이 포함된다.
병렬 시스플렉스(a parallel sysplex)는 단일 시스템 이미지로 함께 동작하는 IBM 메인프레임들의 클러스터이며, z/OS를 사용한다. 시스플렉스는, 병렬 프로세싱을 사용하여 데이터 무결성(data integrity)을 완전히 유지하면서 다수의 시스템들을 걸쳐 읽기/쓰기 데이터의 셰어링(sharing)을 하는 것이 가능한데, 이는 최대 32 시스템들까지 클러스터(cluster)시키고 시스템들의 워크로드(workload)를 셰어할 수 있도록 하기 위함이다. 워크로드(workload)는 하나의 시스템내의 개별 프로세서를 통해서 동적으로 분배될 수 있으며, 뿐만 아니라 이용 가능한 자원들을 갖고 있는 클러스터내의 모든 시스템에 대해서도 동적으로 분배될 수도 있다. 그리고 워크로드 밸런싱은, 임계 응답 레벨(critical response level)을 유지하면서, 병렬 시스플렉스 클러스터를 통해 다양한 애플리케이션들을 실행할 수 있게 한다. 만일 워크로드 밸런싱 또는 워크로드 라우팅이 올바르게 수행되지 않는다면, 시스템에 오버로드가 발생할 수 있다.
따라서 워크로드 매니저에서 디스패처의 셰어(a dispatcher’s share)를 효율적으로 계산하는 방법과, 본 발명에 따른 상기 방법을 수행하기 위한 워크로드 매니저 및 컴퓨터 프로그램 제품의 제공이 필요하다.
본 발명은 워크로드 매니저에서 디스패처의 셰어(dispatcher’s share)(D)를 계산하는 방법을 제공한다. 상기 워크로드 매니저는 아비트레이터(an arbitrator)에 결합되며, 상기 아비트레이터는 복수의 시스템들에 결합되고, 그리고 각 시스템은 디스패처(a dispatcher)를 포함하며, 그 각 디스패처는 복수의 실행 유닛(execution units)들에 결합되고, 상기 아비트레이터는 워크로드 항목들의 흐름을 수신하여 디스패처들로 분배하도록 준비되며, 상기 실행 유닛들은 워크로드 항목들을 실행하도록 준비되며, 상기 워크로드 항목들은 적어도 제 1, 제 2 및 제 3 의 유형으로 이루어진다.
상기 방법은: 메모리(a memory)로부터 복수의 시스템들 전체에 걸쳐(across) 각 워크로드 유형에 대한 서비스 유닛들(W)의 총계(total)를 판독하는 단계(reading) - 상기 서비스 유닛들은 하나의 시간 구간에서의 CPU 소모량(consumption)을 측정한 값임 -; 상기 메모리로부터 상기 복수의 시스템들의 각 시스템(SYS)상의 각 워크로드 유형에 대한 캐패시티(cap) 값을 판독하는 단계 - 상기 캐패시티 값은 하나의 시스템이 상기 시간 구간에서 실행할 수 있는 최대 서비스 유닛들을 나타냄 -; 를 포함한다.
또한 상기 방법은: 각 시스템상의 각 워크로드 유형의 상기 캐패시티 값을 각 워크로드 유형의 상기 서비스 유닛들의 총계로 나눔으로써 제 1, 제 2 및 제 3 의 디스패처의 상대적 셰어(relative share) (R)를 계산하여 각 시스템의 상기 디스패처의 상대적 셰어 중 최소 값을 획득하는 단계; 각 시스템상의 각 워크로드 유형에 대한 상기 워크로드 항목들의 큐 길이(queue length) (q)를 각 시스템상의 각 워크로드 유형의 상기 캐패시티 값으로 나눔으로써 각 시스템에 대한 상대적 큐 길이(V)를 계산하는 단계; 산술 연산(arithmetic operation)을 사용하여 상기 최소 값과 상기 상대적 큐 길이에 관한 제 1 함수를 결합하여 각 시스템에 대한 디스패처의 셰어(dispatcher’s share) (D)를 계산하는 단계를 더 포함한다.
상기 디스패처의 셰어(dispatcher’s share)는 모든 라우팅에 대한 디스패처의 셰어를 가리키는데, 이는 모든 디스패처들이 상기 아비트레이터로부터 수신하는 워크로드의 셰어를 의미한다. 그리고 상기 디스패처의 상대적 셰어(dispatcher’s relative share)는 가장 작은 상대적 실행 캐패시티들에 관한 디스패처의 상대적 셰어를 가리킨다.
상기 방법에서 상대적 큐 길이에 관한 제 1 함수는 상대적 큐 길이의 최대값의 역(inverse)을 계산하는 단계를 포함한다. 그리고 상기 산술 연산은 곱셈(multiplication)을 가리킨다. 또한 상기 제 1, 제 2 및 제 3 의 워크로드 유형에는 일반 CPU(CP), z 애플리케이션 어시스트 프로세서(zAAP) 및 z9 통합 정보 프로세서(aIIP: z9 Integrated Information Processor)가 포함된다. 상기 디스패처의 셰어는 모든 시스템들의 모든 디스패처들의 셰어들을 더한 값으로 상기 디스패처의 셰어를 나눔으로써 정규화된다.
상기 방법에서 상기 최소 값은 모든 시스템들의 모든 최소값을 더한 값으로 상기 최소값을 나눔으로써 정규화된다. 그리고 상기 아비트레이터는 상기 워크로드 항목들의 흐름을 다른 시스템들의 다른 디스패처들로 분배한다.
상기 실시 예들의 장점 중 하나는, 총 시스플렉스의 캐패시티가 모든 워크로드 유형의 총 워크로드 수요를 초과하는 한, 캐패시티의 부족(shortage)이나 실행 유닛의 정지(outage)로 인해 디스패처들 및 실행 유닛들에서 큐(queues)가 무한대로 늘어나지는(grow) 않는다는 것이다. 그 이유는, 각 시스템에 대한 모든 라우팅들의 디스패처의 셰어값은 모든 프로세서(any processor)상에서 그것의 캐패시티와 관련된 큐 길이와 그리고 그것의 캐패시티에 의한 워크로드 유형의 서비스 유닛들의 총계의 상대 값에 달려 있기 때문이다. 따라서 한 시스템상에서 어떤 실행 유닛이 정지하는 경우가 발생하더라도, 다른 시스템들내의 자원들에서 오버플로우(overflow) 또는 혼잡(congestion)을 초래함이 없이 워크로드를 다른 시스템들에 분배하는 것에 의해 그것을 보상할 수 있다. 상기 실시 예들의 또 다른 장점은 상기 디스패처의 셰어 계산이 초기의 워크로드 분배와는 무관하며 알고리즘은 최적의 워크로드 분배를 할 수 있다는 것이다.
본 발명의 또 다른 목적은, 컴퓨터 사용가능 매체상에 저장되는 컴퓨터 프로그램 제품을 제공하는 것이며, 상기 제품은 컴퓨터 판독가능 프로그램 수단을 포함하며, 상기 프로그램은 컴퓨터상에서 실행되는 경우, 본 발명에 따른 방법을 컴퓨터가 수행하도록 한다.
본 발명의 또 다른 목적은, 상기 모든 실시 예들에 따라 워크로드 관리를 수행하기 위한 데이터 처리 시스템을 제공하는 것이다.
이하에서 본 발명의 바람직한 실시 예들은 이하의 도면들을 참조하여 더 상세하게 설명될 것이다. 여기서 도면들은 오직 예로서만 소개되는 것이다.
도 1은 본 발명의 일 실시 예에 따른 제 1 시스플렉스(sysplex)의 블록도를 도시한다,
도 2는 본 발명의 일 실시 예에 따라 시스플렉스를 형성하는 복수의 상호결합된 시스템들의 블록도를 도시한다,
도 3은 본 발명의 일 실시 예에 따라 디스패처의 셰어를 계산하는 방법의 흐름도를 도시한다,
도 4는 본 발명의 일 실시 예에 따른 워크로드 매니저(workload manager)의 계산 블록도를 도시한다.
도 1은 본 발명의 일 실시 예에 따른 제 1 시스플렉스(sysplex)의 블록도를 도시한다,
도 2는 본 발명의 일 실시 예에 따라 시스플렉스를 형성하는 복수의 상호결합된 시스템들의 블록도를 도시한다,
도 3은 본 발명의 일 실시 예에 따라 디스패처의 셰어를 계산하는 방법의 흐름도를 도시한다,
도 4는 본 발명의 일 실시 예에 따른 워크로드 매니저(workload manager)의 계산 블록도를 도시한다.
도 1은 제 1 시플렉스의 예 (100)을 도시하는데, 상기 예는 아비트레이터(arbitrator)(102)에 결합된 제 1 워크로드 매니저(101)을 갖는 제 1 시스템(118)을 포함한다; 아비트레이터(102)는 제 1, 제 2 및 제 3 의 디스패처(103-105)에 결합되고, 각 디스패처는 세 개의 실행 유닛들(106-114)에 결합된다. 그리고 제 1 워크로드 매니저(101)은 또 다른 두 개의 워크로드 매니저들(120-121)에 결합된다. 제 1 디스패처(103)은 제 2 시스템(117)에 위치하며 또한 실행 유닛들(106-108)에 결합된다. 제 2 디스패처(104)는 제 1 시스템(118)에 위치하고 또한 세 개의 실행 유닛들(109-111)에 결합된다. 그리고 제 3 디스패처는(105)는 제 3 시스템(119)에 위치하며 또한 또 다른 세 개의 실행 유닛들(112-114)에 결합된다. 그리고 메모리(116)은 워크로드 매니저(101)에 결합된다.
아비트레이터(102)는 유입되는(incoming) 워크로드 항목들(115)를 수신하여 디스패칭 유닛들(103-105)로 발송한다. 각 디스패처는 워크로드 항목들의 워크로드 유형을 결정하여 그것들을 전문 실행 유닛들(specialized execution units)(106-114)로 발송한다. 이때 상기 복수의 워크로드 항목들의 큐 길이는 각각의 디스패처 그리고 각각의 실행 유닛에 대해 측정될 수 있다. 예를 들어, 디스패처(103)은 5 개의 워크로드 항목들의 큐 길이(qD1)를 가지며, 실행 유닛(106)은 3 개의 워크로드 항목들의 큐 길이(qE1 ,1)를 갖는다. 그러나 모든 디스패처들 또는 모든 실행 유닛들에 대해 큐 길이를 측정할 필요는 없다. 본 발명의 실시 예에서 단지 필요한 조건은 아비트레이터 이후의 라우팅 중 최소 한 단계에서 큐 길이가 측정되는 것이다.
각 워크로드 항목은 하나의 시간 구간에서 실행 유닛에 관해 서로 다른 CPU 소모량(different CPU consumption)을 요구하며, 그 소모량은 아비트레이터가 사전에 알지 못한다. 따라서 복수의 워크로드 항목들(115)의 디스패처들에 대한 할당은 각 워크로드 항목의 크기나 또는 그것의 CPU 소모량과 관계없이 이루어진다. 각 워크로드 항목의 워크로드 유형은 디스패처들에 의해서 식별되며, 워크로드 항목들의 크기는 디스패처 또는 실행 유닛들에 의해서 식별된다. 아비트레이터(arbitrator)는 워크로드 항목들의 워크로드 유형 및 워크로드 항목들의 크기를 미리 알지 못하기 때문에, 알고리즘에 문제가 있으면 큐(queue)가 무한대로 늘어날 수 있다. 그래서 모든 시스템들의 워크로드 매니저들(101, 120-121)은 연결되어 지속적으로 상호 대화를 하면서 시스템들의 캐패시티 및 워크로드 값들에 대한 정보를 주고 받는다(communicate). 그리고 메모리(116)은 복수의 시스템들 전체에 걸쳐(across) 모든 워크로드 유형들에 관한 서비스 유닛들 총계의 값들과 각 시스템의 모든 워크로드 유형들의 캐패시티 값을 저장한다.
도 2는 복수의 상호연결된 시스템들로 형성된 시스플렉스(200)의 일 예를 도시한다. 상기 시스플렉스(200)은 제 1, 제 2, 제 3 및 제 4 시스템(201-204)를 포함한다. 그리고 각 시스템은 워크로드 매니저(205-208)을 포함하는데, 모든 워크로드 매니저들(205-208)은 서로 결합되어 있다. 워크로드 매니저들(205-206)은 두 개의 아비트레이터들(209-210)에 결합되어 있는데, 다른 실시 예에서는, 전체 시스플렉스에서 하나의 아비트레이터를 갖는 것으로도 충분할 수도 있다. 그리고 아비트레이터들(209-210)은 복수의 디스패처들(213-216)에 결합되고 각 디스패처(213-216)은 복수의 실행 유닛들(217-220)에 또한 결합되어 있다. 상기 아비트레이터는 워크로드를 시스플렉스의 어떤 시스템에게든지 발송할 수 있기 때문에, 모든 시스템이 아비트레이터를 필요로 하는 것은 아니다.
각 워크로드 매니저(205-208)은 워크로드 항목들의 상대 량 중에서 하나의 디스패처가 수신해야 하는 디스패처의 셰어를 계산하는 라우팅 알고리즘을 처리한다. 아비트레이터들(209-210)은 워크로드 유형이나 워크로드 크기를 알지 못하며, 상기 알고리즘의 처리 결과에 따라 워크로드 매니저(205-208)로부터 라우팅 추천들(routing recommendations)을 수신하여 워크로드 항목들을 분배한다. 디스패처들(213-216)은 큐 매니저들로도 알려져 있으며, 아비트레이터들(209-210)으로부터 상기 워크로드 항목들을 수신하여 서버들로도 불리우는, 실행 유닛들(217-220)에 의해서 페치(fetch)될 때까지 대기시킨다(queue). 그리고 실행 유닛들(217-220)은 워크로드 항목들을 실행하여, 워크로드 유형을 판독하고 그리고 어떤 프로세서가 그 워크로드 항목을 처리할 수 있는지를 결정한다. 워크로드 유형은, 일반 CPU(CP), z 애플리케이션 어시스트 프로세서(zAAP) 및 z9 통합 정보 프로세서(zIIP)를 포함한 세 가지 혹은 그 이상의 유형들로 이루어질 수 있다. 그리고 각 워크로드 유형에 대해서는 서로 다른 프로세서가 사용된다. 워크로드 매니저들은 모든 시스템들에 걸쳐 디스패처 상태에 관한 정보를 수신하기 위해 모든 시스템들에 걸쳐 결합되어 있다.
도 3은 워크로드 매니저에서 디스패처의 셰어(D)를 계산하는 방법의 흐름도(300)을 도시한다. 제 1 단계(301)은 진행중인 시간 구간에서 복수의 시스템들 전체에 걸쳐 각 워크로드 유형을 위한 서비스 유닛들의 총계를 획득하는 단계를 포함한다. 이때 상기 서비스 유닛들은 하나의 시간 구간에서의 CPU 소모량을 측정한 하나의 값(a value)이다. 그리고 상기 서비스 유닛들의 총계는 제 1 의 워크로드 유형에 대한 하나의 값, 그리고 제 2 및 제 3 의 워크로드 유형들에 대한 제 2 및 제 3 의 값들을 포함한다. 또한 추가적인 워크로드 유형들이 상기 시스템에서 이용가능하며, 이에 대응하는 상기 서비스 유닛들의 총계도 추가적인 값을 포함한다.
제 2 단계(302)는 각 워크로드 유형에 대해 캐패시티 값을 획득하는 단계를 포함하는데, 여기서 각 워크로드 유형은 복수의 시스템들의 각 시스템상의 제 1, 제 2 및 제 3 의 워크로드 유형을 포함한다. 상기 캐패시티는 하나의 시스템이 하나의 시간 구간에 실행할 수 있는 서비스 유닛들의 최대값을 측정한다. 각 워크로드 유형과 각 시스템에 대해서는 서로 다른 캐패시티 값이 획득되며, 따라서 각 시스템은 각 워크로드 유형에 대해 하나의 캐패시티 값을 포함할 것이다.
흐름도(300)은 디스패처의 상대적 셰어를 계산하는 제 3 단계(303)을 더 포함하는데, 이는 각 시스템상의 각 워크로드 유형에 대한 캐패시티를 각 워크로드 유형에 대한 서비스 유닛들의 총계로 나눔으로써 획득된다. 각 시스템상의 각 워크로드 유형에 대한 상기 획득된 캐패시티는 동일한 워크로드 유형의 서비스 유닛들의 총계로 나뉘게 되며 이중 최소값이 각 시스템상의 디스패처의 상대적 셰어에 해당한다. 제 3 단계(303)에서 각 시스템에 대해 하나의 값(a single value)이 획득된다. 제 4 단계(304)는 각 시스템상의 각 워크로드 유형에 대한 워크로드 항목들의 큐 길이를 각 시스템상의 각 워크로드 유형의 캐패시티로 나눔으로써 각 시스템으로부터 상대적 큐 길이(a relative queue length)를 계산하는 단계를 포함한다. 이로써 각 시스템은 각 워크로드 유형에 대해 하나의 값을 획득한다. 제 5 단계(305)는 산술 연산을 사용하여 상기 최소값과 상기 상대적 큐 길이에 관한 제 1 함수 값을 결합하여 각 시스템에 대한 디스패처의 셰어(dispatcher’s share) (D)를 계산하는 단계를 포함한다.
도 4는 복수의 디스패처들 전체에 걸쳐 워크로드 항목들의 흐름을 분배하기 위한 디스패처 셰어의 계산의 일 예를 도시한다. 제 1 테이블(400)은 세 개의 시스템들(401-403), 제 1 의 워크로드 유형(404), 제 2 의 워크로드 유형(405) 및 제 3 의 워크로드 유형(406)을 포함하며; 서비스 유닛들(407)의 총계, 각 시스템상의 복수의 캐패시티들 - 제 1 시스템(401)에 관한 제 1 의 복수 캐패시티들(408), 제 2 시스템(402)에 관한 제 2 의 복수 캐패시티들(409) 및 제 3 시스템(403)에 관한 제 3 의 복수 캐패시티들(410) - 을 포함한다. 제 2 테이블(420)은 각 시스템상의 각 워크로드 유형의 복수의 큐 길이들(421-423), 각 시스템상의 각 워크로드 유형에 대해 계산된 상대적 큐 길이(424-426), 및 각 시스템상의 각 워크로드 유형에 대한 상대적 큐 길이에 관한 하나의 함수(427)을 더 포함한다.
워크로드 매니저에서 디스패처의 셰어를 계산하기 위한 첫 번째 스텝들 중 하나는 모든 시스템들(401-403)에 걸쳐 각 워크로드 유형에 관한 서비스 유닛들의 총계(407)을 획득하는 단계를 포함한다. 이 예에서, 제 1 시스템(401)상의 제 1 워크로드 유형에 대한 서비스 유닛들의 총계는 300 이고, 제 2 워크로드 유형에 대한 서비스 유닛들의 총계는 500 이며, 제 3 워크로드 유형에 대한 서비스 유닛들의 총계는 10 이다.
또 다른 스텝은 각 시스템상의 워크로드 유형에 관한 캐패시티 값(408-410)을 획득하는 단계를 포함한다. 예를 들어, 제 1 시스템(401)상의 제 1 워크로드 유형의 캐패시티는 90 이고, 제 2 워크로드 유형의 캐패시티는 100 이며, 제 3 워크로드 유형의 캐패시티는 10 이다. 그리고 제 2 시스템(402)상의, 제 1 워크로드 유형에 대한 캐패시티는 200 이고, 제 2 워크로드 유형에 대한 캐패시티는 400 이며, 제 3 워크로드 유형에 대한 캐패시티는 100 이다. 모든 시스템들에 대해서 캐패시티들이 획득되면, 각 시스템상의 그리고 각 워크로드 유형에 대한 디스패처의 상대적 셰어가 계산될 수 있다.
제 1 시스템(401)에서, 하나의 시스템이 처리할 수 있는 제 1 의 워크로드(411)은 제 1 워크로드 유형의 캐패시티, ‘90’, 을 제 1 워크로드 유형의 서비스 유닛들 총계, ‘300’, 으로 나눔으로써 획득되며, 그 결과는 ‘0.3’ 이 된다. 그리고 제 2 워크로드 유형의 제 2 의 캐패시티, ‘100’, 을 제 2 워크로드 유형의 서비스 유닛들 총계, ‘500’, 으로 나눔으로써 획득되는, 하나의 시스템이 처리할 수 있는 제 2 의 워크로드는 ‘0.2’ 가 된다. 이 값은 하나의 시스템이 처리할 수 있는 실제 워크로드를 백분율로 나타낸 것이다. 제 3 시스템에 대해서도 동일한 과정이 반복되며 그 결과 ‘1’ 값이 획득된다. 그리고 모든 시스템 전체에 걸쳐 동일한 과정이 반복되고 각 시스템에 대해서 세 개의 다른 값들이 획득된다.
디스패처의 셰어를 계산하는 방법의 또 다른 스텝은 미리 획득된 디스패처의 상대적 셰어 중 최소값을 계산하는 단계를 포함한다. 예를 들어 제 1 시스템상의 세 개의 디스패처의 상대적 셰어 값들은; ‘0.3’, ‘0.2’ 그리고 ‘1’ 인데, 이 세 값들 중에서 최소값은 ‘0.2’ 이다. 그리고 제 2 시스템에서, 최소값은 ‘0.6’ 이고, 제 3 시스템에서 디스패처의 상대적 셰어 중 최소값은‘1’이다.
제 2 테이블(420)은 디스패처의 셰어를 계산하는 방법을 포함하는 이후의 스텝들의 일 예를 도시하는데, 큐 길이를 특정 워크로드 유형에 대한 캐패시티로 나눔으로써 상대적 큐 길이(424-426)을 계산하는 단계를 포함한다. 제 1 시스템(401)상의 제 1 워크로드 유형에 대한 큐 길이는 ‘125’ 이고; 제 2 워크로드 유형에 대한 큐 길이는 ‘89’ 이며, 제 3 워크로드 유형에 대한 제 3 의 큐 길이는 ‘67’ 이다. 제 1 시스템의 제 1 의 상대적 큐 길이는 ‘125’ 를 ‘90’으로 나눔으로써 획득되는데, 획득된 값은 ‘1.388’ 이고; 또한 제 2 의 상대적 큐 길이는 ‘89’ 를 ‘100’으로 나눔으로써 획득되는데, 획득된 값은 ‘0.89’ 이다. 모든 시스템들 전체에 걸쳐 모든 워크로드 유형들의 모든 큐 길이들에 대해 상기 과정이 반복되는데, 제 1 시스템의 제 3 의 상대적 큐 길이는 ‘6.7’ 이 된다.
테이블(420)은 상대적 큐 길이에 관한 제 1 함수를 더 포함하는데, 제 1 함수는 (1 + 상대적 큐 길이의 최대값)의 역(inverse) 값을 획득하는 단계를 포함한다. 제 1 시스템(401)상의 상대적 큐 길의 최대값은 ‘6.7’ 이므로, 그 값에 1을 더한 값의 역을 취한 값은 ‘0.12987’ 이다. 제 2 시스템상의, 상대적 큐 길이의 최대값은 ‘3.655’ 이므로, 그 값에 1을 더한 값의 역을 취한 값은 ‘0.214’ 이다; 그리고 제 3 시스템상의 상대적 큐 길의 최대값은 ‘4.356’ 이고 그 값에 1을 더한 값의 역을 취한 값은 ‘0.186’ 이다. 이 값들이 모두 계산되면, 각 시스템상의 디스패처의 상대적 셰어의 최소값과 각 시스템상의 제 1 함수 값을 곱함(multiplying)으로써 디스패처의 셰어가 획득된다. 그래서 제 1 시스템에 대해서는 ‘0.2’ 에 ‘0.129’ 가 곱해져서, 그 획득값이 ‘0.0259’ 가 되고; 그리고 제 2 시스템에 대해서는 ‘0.66’ 에 ‘0.214’ 가 곱하여진다.
마지막으로, 제 3 시스템에 대해서는 ‘1’ 에 ‘0.18’ 이 곱하여진다. 이 세 개의 값들이 각 시스템에 대한 디스패처의 셰어를 나타내며, 따라서 아비트레이터(arbitrator)는 각 디스패처에 대해 서로 다른 양의 워크로드 항목들을 발송(route)할 수 있고, 이로써 모든 시스템들에 대해 그리고 모든 디스패처들 전체에 걸쳐 워크로드 항목들의 최적의 가능한 분배가 얻어지게 된다. 그리고 (최적값이) 이미 정해진 이후에도, 워크로드(W), 캐패시티들 및 큐 길이들의 모든 변화를 고려하여서, 정해진(fixed) 시간 구간에 상기 계산과정을 반복하고 그 결과 디스패처의 셰어들을 새로운 최적 값들로 조정할 수 있을 것이다.
본 발명은 전적으로 하드웨어 구현의 형태를 취할 수 있고, 또는 전적으로 소프트웨어 구현의 형태를 취할 수도 있고, 또는 하드웨어와 소프트웨어 구성요소들 모두를 포함하는 구현의 형태를 취할 수도 있다. 바람직한 실시 예에서, 본 발명은, 펌웨어, 상주 소프트웨어, 및 마이크로코드를 포함하는 소프트웨어로 구현된다. 그러나, 이러한 예로 한정되는 것은 아니다.
나아가, 본 발명은, 컴퓨터 시스템 또는 명령 실행 시스템에 의해 사용하기 위한, 또는 컴퓨터 시스템 또는 명령 실행 시스템과 결합하여 사용하기 위한, 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체로부터 접근가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 설명을 위한 목적으로, 컴퓨터-사용가능 또는 컴퓨터 판독가능 매체는 상기 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한 또는 상기 명령 실행 시스템, 장치, 또는 디바이스와 결합하여 사용하기 위한 프로그램을 보유, 저장, 전달, 전파, 또는 전송할 수 있는 어떤 장치라도 될 수 있다.
상기 매체는 전기, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템(또는 장치 또는 디바이스) 또는 전파 매체일 수 있다. 컴퓨터-판독가능 매체의 예들에는, 반도체 또는 솔리드-스테이트 메모리(solid-state memory), 자기 테이프, 착탈식 컴퓨터 디스켓, RAM(random access memory), ROM(read-only memory), 리지드 자기 디스크(ridig magnetic disk), 광 디스크 등이 있다. 현재까지 광 디스크들의 예들로는, 컴팩트 디스크-읽기 전용 메모리(CD-ROM), 컴팩트 디스크-읽기/쓰기(CD-R/W), 및 DVD 등이 있다.
프로그램 코드를 저장 및/또는 실행하기에 적합한 컴퓨터 시스템은 메모리 엘리먼트들에 직접 결합되거나, 시스템 버스를 통해 간접적으로 결합된 적어도 하나의 프로세서를 포함할 수 있다. 상기 메모리 엘리먼트들은 상기 프로그램 코드의 실제 실행 동안 채용되는 로컬 메모리, 벌크 스토리지, 및 캐쉬 메모리들 - 이는 실행 동안 코드가 벌크 스토리지로부터 리트리브되는 회수를 감소시키기 위해 적어도 일부 프로그램 코드의 임시 스토리지를 제공함 - 을 포함한다.
입력/출력(I/O) 디바이스들(키보드들, 디스플레이들, 포인팅 디바이스들 등을 포함하나, 이러한 예들로 한정되는 것은 아님)은 직접적으로 또는 중간의 I/O 컨트롤러들을 통해 컴퓨터 시스템에 결합될 수 있다. 또한, 중간의 사설 또는 공중 네트워크들을 통해 컴퓨터 시스템이 다른 컴퓨터 시스템들 또는 원격 프린터들 또는 스토리지 디바이스들에 결합될 수 있도록 하기 위해, 네트워크 어댑터들이 상기 컴퓨터 시스템에 결합될 수 있다. 모뎀들, 케이블 모뎀들, 및 이더넷 카드들은 현재로서 이용 가능한 네트워크 어댑터들의 몇몇 유형들이다.
비록 앞서의 것들은 본 발명의 특정 실시 예를 참조하여 기술했지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자들은 첨부된 특허청구범위에 정의된 본 발명의 본질 및 사상을 벗어나지 않고서도 이 실시 예들에서 변경들이 이루어질 수 있음을 이해할 수 있을 것이다.
100 블록도
101 워크로드 매니저
102 아비트레이터
103 제 1 의 디스패처
104 제 2 의 디스패처
105 제 3 의 디스패처
106-114 실행 유닛
115 워크로드 항목들
200 시스플렉스
201 시스템 1
202 시스템 2
203 시스템 3
204 시스템 4
205-208 워크로드 매니저
209-212 아비트레이터
213-216 디스패처들
217-220 실행유닛들
300 흐름도
301 제 1 단계
302 제 2 단계
303 제 3 단계
304 제 4 단계
305 제 5 단계
306 제 6 단계
400 제 1 테이블
401 시스템 1
402 시스템 2
403 시스템 3
404 제 1 워크로드 유형
405 제 2 워크로드 유형
406 제 3 워크로드 유형
407 서비스 유닛들의 총계
408-410 캐패시티
420 제 2 테이블
421-423 큐 길이
424-426 상대적 셰어
427 상대적 셰어에 관한 함수
101 워크로드 매니저
102 아비트레이터
103 제 1 의 디스패처
104 제 2 의 디스패처
105 제 3 의 디스패처
106-114 실행 유닛
115 워크로드 항목들
200 시스플렉스
201 시스템 1
202 시스템 2
203 시스템 3
204 시스템 4
205-208 워크로드 매니저
209-212 아비트레이터
213-216 디스패처들
217-220 실행유닛들
300 흐름도
301 제 1 단계
302 제 2 단계
303 제 3 단계
304 제 4 단계
305 제 5 단계
306 제 6 단계
400 제 1 테이블
401 시스템 1
402 시스템 2
403 시스템 3
404 제 1 워크로드 유형
405 제 2 워크로드 유형
406 제 3 워크로드 유형
407 서비스 유닛들의 총계
408-410 캐패시티
420 제 2 테이블
421-423 큐 길이
424-426 상대적 셰어
427 상대적 셰어에 관한 함수
Claims (11)
- 워크로드 매니저(101)에서 디스패처의 셰어(dispatcher’s share)(D)를 계산하는 방법에 있어서 - 상기 워크로드 매니저(101)은 아비트레이터(arbitrator) (102)에 결합되고, 상기 아비트레이터(102)는 복수의 시스템들(117-119)에 결합되며, 각 시스템은 디스패처(103-105)를 포함하고, 각 디스패처(103)은 복수의 실행 유닛들(106-114)에 결합되며, 상기 아비트레이터(102)는 워크로드 항목들(115)의 흐름을 수신하여 상기 디스패처(103-105)로 분배하기 위해 준비되고, 상기 실행 유닛들(106-114)은 상기 워크로드 항목들(115)를 실행하기 위해 준비되며, 상기 워크로드 항목들(115)은 적어도 제 1, 제 2 또는 제 3 의 유형으로 이루어짐 -, 상기 방법은:
메모리(116)으로부터 상기 복수의 시스템들(117-119) 전체에 걸쳐 각 워크로드 유형에 대한 서비스 유닛들의 총계(W)를 판독하는 단계 - 상기 서비스 유닛들은 하나의 시간 구간에서의 CPU 소모량(consumption)을 측정한 값이 됨-;
상기 메모리로부터 상기 복수의 시스템들(117-119)의 각 시스템(SYS)상의 각 워크로드 유형에 대한 캐패시티(cap) 값을 판독하는 단계 - 상기 캐패시티 값은 시스템이 상기 시간 구간에 실행할 수 있는 서비스 유닛들의 최대값을 나타냄 -;
각 시스템상의 각 워크로드 유형의 상기 캐패시티를 상기 각 워크로드 유형의 서비스 유닛들의 총계로 나눔으로써 제 1, 제 2 및 제 3 의 디스패처의 상대적 셰어(R)를 계산하여 각 시스템의 상기 디스패처의 상대적 셰어 중 최소값을 획득하는 단계;
각 시스템상의 각 워크로드 유형에 대한 상기 워크로드 항목들의 큐 길이(q)를 각 시스템상의 상기 각 워크로드 유형의 캐패시티로 나눔으로써 각 시스템에 대한 상대적 큐 길이(V)를 계산하는 단계;
산술 연산을 사용하여 상기 최소값과 상기 상대적 큐 길이에 관한 제 1 함수를 결합하여 각 시스템에 대해 상기 디스패처의 셰어(D)를 계산하는 단계를 포함하는
방법.
- 제 1 항에서, 상기 상대적 큐 길이에 관한 상기 제 1 함수는 상기 상대적 큐 길이의 최대값의 역(inverse)을 계산하는 단계를 포함하는
방법.
- 제 1 항 또는 2 항에서, 상기 산술 연산은 곱셈인
방법.
- 제 1 항 내지 3 항 중 어느 한 항에 있어서, 상기 디스패처의 셰어(R)는 상기 디스패처의 셰어를 모든 시스템들의 모든 디스패처의 셰어들을 더한 값(an addition)으로 나눔으로써 정규화되는
방법.
- 제 1 항 내지 4 항 중 어느 한 항에 있어서, 상기 제 1, 제 2 및 제 3 의 워크로드 유형은 CP, zAAP 그리고 zIIP 인
방법.
- 제 1 항 내지 5 항 중 어느 한 항에 있어서, 상기 최소값은 상기 최소값을 모든 시스템의 모든 최소값들을 더한 값으로 나눔으로써 정규화되는
방법.
- 제 1 항 내지 6 항 중 어느 한 항에 있어서, 상기 아비트레이터는 상기 워크로드 항목들의 흐름을 다른 시스템들의 다른 디스패처들로 분배하는
방법.
- 컴퓨터 판독가능 프로그램 수단을 포함하는 컴퓨터 사용가능 매체에 저장되는 컴퓨터 프로그램 제품에 있어서,
상기 프로그램이 컴퓨터에서 실행되는 경우, 상기 컴퓨터가 제 1 항 내지 제 7 항 중 어느 한 항에 기재된 방법을 수행하도록 하는
컴퓨터 프로그램 제품.
- 제 1 항 내지 제 7 항 중 어느 한 항에 기재된 방법을 수행하도록 동작 가능한 워크로드 관리를 위한 데이터 처리 시스템.
- 워크로드 매니저에서 디스패처의 셰어를 계산하는 컴퓨터 판독가능 프로그램을 포함하는 컴퓨터 사용가능 매체를 포함한 컴퓨터 프로그램 제품에 있어서 - 상기 워크로드 매니저는 아비트레이터에 결합되고, 상기 아비트레이터는 복수의 시스템들에 결합되며, 각 시스템은 디스패처를 포함하고, 각 디스패처는 복수의 실행 유닛들과 결합되며, 상기 아비트레이터는 워크로드 항목들의 흐름을 수신하여 상기 디스패처들로 분배하기 위해 준비되고, 상기 실행 유닛들은 상기 워크로드 항목들을 실행하기 위해 준비되며, 상기 워크로드 항목들은 적어도 제 1, 제 2 또는 제 3 의 유형으로 이루어짐 -, 상기 컴퓨터 판독가능 프로그램이 컴퓨팅 디바이스에서 실행될 때 상기 컴퓨팅 디바이스가:
메모리로부터 상기 복수의 시스템들 전체에 걸쳐 각 워크로드 유형에 대한 서비스 유닛들의 총계를 판독하고 - 상기 서비스 유닛들은 하나의 시간 구간에서 CPU 소모량을 측정한 값이 됨 -;
상기 메모리로부터 상기 복수의 시스템들의 각 시스템상의 각 워크로드 유형에 대한 캐패시티 값을 판독하며 - 상기 캐패시티 값은 하나의 시스템이 상기 시간 구간에서 실행할 수 있는 서비스 유닛들의 최대값을 나타냄 -;
각 시스템상의 상기 각 워크로드 유형의 캐패시티를 상기 각 워크로드 유형의 서비스 유닛들의 총계로 나눔으로써 제 1, 제 2 및 제 3 의 디스패처의 상대적 셰어(R)를 계산하여 각 시스템상의 상기 디스패처의 상대적 셰어 중 최소값을 획득하고;
각 시스템상의 각 워크로드 유형에 대한 상기 워크로드 항목들의 큐 길이를 각 시스템상의 상기 각 워크로드 유형의 캐패시티로 나눔으로써 각 시스템에 대한 상대적 큐 길이를 계산하며;
산술 연산을 사용하여 상기 최소값과 상기 상대적 큐 길이에 관한 제 1 함수를 결합하여 각 시스템에 대해 상기 디스패처의 셰어를 계산하는
컴퓨터 프로그램 제품.
- 워크로드 매니저의 디스패처의 셰어를 계산하는 데이터 처리 시스템에 있어서 - 상기 워크로드 매니저는 아비트레이터(arbitrator)에 결합되고, 상기 아비트레이터는 복수의 시스템들에 결합되며, 각 시스템은 디스패처를 포함하고, 각 디스패처는 복수의 실행 유닛들에 결합되며, 상기 아비트레이터는 워크로드 항목들의 흐름을 수신하여 상기 디스패처들로 분배하기 위해 준비되고, 상기 실행 유닛들은 상기 워크로드 항목들을 실행하기 위해 준비되며, 상기 워크로드 항목들은 적어도 제 1, 제 2 또는 제 3 의 유형으로 이루어짐 -, 상기 데이터 처리 시스템은:
메모리로부터 상기 복수의 시스템들 전체에 걸쳐 각 워크로드 유형에 대한 서비스 유닛들의 총계를 판독하는 컴포넌트 - 상기 서비스 유닛들은 하나의 시간 구간에서의 CPU 소모량(consumption)을 측정한 값이 됨 -;
상기 메모리로부터 상기 복수의 시스템들의 각 시스템상의 각 워크로드 유형에 대한 캐패시티(cap) 값을 판독하는 컴포넌트 - 상기 캐패시티 값은 하나의 시스템이 상기 시간 구간에 실행할 수 있는 서비스 유닛들의 최대값을 나타냄 -;
각 시스템상의 상기 각 워크로드 유형의 캐패시티를 상기 각 워크로드 유형의 서비스 유닛들의 총계로 나눔으로써 제 1, 제 2 및 제 3 의 디스패처의 상대적 셰어를 계산하여 각 시스템상의 상기 디스패처의 상대적 셰어 중 최소값을 획득하는 컴포넌트;
각 시스템상의 상기 각 워크로드 유형의 워크로드 항목들의 큐 길이를 각 시스템상의 상기 각 워크로드 유형의 캐패시티로 나눔으로써 각 시스템에 대한 상대적 큐 길이를 계산하는 컴포넌트;
산술 연산을 사용하여 상기 최소값과 상기 상대적 큐 길이에 관한 제 1 함수를 결합하여 각 시스템에 대해 상기 디스패처의 셰어를 계산하는 컴포넌트를 포함하는
데이터 처리 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08151917 | 2008-02-26 | ||
EP08151917.5 | 2008-02-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100138885A true KR20100138885A (ko) | 2010-12-31 |
Family
ID=40451157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107018384A KR20100138885A (ko) | 2008-02-26 | 2009-01-28 | 라우팅 워크로드들 및 그 계산방법 |
Country Status (6)
Country | Link |
---|---|
US (3) | US8245238B2 (ko) |
EP (1) | EP2255286B1 (ko) |
JP (1) | JP4959845B2 (ko) |
KR (1) | KR20100138885A (ko) |
CN (1) | CN101960428B (ko) |
WO (1) | WO2009106398A1 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100138885A (ko) | 2008-02-26 | 2010-12-31 | 인터내셔널 비지네스 머신즈 코포레이션 | 라우팅 워크로드들 및 그 계산방법 |
US8056080B2 (en) * | 2009-08-31 | 2011-11-08 | International Business Machines Corporation | Multi-core/thread work-group computation scheduler |
US9158713B1 (en) * | 2010-04-07 | 2015-10-13 | Applied Micro Circuits Corporation | Packet processing with dynamic load balancing |
GB201008819D0 (en) * | 2010-05-26 | 2010-07-14 | Zeus Technology Ltd | Apparatus for routing requests |
US9817700B2 (en) * | 2011-04-26 | 2017-11-14 | International Business Machines Corporation | Dynamic data partitioning for optimal resource utilization in a parallel data processing system |
US9141432B2 (en) * | 2012-06-20 | 2015-09-22 | International Business Machines Corporation | Dynamic pending job queue length for job distribution within a grid environment |
US9262210B2 (en) | 2012-06-29 | 2016-02-16 | International Business Machines Corporation | Light weight workload management server integration |
US9304816B2 (en) | 2013-08-05 | 2016-04-05 | International Business Machines Corporation | Multiple stage workload management system |
US10048989B2 (en) * | 2015-05-18 | 2018-08-14 | Krystallize Technologies, Inc. | Automated workload analysis and simulation process |
US10656966B1 (en) * | 2018-01-02 | 2020-05-19 | Amazon Technologies, Inc. | Deep-inspection weighted round robin of multiple virtualized resources |
US10671302B1 (en) | 2018-10-26 | 2020-06-02 | Pure Storage, Inc. | Applying a rate limit across a plurality of storage systems |
US12026381B2 (en) | 2018-10-26 | 2024-07-02 | Pure Storage, Inc. | Preserving identities and policies across replication |
US11204802B2 (en) * | 2020-04-27 | 2021-12-21 | International Business Machines Corporation | Adjusting a dispatch ratio for multiple queues |
CN112084022B (zh) * | 2020-08-21 | 2023-09-08 | 北京水滴科技集团有限公司 | 一种项目容量规划方法、装置、计算机设备和存储介质 |
US20230403235A1 (en) * | 2022-05-18 | 2023-12-14 | Cisco Technology, Inc. | Layer 4 load aware load balancing |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04318655A (ja) * | 1991-04-18 | 1992-11-10 | Hitachi Ltd | マルチコンピューターシステムにおける負荷平滑制御方法 |
JPH06243112A (ja) * | 1993-02-19 | 1994-09-02 | Seiko Epson Corp | マルチプロセッサ装置 |
JP2000259591A (ja) * | 1999-03-11 | 2000-09-22 | Matsushita Electric Ind Co Ltd | 分散処理ジョブ実行方法およびネットワークシステム |
JP2000268012A (ja) * | 1999-03-12 | 2000-09-29 | Nec Corp | クライアントサーバシステムにおけるサーバ負荷の分散方法ならびに装置 |
AU6902300A (en) | 1999-08-13 | 2001-03-13 | Sun Microsystems, Inc. | Graceful distribution in application server load balancing |
US7284067B2 (en) * | 2002-02-20 | 2007-10-16 | Hewlett-Packard Development Company, L.P. | Method for integrated load balancing among peer servers |
US7080379B2 (en) * | 2002-06-20 | 2006-07-18 | International Business Machines Corporation | Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue |
US7167916B2 (en) * | 2002-08-30 | 2007-01-23 | Unisys Corporation | Computer OS dispatcher operation with virtual switching queue and IP queues |
US7406692B2 (en) * | 2003-02-24 | 2008-07-29 | Bea Systems, Inc. | System and method for server load balancing and server affinity |
JP2005071031A (ja) * | 2003-08-22 | 2005-03-17 | Nec Corp | キューイング装置、キュー処理方法、およびキュー処理プログラム |
US7712102B2 (en) * | 2004-07-30 | 2010-05-04 | Hewlett-Packard Development Company, L.P. | System and method for dynamically configuring a plurality of load balancers in response to the analyzed performance data |
JP2006259812A (ja) * | 2005-03-15 | 2006-09-28 | Hitachi Ltd | 動的キュー負荷分散方法、システム及びプログラム |
JP4318655B2 (ja) | 2005-03-15 | 2009-08-26 | パナソニック株式会社 | 光学デバイスの試験装置 |
US20070143460A1 (en) | 2005-12-19 | 2007-06-21 | International Business Machines Corporation | Load-balancing metrics for adaptive dispatching of long asynchronous network requests |
US7941805B2 (en) * | 2006-08-15 | 2011-05-10 | International Business Machines Corporation | Affinity dispatching load balancer with precise CPU consumption data |
CN101060494A (zh) * | 2007-05-17 | 2007-10-24 | 华为技术有限公司 | 一种路由选择的方法、系统及路由器 |
KR20100138885A (ko) | 2008-02-26 | 2010-12-31 | 인터내셔널 비지네스 머신즈 코포레이션 | 라우팅 워크로드들 및 그 계산방법 |
-
2009
- 2009-01-28 KR KR1020107018384A patent/KR20100138885A/ko not_active Application Discontinuation
- 2009-01-28 JP JP2010547130A patent/JP4959845B2/ja active Active
- 2009-01-28 EP EP09716163.2A patent/EP2255286B1/en active Active
- 2009-01-28 CN CN2009801063043A patent/CN101960428B/zh active Active
- 2009-01-28 WO PCT/EP2009/050914 patent/WO2009106398A1/en active Application Filing
- 2009-02-23 US US12/390,718 patent/US8245238B2/en not_active Expired - Fee Related
-
2012
- 2012-07-16 US US13/550,017 patent/US8875153B2/en active Active
-
2014
- 2014-10-15 US US14/514,966 patent/US9582338B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8245238B2 (en) | 2012-08-14 |
WO2009106398A1 (en) | 2009-09-03 |
JP4959845B2 (ja) | 2012-06-27 |
CN101960428A (zh) | 2011-01-26 |
CN101960428B (zh) | 2013-11-13 |
EP2255286B1 (en) | 2016-08-10 |
US20150040138A1 (en) | 2015-02-05 |
US20090217288A1 (en) | 2009-08-27 |
US9582338B2 (en) | 2017-02-28 |
US20120291044A1 (en) | 2012-11-15 |
JP2011513807A (ja) | 2011-04-28 |
US8875153B2 (en) | 2014-10-28 |
EP2255286A1 (en) | 2010-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20100138885A (ko) | 라우팅 워크로드들 및 그 계산방법 | |
US9092266B2 (en) | Scalable scheduling for distributed data processing | |
US8812639B2 (en) | Job managing device, job managing method and job managing program | |
TWI307470B (en) | Dynamic processor redistribution between partitions in a computing system | |
US9135040B2 (en) | Selecting provisioning targets for new virtual machine instances | |
US7698529B2 (en) | Method for trading resources between partitions of a data processing system | |
CN113342477B (zh) | 一种容器组部署方法、装置、设备及存储介质 | |
WO2017045576A1 (en) | System and method for resource management | |
JP5121936B2 (ja) | リソース割り当て装置及びリソース割り当てプログラム及び記録媒体及びリソース割り当て方法 | |
KR101640848B1 (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
US11150944B2 (en) | Balancing mechanisms in ordered lists of dispatch queues in a computational device | |
US10411977B2 (en) | Visualization of workload distribution on server resources | |
US10860352B2 (en) | Host system and method for managing data consumption rate in a virtual data processing environment | |
JP2011186701A (ja) | リソース割当装置、リソース割当方法、およびリソース割当プログラム | |
US10606650B2 (en) | Methods and nodes for scheduling data processing | |
US20110055831A1 (en) | Program execution with improved power efficiency | |
JP6732693B2 (ja) | リソース割当制御システム、リソース割当制御方法、及びプログラム | |
JP6374059B2 (ja) | コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータ | |
Postoaca et al. | h-Fair: asymptotic scheduling of heavy workloads in heterogeneous data centers | |
KR101550666B1 (ko) | 가상 맵리듀스 클러스터 내 데이터 전송경로 추천 방법 및 시스템 | |
JP2015207180A (ja) | 仮想マシン組合せ判定装置、仮想マシン組合せ判定方法および仮想マシン組合せ判定用プログラム | |
JP2017182591A (ja) | コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |