KR101996768B1 - Method and apparatus of managing resource - Google Patents
Method and apparatus of managing resource Download PDFInfo
- Publication number
- KR101996768B1 KR101996768B1 KR1020180152327A KR20180152327A KR101996768B1 KR 101996768 B1 KR101996768 B1 KR 101996768B1 KR 1020180152327 A KR1020180152327 A KR 1020180152327A KR 20180152327 A KR20180152327 A KR 20180152327A KR 101996768 B1 KR101996768 B1 KR 101996768B1
- Authority
- KR
- South Korea
- Prior art keywords
- resource
- network bandwidth
- cpu
- bandwidth resource
- network
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/827—Aggregation of resource allocation or reservation requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
아래 실시예들은 자원 관리 방법 및 장치에 관한 것이다.The following embodiments relate to a resource management method and apparatus.
리눅스는 태스크 그룹단위로 다양한 하드웨어 자원을 관리하는 cgroup(Control Group) 프레임 워크를 제공하고 있다. 또한, 리눅스 환경에서 수행하는 컨테이너 기술들은 (예를 들어, 도커(Docker), LXC(LinuX Containers)) 자원 예약을 위해서 cgroup을 사용하고 있다.Linux provides a cgroup (Control Group) framework that manages various hardware resources on a task group basis. In addition, container technologies used in Linux environments (eg, Docker, LXC (LinuX Containers)) use cgroups to reserve resources.
하지만, cgroup은 자원 제약에 초점을 둔 자원 관리방식을 사용하고 있기 때문에, 예약된 자원에 대한 보장성이 낮다. 최근 이러한 문제를 해결하기 위해 CPU, 디스크 등의 자원에 대한 보장성 증가를 목표하는 기술들이 연구되고 있다. 그러나, 된 네트워크 자원에 대한 보장성을 향상시키기 위한 연구는 아직 미흡한 상황이다.However, since cgroups use a resource management method that focuses on resource constraints, the protection against reserved resources is low. In order to solve these problems, technologies aiming at increasing the protection of resources such as CPU and disk have been studied. However, there is still insufficient research to improve the protection of network resources.
리눅스는 네트워크 자원을 관리하기 위해 tc(Traffic Controller) 프레임워크를 제공해 왔으며, cgroup은 tc를 활용하여 태스크 그룹단위로 네트워크 자원을 예약할 수 있다. 하지만 tc는 예약된 네트워크 자원을 각각의 큐(queue)에서 qdisc를 통해 네트워크 대역폭의 상한을 관리할 뿐 서로 다른 큐에서 사용하는 자원에 대해 고려하지 않는다.Linux has provided a tc (Traffic Controller) framework to manage network resources, and cgroups can use tc to reserve network resources on a task group basis. However, tc does not consider reserved network resources for resources used in different queues, but only for managing the upper bound of network bandwidth through qdiscs in each queue.
따라서 가용 네트워크 대역폭이 충분하지 못한 상황에서 네트워크 자원을 사용하는 프로세스가 서로 다른 큐에 산재하는 경우, 서로의 네트워크 자원 간섭에 의해 네트워크 대역폭이 보장되지 않을 수 있다.Therefore, if the processes using the network resources are scattered in different queues in a situation where the available network bandwidth is insufficient, the network bandwidth may not be ensured due to mutual network resource interference.
또한, 프로세스가 네트워크 대역폭을 소비할 때 요구되는 CPU(Central Processing Unit), 메모리와 같은 자원이 다른 프로세스에 의해 간섭받는 경우 프로세스에 예약된 네트워크 대역폭 자원에 대한 제공을 보장할 수 없다.In addition, when a process consumes network bandwidth, it can not guarantee provision of network bandwidth resources reserved for the process when resources such as central processing unit (CPU) and memory are interfered with by other processes.
따라서 기존 리눅스의 tc, cgroup을 활용한 네트워크 자원관리 기능만으로는 네트워크 집중적인 실시간 응용을 지원하기 어려우며, 컨테이너가 사용하는 네트워크 자원을 기반으로 과금 시스템을 정밀하게 운영하기도 어렵다.Therefore, it is difficult to support the network-intensive real-time application with only the network resource management function using the existing Linux tc and cgroup, and it is also difficult to operate the billing system precisely based on the network resources used by the container.
실시예들은 자원을 관리하는 기술을 제공할 수 있다.Embodiments may provide techniques for managing resources.
일 실시예에 따른 자원 관리 방법은, 네트워크 대역폭 자원에 대한 예약 요청을 수신하는 단계와, 상기 예약 요청에 기초하여 상기 네트워크 대역폭 자원에 대한 스케줄링 가능성을 판단하는 단계와, 상기 네트워크 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 네트워크 대역폭 자원을 예약하는 단계와, 예약된 네트워크 대역폭 자원에 기초하여 CPU 대역폭 자원에 대한 스케줄링 가능성을 판단하는 단계와, 상기 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 CPU 대역폭 자원을 예약하는 단계를 포함한다.A resource management method according to an exemplary embodiment includes receiving a reservation request for a network bandwidth resource, determining schedulability for the network bandwidth resource based on the reservation request, scheduling for the network bandwidth resource, Determining a scheduling probability for a CPU bandwidth resource based on a reserved network bandwidth resource; and determining a scheduling probability for the CPU bandwidth resource based on schedulability for the CPU bandwidth resource, For example.
상기 네트워크 대역폭 자원에 대한 스케줄링 가능성을 판단하는 단계는, 예약된 네트워크 대역폭 자원의 합을 계산하는 단계와, 최대 가용 네트워크 대역폭 자원과 상기 예약된 네트워크 대역폭 자원의 합을 비교하여 스케줄링 가능성을 판단하는 단계를 포함할 수 있다.Wherein determining the schedulability for the network bandwidth resource comprises: calculating a sum of reserved network bandwidth resources; comparing the sum of the maximum available network bandwidth resources and the reserved network bandwidth resources to determine schedulability; . ≪ / RTI >
상기 자원 관리 방법은, 상기 네트워크 대역폭 자원을 예약하는 단계 이후에, 상기 최대 가용 네트워크 대역폭 자원에서 상기 예약된 네트워크 대역폭 자원의 합을 뺀 값으로 상기 네트워크 대역폭 자원의 제한을 설정하는 단계를 더 포함할 수 있다.The resource management method further comprises setting a limit of the network bandwidth resource to a value obtained by subtracting the sum of the reserved network bandwidth resources from the maximum available network bandwidth resource after reserving the network bandwidth resource .
상기 CPU 대역폭 자원에 대한 스케줄링 가능성을 판단하는 단계는, 단위 네트워크 대역폭 당 필요 CPU 대역폭 자원을 계산하는 단계와, 상기 합 및 상기 단위 네트워크 대역폭 당 필요 CPU 대역폭 자원의 곱과 최대 가용 CPU 대역폭 자원을 비교하여 스케줄링 가능성을 판단하는 단계를 포함할 수 있다.Wherein determining the schedulability for the CPU bandwidth resource comprises: calculating a required CPU bandwidth resource per unit network bandwidth; comparing the sum of the CPU bandwidth resources needed per sum and the unit network bandwidth to the maximum available CPU bandwidth resource; And determining a schedulability possibility.
상기 자원 관리 방법은, 상기 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 CPU 대역폭 자원을 예약하는 단계 이후에, 상기 최대 가용 CPU 대역폭 자원에서 상기 곱을 뺀 값으로 상기 CPU 대역폭 자원의 제한을 설정하는 단계를 더 포함할 수 있다.Wherein the resource management method further comprises: setting a limit of the CPU bandwidth resource to a value obtained by subtracting the product from the maximum available CPU bandwidth resource after reserving the CPU bandwidth resource based on schedulability for the CPU bandwidth resource As shown in FIG.
상기 자원 관리 방법은, 상기 네트워크 대역폭 자원의 사용량을 모니터링하는 단계를 더 포함할 수 있다.The resource management method may further include monitoring a usage amount of the network bandwidth resource.
상기 모니터링하는 단계는, 상기 네트워크 대역폭 자원의 디폴트 큐(default queue)를 생성하는 단계와, 대역폭이 예약되지 않은 비실시간 네트워크 흐름을 상기 디폴트 큐로 관리하는 단계를 포함할 수 있다.The monitoring may include generating a default queue of the network bandwidth resource and managing the non-reserved bandwidth non-real-time network flow with the default queue.
상기 모니터링하는 단계는, 상기 네트워크 대역폭 자원을 예약한 프로세스의 종료 또는 변경이 발생한 경우 상기 디폴트 큐의 네트워크 대역폭을 조절하는 단계를 더 포함할 수 있다.The monitoring may further include adjusting a network bandwidth of the default queue when a process for reserving the network bandwidth resource occurs or a change occurs.
일 실시예에 따른 자원 관리 장치는, 네트워크 대역폭 자원에 대한 예약 요청을 수신하는 수신기와, 상기 예약 요청에 기초하여 네트워크 대역폭 자원에 대한 스케줄링 가능성을 판단하고, 상기 네트워크 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 네트워크 대역폭 자원을 예약하고, 예약된 네트워크 대역폭 자원에 기초하여 CPU 대역폭 자원에 대한 스케줄링 가능성을 판단하고, 상기 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 CPU 대역폭 자원을 예약하는 프로세서를 포함한다.A resource management apparatus according to an embodiment includes a receiver for receiving a reservation request for a network bandwidth resource, a scheduler for determining schedulability for a network bandwidth resource based on the reservation request, and for determining a scheduling probability for the network bandwidth resource Determining a scheduling probability for a CPU bandwidth resource based on a reserved network bandwidth resource and reserving the CPU bandwidth resource based on schedulability for the CPU bandwidth resource, .
상기 프로세서는, 예약된 네트워크 대역폭 자원의 합을 계산하고, 최대 가용 네트워크 대역폭 자원과 상기 예약된 네트워크 대역폭 자원의 합을 비교하여 스케줄링 가능성을 판단할 수 있다.The processor may calculate the sum of the reserved network bandwidth resources and determine the schedulability by comparing the sum of the maximum available network bandwidth resources and the reserved network bandwidth resources.
상기 프로세서는, 상기 네트워크 대역폭 자원을 예약한 이후에, 상기 최대 가용 네트워크 대역폭 자원에서 상기 예약된 네트워크 대역폭 자원의 합을 뺀 값으로 상기 네트워크 대역폭 자원의 제한을 설정할 수 있다.The processor may set the limitation of the network bandwidth resource to a value obtained by subtracting the sum of the reserved network bandwidth resources from the maximum available network bandwidth resource after reserving the network bandwidth resource.
상기 프로세서는, 단위 네트워크 대역폭 당 필요 CPU 대역폭 자원을 계산하고, 상기 합 및 상기 단위 네트워크 대역폭 당 필요 CPU 대역폭 자원의 곱과 최대 가용 CPU 대역폭 자원을 비교하여 스케줄링 가능성을 판단할 수 있다.The processor may calculate a required CPU bandwidth resource per unit network bandwidth and compare the maximum available CPU bandwidth resource with a product of the sum and the required CPU bandwidth resource per unit network bandwidth to determine schedulability.
상기 프로세서는, 상기 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 CPU 대역폭 자원을 예약한 이후에, 상기 최대 가용 CPU 대역폭 자원에서 상기 곱을 뺀 값으로 상기 CPU 대역폭 자원의 제한을 설정할 수 있다.The processor may set a limit of the CPU bandwidth resource to a value obtained by subtracting the product from the maximum available CPU bandwidth resource after reserving the CPU bandwidth resource based on schedulability of the CPU bandwidth resource.
상기 프로세서는, 상기 네트워크 대역폭 자원의 사용량을 모니터링할 수 있다.The processor may monitor usage of the network bandwidth resource.
상기 프로세서는, 상기 네트워크 대역폭 자원의 디폴트 큐(default que)를 생성하고, 대역폭이 예약되지 않은 비실시간 네트워크 흐름을 상기 디폴트 큐로 관리할 수 있다.The processor may generate a default queue for the network bandwidth resources and manage non-real-time network flows that are not reserved for bandwidth with the default queue.
상기 프로세서는, 상기 네트워크 대역폭 자원을 예약한 프로세스의 종료 또는 변경이 발생한 경우 상기 디폴트 큐의 네트워크 대역폭을 조절할 수 있다.The processor may adjust the network bandwidth of the default queue when an end or change of a process that reserves the network bandwidth resource occurs.
도 1은 일 실시예에 따른 자원 관리 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 자원 관리 장치의 동작의 예를 나타낸다.
도 3은 네트워크 부하에 대한 자원 보장성 검증 실험 결과의 예를 나타낸다.
도 4는 CPU 부하에 대한 자원 보장성 검증 실험 결과의 예를 나타낸다.
도 5는 부하가 가장 큰 구간의 흐름 별 대역폭 구성의 예를 나타낸다.
도 6은 도 1에 도시된 자원 관리 장치의 동작의 순서도를 나타낸다.1 shows a schematic block diagram of a resource management apparatus according to an embodiment.
Fig. 2 shows an example of the operation of the resource management apparatus shown in Fig.
3 shows an example of the result of the resource protection verification test for the network load.
FIG. 4 shows an example of the results of the resource protection verification test for the CPU load.
Fig. 5 shows an example of bandwidth-specific bandwidth configuration of the load with the largest load.
FIG. 6 shows a flowchart of the operation of the resource management apparatus shown in FIG. 1. FIG.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.In the following, embodiments will be described in detail with reference to the accompanying drawings. However, various modifications may be made in the embodiments, and the scope of the patent application is not limited or limited by these embodiments. It is to be understood that all changes, equivalents, and alternatives to the embodiments are included in the scope of the right.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for descriptive purposes only and are not to be construed as limiting. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다. The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by terms. The terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the embodiment, the first element being referred to as the second element, The second component may also be referred to as a first component.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this embodiment belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. In the following description of the embodiments, a detailed description of related arts will be omitted if it is determined that the gist of the embodiments may be unnecessarily blurred.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.A module in this specification may mean hardware capable of performing the functions and operations according to the respective names described in this specification and may mean computer program codes capable of performing specific functions and operations , Or an electronic recording medium, e.g., a processor or a microprocessor, equipped with computer program code capable of performing certain functions and operations.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In other words, a module may mean a functional and / or structural combination of hardware for carrying out the technical idea of the present invention and / or software for driving the hardware.
도 1은 일 실시예에 따른 자원 관리 장치의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of a resource management apparatus according to an embodiment.
도 1을 참조하면, 자원 관리 장치(10)는 사용자의 자원 예약 요청에 따라, 자원을 관리할 수 있다. 자원 관리 장치(10)가 관리하는 자원은 네트워크 대역폭 자원 및 CPU 대역폭 자원을 포함할 수 있다.Referring to FIG. 1, the
네트워크 대역폭 자원은 전송 속도를 포함할 수 있다. 예를 들어, 네트워크 대역폭 자원의 단위는 bps(bit per second)일 수 있다. CPU 대역폭 자원은 CPU가 주고받을 수 있는 데이터의 양을 또는 CPU 코어의 개수를 포함할 수 있다.The network bandwidth resources may include the transmission rate. For example, the unit of the network bandwidth resource may be bps (bits per second). The CPU bandwidth resources may include the amount of data that the CPU can exchange, or the number of CPU cores.
자원 관리 장치(10)는 네트워크 대역폭 자원과 CPU 대역폭 자원을 관리할 수 있다. 자원 관리 장치(10)는 네트워크 자원 예약 단계에서 스케줄링 가능성을 분석할 수 있다.The
또한, 자원 관리 장치(10)는 비실시간 네트워크 흐름에 의한 자원 간섭을 줄이기 위해서 비실시간 네트워크 흐름의 네트워크 대역폭 자원의 사용량을 제한하고, 동시에 예약된 실시간 네트워크 흐름을 처리하는 응용의 CPU 자원의 보장을 통해 예약된 네트워크 대역폭을 보장할 수 있다.In addition, the
자원 관리 장치(10)는 수신기(100) 및 프로세서(200)를 포함한다. 자원 관리 장치(10)는 메모리(300)를 포함할 수 있다.The
수신기(100)는 네트워크 대역폭 자원에 대한 예약 요청을 수신할 수 있다. 수신기(100)는 수신한 예약 요청을 프로세서(200)로 출력할 수 있다.
프로세서(200)는 수신한 예약 요청에 기초하여 네트워크 대역폭 자원에 대한 스케줄링 가능성을 판단할 수 있다. 프로세서(200)는 예약된 네트워크 대역폭 자원의 합을 계산할 수 있다. 예약된 네트워크 대역폭 자원의 합은 로 나타낼 수 있다.The
프로세서(200)는 최대 가용 네트워크 대역폭 자원과 예약된 네트워크 대역폭 자원의 합을 비교하여 스케줄링 가능성을 판단할 수 있다. 최대 가용 네트워크 대역폭 자원은 와 같이 나타낼 수 있다.The
프로세서(200)는 예약된 네트워크 대역폭 자원의 합이 최대 가용 네트워크 대역폭 자원을 넘지 않는지 판단할 수 있다. 이는 수학식 1과 같이 나타낼 수 있다.The
프로세서(200)는 예약된 네트워크 대역폭 자원의 합이 최대 가용 네트워크 대역폭 자원을 넘지 않는 경우 스케줄링 가능성이 있다고 판단할 수 있다. 프로세서(200)는 네트워크 대역폭 자원에 대한 스케줄링 가능성에 기초하여 네트워크 대역폭 자원을 예약할 수 있다.The
이 때, 프로세서(200)는 예약된 네트워크 대역폭 자원의 합이 최대 가용 네트워크 대역폭 자원을 넘지 않도록 네트워크 대역폭 자원의 예약을 제한할 수 있다.At this time, the
프로세서(200)는 네트워크 대역폭 자원을 예약한 이후에, 최대 가용 네트워크 대역폭 자원에서 예약된 네트워크 대역폭 자원의 합을 뺀 값으로 네트워크 대역폭 자원의 제한을 설정할 수 있다. 네트워크 대역폭 자원의 제한 을 계산하는 과정은 수학식 2과 같이 나타낼 수 있다.After reserving the network bandwidth resource, the
프로세서(200)는 예약된 네트워크 대역폭 자원에 기초하여 CPU 대역폭 자원에 대한 스케줄링 가능성을 판단할 수 있다. 프로세서(200)는 단위 네트워크 대역폭 당 필요 CPU 대역폭 을 계산할 수 있다.The
프로세서(200)는 예약된 네트워크 대역폭 자원의 합 및 단위 네트워크 대역폭 당 필요 CPU 대역폭의 곱과 최대 가용 CPU 대역폭 자원 을 비교하여 스케줄링 가능성을 판단할 수 있다. 이는 수학식 3과 같이 나타낼 수 있다.The
즉, 프로세서(200)는 예약된 네트워크 대역폭 자원의 합과 단위 네트워크 대역폭 당 필요 CPU 대역폭 자원의 곱이 최대 가용 CPU 대역폭 자원보다 작은 경우에 CPU 대역폭 자원이 예약 가능하다고 판단할 수 있다. 프로세서(200)는 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 CPU 대역폭 자원을 예약할 수 있다.That is, the
프로세서(200)는 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 CPU 대역폭 자원을 예약한 이후에, 최대 가용 CPU 대역폭 자원에서 예약된 네트워크 대역폭 자원의 합과 단위 네트워크 대역폭 당 필요 CPU 대역폭 자원의 곱을 뺀 값으로 CPU 대역폭 자원의 제한 을 설정할 수 있다.After reserving the CPU bandwidth resource based on the schedulability of the CPU bandwidth resource, the
CPU 대역폭 자원의 제한 은 CPU 코어의 수를 포함할 수 있다. 예를 들어, 일 수 있다. 프로세서(200)가 제한 을 설정하는 동작은 수학식 4와 같이 나타낼 수 있다.Limitations of CPU bandwidth resources May include the number of CPU cores. E.g, Lt; / RTI >
프로세서(200)는 네트워크 대역폭 자원의 사용량을 모니터링할 수 있다. 프로세서(200)는 네트워크 대역폭 자원의 디폴트 큐(default que)를 생성하고, 대역폭이 예약되지 않은 비실시간 네트워크 흐름을 디폴트 큐로 관리할 수 있다. 프로세서(200)는 네트워크 대역폭 자원을 예약한 프로세스의 종료 또는 변경이 발생한 경우 디폴트 큐의 네트워크 대역폭을 조절할 수 있다.The
메모리(300)는 프로세서(200)가 처리한 연산 결과, 수신기(100)가 수신한 예약 요청 등을 저장할 수 있다. 또한, 메모리(300)는 프로세서(200)가 관리하는 자원에 관한 정보를 저장할 수 있다.The
도 2는 도 1에 도시된 자원 관리 장치의 동작의 예를 나타낸다.Fig. 2 shows an example of the operation of the resource management apparatus shown in Fig.
도 2를 참조하면, 자원 관리 장치(10)는 네트워크 대역폭 자원과 CPU 대역폭 자원을 동시에 관리할 수 있다. 자원 관리 장치(10)는 데몬 프로세스를 이용하여 구현될 수 있다.Referring to FIG. 2, the
종래의 tc 네트워크 대역폭 자원 관리 방식의 경우, 기본 태스크 그룹에 대한 네트워크 대역폭 제약이 없어 기본 태스크 그룹의 과도한 네트워크 대역폭 자원 사용 등의 관리되지 않는 네트워크 대역폭 자원 사용 요인에 의한 간섭에 취약할 수 있다.In the case of the conventional tc network bandwidth resource management method, since there is no network bandwidth restriction for the basic task group, it may be vulnerable to interference caused by an unmanaged network bandwidth resource use factor such as excessive network bandwidth resource usage of the basic task group.
자원 관리 장치(10)는 기본 태스크 그룹에 대한 네트워크 대역폭 제한을 설정하여 네트워크 자원 간섭을 방지할 수 있다. 또한, 자원 관리 장치(10)는 CPU 대역폭 자원의 제한을 설정함으로써, 네트워크 대역폭 자원을 사용하지 않는 태스크의 CPU 대역폭 자원의 사용으로 인하여 네트워크 대역폭 자원을 예약한 태스크 그룹의 CPU 대역폭 자원 사용이 방해받는 것을 막을 수 있다.The
자원 관리 장치(10)는 CLI(Command Line Interface, 210), 네트워크 자원 모니터(network resource monitor, 220) 및 자원 관리 모듈(230)을 포함할 수 있다.The
자원 관리 모듈(230)은 중앙 모듈(central module, 231), 네트워크 스케줄 가능성 분석기(network schedulability anaylyer, 233), 필요CPU 대역폭 계산 모듈(required CPU bandwidth calculation modue, 235) 및 CPU 대역폭 스케줄 가능성 분석기(CPU bandwidth schedulability anyalyer, 237)을 포함할 수 있다.The
자원 관리 장치(10)는 CLI(210), 네트워크 자원 모니터(220) 및 자원 관리 모듈(230)을 이용하여 네트워크 I/O(Input/Output) 대역폭을 보장할 수 있다.The
CLI(210)가 제공하는 사용자 인터페이스는 표 1과 같이 나타낼 수 있다.The user interface provided by the
(index)index
(index)
(program)program
(program)
(command)Command
(command)
(argument)Argument
(argument)
여기서, ./netbw_demon은 시스템 관리자가 초기 시스템의 최대 링크 스피드(link speed)와 단위 네트워크 시간당 CPU 자원 요구량(netpercpu)을 설정하기 위한 API를 의미할 수 있다.Here, ./netbw_demon may mean an API for the system administrator to set the maximum link speed of the initial system and the CPU resource requirement (netpercpu) per unit network time.
색인 2, 3 및 4에 해당하는 API는 사용자가 각 연결에 대한 네트워크 대역폭을 추가하기 위한 API를 의미할 수 있다.An API corresponding to
사용자가 자원 관리 장치(10)를 실행하면, 수신기(100)는 CLI(210)를 통해 비 실시간 네트워크 흐름 프로세스의 정보에 대한 입력을 수신하고, 실시간 네트워크 흐름의 네트워크 대역폭 및 프로세스의 CPU 대역폭의 등록, 수정 및 삭제에 관한 입력을 수신할 수 있다. 사용이 종료되면 사용자는 자원 관리 장치(10)를 종료할 수 있다.When the user executes the
자원 관리 장치(10)는 자원을 관리할 디바이스를 등록하고, 실시간 흐름에 해당하는 프로세스의 CPU 자원 요구량을 관리하고, 네트워크 대역폭을 보장할 수 있다.The
또한, 자원 관리 장치(10)는 cgroup(Control group, 240), tc(Traffic Controller, 250), 태스크 그룹(task group, 260) 및 큐디스크(qdisc, 270)을 제어함으로써 자원을 관리할 수 있다.Also, the
cgroup(240)은 CPU 시간, 메모리(300), 네트워크 등의 자원을 태스크 그룹 단위로 할당할 수 있도록 하는 프레임워크를 의미할 수 있다. cgroup(240)은 서브시스템이라는 하위 인터페이스를 통해 태스크 그룹별 시스템 자원을 관리할 수 있다.The
자원 관리 장치(10)는 tc(250)와 cgroup(240) 프레임워크를 활용하여 네트워크 대역폭을 예약할 수 있다. tc(250)는 커널에서 제공하는 트래픽 쉐이핑(traffic shaping) 도구를 의미할 수 있다. tc(250)는 큐잉 디서플린(queueing discipline), 클래스(class), 필터(filter)를 포함할 수 있다. 등이 있다.The
tc(250)는 링크 계층에 큐디스크(270)를 생성하고 전송을 위해 해당 디바이스에 도착하는 패킷을 큐잉(queueing)하고 설정에 따라 어떤 동작을 수행할지 결정할 수 있다. 또한, 큐디스크(270) 내에 계층 구조를 가진 클래스를 생성하여 사용자가 정의한 필터 규칙에 따라 패킷을 클래스 별로 분류할 수 있다.
tc(250)는 디바이스, 클래스별 대역폭 상한선을 지정해 과도한 자원 사용을 막을 수 있다. cgroup(240)은 네트워크 대역폭 자원을 관리하는 서브시스템으로 net_cls 서브시스템을 포함할 수 있다. cgroup(240)은 net_cls 서브시스템을 통해 특정 태스크 그룹에서 생성된 패킷에 클래스 아이디를 마킹 함으로서 tc(250)의 동작을 지원할 수 있다.
리눅스의 CPU 자원은 cpu 서브시스템을 통해 관리되며, 태스크 그룹 내의 태스크가 사용하는 스케줄러에 따라 실시간 태스크 그룹과 비실시간 태스크 그룹으로 구분될 수 있다. 리눅스는 비 실시간 스케줄러인 완전 공정 스케줄러 (Completely Fair Scheduler(CFS))를 기본 스케줄러로 지원하고, CFS 스케줄러는 공유 비율 방식과 대역폭 방식의 자원 예약 기능을 지원할 수 있다.CPU resources of Linux are managed through the cpu subsystem, and can be classified into real-time task groups and non-real-time task groups according to the scheduler used by the tasks in the task group. Linux supports the non-real-time scheduler, the Completely Fair Scheduler (CFS), as the default scheduler, and the CFS scheduler can support the resource-reservation features of the shared-rate and bandwidth-based schemes.
이 중에서 공유비율 방식의 자원예약은 태스크 그룹 간 자원 점유 비율(shares)을 예약할 수 있다. 예약된 점유 비율 값은 CFS의 나이스(nice) 값에 대응하는 웨이트(weight) 값과 함께 관리되며, 리눅스의 스케줄링 알고리즘은 가용 자원에 대해 예약한 자원비율만큼의 CPU 자원을 분배할 수 있다.Among these, the resource reservation of the sharing ratio scheme can reserve resource shares among the task groups. The reserved occupancy rate value is managed with a weight value corresponding to the nice value of the CFS, and the scheduling algorithm in Linux can distribute as much CPU resources as the reserved resource rate for the available resources.
또한, 대역폭 방식은 각 태스크 그룹이 사용할 수 있는 최대 CPU 대역폭을 예약하여 리눅스의 태스크 스케줄러는 CPU 대역폭 자원을 예약한 태스크 그룹의 과도한 CPU 자원 사용을 제한할 수 있다.In addition, the bandwidth scheme reserves the maximum CPU bandwidth available to each task group, allowing the task scheduler in Linux to limit excessive CPU resource usage of task groups that have reserved CPU bandwidth resources.
수신기(100)는 CLI(210)를 포함할 수 있다. 자원 관리 장치(10)는 CLI(210)를 통해 사용자의 네트워크 자원의 예약 요청을 수신할 수 있다. 자원 관리 장치(10)는 수신한 예약 요청에 응답하여 요청된 네트워크 I/O 대역폭 자원에 대한 필요 CPU 대역폭 자원을 계산할 수 있다.The
프로세서(200)는 네트워크 자원 모니터(220) 및 자원 관리 모듈(230)을 포함할 수 있다. 자원 관리 모듈(230)은 예약 요청된 네트워크 대역폭 자원과 계산을 통해 얻어낸 CPU 대역폭 자원에 대한 스케줄링 가능성 분석을 수행할 수 있다. 또한, 자원 관리 모듈(230)은 스케줄링 가능성 분석을 통과한 자원 예약에 대하여 cgroup(240)을 통해 자원의 예약을 수행할 수 있다.The
자원 관리 장치(10)의 네트워크 리소스 모니터(220)는 초기화 시점에서 디폴트 큐를 생성하고, 대역폭 자원이 예약되지 않은 비실시간 네트워크 흐름들을 디폴트 큐를 통해서 관리할 수 있다.The network resource monitor 220 of the
네트워크 대역폭 자원에 대한 스케줄링 가능성 분석은 네트워크 대역폭 자원의 예약 및 변경 명령어가 실행되는 시점에서 수행될 수 있다.The schedulability analysis for the network bandwidth resource can be performed at the time when the reservation and change instruction of the network bandwidth resource is executed.
자원 관리 모듈(230)은 새롭게 예약되는 자원의 보장 가능성을 판단하기 위해 시스템의 최대 가용 네트워크 대역폭 자원 과 예약된 네트워크 대역폭 자원의 총합에 대해 수학식 1을 만족하는지 판단할 수 있다.The
자원 관리 모듈(230)는 네트워크 대역폭 자원 예약 요청이 스케줄링 가능성 분석을 통과하면 디폴트 큐의 네트워크 대역폭 자원 제한을 수학식 2와 같이 설정할 수 있다.The
네트워크 자원 모니터(220)는 자원 관리 장치(10)를 통해 네트워크 대역폭 자원을 예약한 프로세스의 리스트를 관리하며 주기적으로 프로세스 리스트를 탐색하여 비실시간 네트워크 흐름의 네트워크 대역폭 자원 사용량을 모니터링 할 수 있다.The network resource monitor 220 manages a list of processes for reserving network bandwidth resources through the
또한, 비실시간 네트워크 흐름의 대역폭 자원 사용량이 디폴트 큐의 네트워크 대역폭 자원의 제한을 넘지 못하기 때문에 네트워크 자원 모니터(220)는 지속적인 모니터링을 통해 네트워크 자원을 예약한 프로세스의 종료나 예약 변경과 같은 이벤트가 발생하면 디폴트 큐의 대역폭 자원의 조정을 통해 비 실시간 네트워크 흐름의 네트워크 대역폭 자원 사용을 제어할 수 있다.In addition, since the bandwidth resource usage of the non-real-time network flow does not exceed the limit of the network bandwidth resource of the default queue, the network resource monitor 220 continuously monitors the event, When this happens, you can control the use of network bandwidth resources in non-real-time network flows through adjustment of the bandwidth resources of the default queue.
자원 관리 모듈(230)은 예약된 실시간 흐름 프로세스의 코어 친화도를 등록하고, 코어 친화도 정보를 기반으로 코어 별CPU 자원을 보장할 수 있다. 코어 친화도는 CPU에서 동작할 수 있는 디폴트 코어(default_core)와 특정 CPU에 지정되어 동작하는 퍼 코어(per_core) 그룹으로 분류될 수 있다.The
분류된 태스크 그룹의 초기 CPU 대역폭 자원 상한은 퍼 코어 그룹의 경우 1일 수 있고, 디폴트 코어의 경우 n(시스템 내의 총 코어 개수)으로 설정될 수 있다.The initial CPU bandwidth resource cap for the classified task group may be 1 for a percore group and may be set to n (total number of cores in the system) for a default core.
각 그룹은 실시간 흐름이 동작하는 넷(net) 하부 그룹과 실시간 흐름을 제외한 프로세스가 동작하는 디폴트(default) 하부 그룹으로 구성된다. 이때, 디폴트 하부그룹의 CPU 대역폭은 자원 최대 값(부모 그룹의 CPU 대역폭)으로 설정될 수 있다. 설정 값은 최대 가용 CPU 대역폭 자원 을 나타낼 수 있다.Each group consists of a net subgroup in which real-time flows operate and a default subgroup in which processes except real-time flows operate. At this time, the CPU bandwidth of the default sub group can be set to the resource maximum value (CPU bandwidth of the parent group). The setting is the maximum available CPU bandwidth resource Lt; / RTI >
CPU 대역폭 스케줄링 가능성 분석기(237)는 실시간 흐름 프로세스가 네트워크 대역폭 자원을 예약하면 CPU 대역폭 자원에 대한 스케줄링 가능성을 분석할 수 있다. 이 때, 스케줄링 가능성 분석은 실시간 네트워크 흐름의 수학식 3을 만족하여 최대 가용 CPU 대역폭 자원을 넘지 않도록 제한될 수 있다.The CPU
스케줄링 가능성 분석을 통과한 CPU 대역폭 자원 예약 요청은 cgroup(240)의 각 CPU별 태스크 그룹의 넷 하부 그룹에 적용될 수 있다. 또한, CPU 대역폭 스케줄링 가능성 분석기(237)는 CPU 대역폭 자원의 제한을 수학식 4와 같이 설정할 수 있다.The CPU bandwidth resource reservation requests that have passed the schedulability analysis can be applied to the net subgroups of the task groups of each CPU of the
디폴트 하부 그룹의 프로세스는 cgroup(240)의 대역폭 자원 관리 방식에 따라 대역폭 이상의 자원 사용이 제한될 수 있다. 이러한 제한을 통해, 자원 관리 장치(10)는 최대 가용 대역폭 자원 내에서 자원을 예약하며, 예약된 CPU 자원에 대한 원활한 제공을 보장할 수 있다.The processes of the default sub group may be limited in resources usage over bandwidth depending on the bandwidth resource management method of the
도 3은 네트워크 부하에 대한 자원 보장성 검증 실험 결과의 예를 나타낸다.3 shows an example of the result of the resource protection verification test for the network load.
도 3을 참조하면, 자원 관리 장치(10)의 성능이 실험을 통해 검증될 수 있다. 실험환경은 다수의 클라이언트가 하나의 서버에 동시에 업로드를 시도하는 상황을 가정하고, 네트워크 대역폭 자원을 예약한 실시간 흐름의 네트워크 대역폭 측정을 통해 자원 보장성이 확인될 수 있다.Referring to FIG. 3, the performance of the
상세한 실험의 구성은 표 2와 같이 나타낼 수 있다.The composition of the detailed experiment is shown in Table 2.
w/guaranteed net : An environment with Network Bandwidth Guarantee Technique.
w/guarantted net, cpu : An environment with network bandwidth guarantee method considering CPU and network load.baseline: Default Linux environment without reserved bandwidth resources.w / tc: An environment with Traffic controller's network bandwidth resource management.
w / guaranteed net: An environment with Network Bandwidth Guarantee Technique.
w / guarantted net, cpu: An environment with network bandwidth guarantee method considering CPU and network load.
Manipulation variable : Increase background workload by one (0 to 9).Network bandwidth resource reservation: 20 Gbit / sec
Manipulation variable: Increase background workload by one (0 to 9).
실험에서 각각 동일한 하드웨어 환경에서 네트워크와 CPU부하 증가에 따른 실시간 흐름의 네트워크 I/O 대역폭 사용량이 측정되었으며, 서로 다른 4가지 자원관리 방식에 대한 성능이 비교될 수 있다.Experimental results show that the network I / O bandwidth usage in real - time flow is measured by network and CPU load in the same hardware environment, and the performance of four different resource management methods can be compared.
자원관리 방식은 각각 1)리눅스의 기본환경(baseline), 2) tc(Traffic Controller)를 통해 네트워크 자원을 예약(w/tc), 3) 자원 관리 장치(10)의 네트워크 I/O 대역폭 보장 기술을 적용(w/guaranteed net), 4) 자원 관리 장치(10)의 CPU 자원과 네트워크 자원을 고려한 네트워크 I/O 대역폭의 보장(w/guaranteed net, cpu)으로 구분될 수 있다.The resource management method includes: 1) baseline of Linux; 2) reservation of network resources (w / tc) through tc (Traffic Controller); 3) network I / O bandwidth guarantee technique of resource management device 10 (W / guaranteed net), 4) guarantee of network I / O bandwidth (w / guaranteed net, cpu) considering CPU resources and network resources of the
실험환경 구성은 마이크로 벤치마크 도구인 iperf를 사용될 수 있고, 다수의 클라이언트가 하나의 서버에 단방향 통신을 수행한 결과가 측정될 수 있다.Experimental environment configuration can be used iperf, a micro benchmark tool, and the result of multiple clients performing unidirectional communication with one server can be measured.
첫 번째 실험은 네트워크 대역폭의 부하가 점차 증가할 때 실시간 흐름의 네트워크 대역폭 보장을 확인하기 위한 실험일 수 있다. 베이스라인(baseline)을 제외한 세 그래프는 4개의 실시간 흐름에 해당하는 클라이언트에 각각 10Gbps, 5Gbps, 2.5Gbps, 2.5Gbps의 대역폭을 예약하고, 4개의 클라이언트가 iperf 벤치마크를 통해 사용한 네트워크 대역폭의 합을 측정한 것일 수 있다.The first experiment can be an experiment to confirm network bandwidth guarantee of real-time flow as the load of network bandwidth increases gradually. Three graphs, excluding the baseline, are used to reserve bandwidths of 10 Gbps, 5 Gbps, 2.5 Gbps, and 2.5 Gbps, respectively, for clients in four real-time flows, and the sum of the network bandwidth used by four clients using the iperf benchmark It may be measured.
백그라운드 클라이언트 증가에 따른 CPU 자원의 영향을 최소화하기 위해 모든 클라이언트가 디폴트 코어(default_core) 그룹에서 관리될 수 있다. 실험은 백그라운드 클라이언트를 0부터 10까지 하나씩 증가시키며 네트워크 대역폭을 예약한 클라이언트의 네트워크 대역폭을 측정하여 수행될 수 있고, 6분간의 측정결과에 대한 평균값을 각각 측정하고 각각의 평균 값들이 합산될 수 있다.To minimize the impact of CPU resources on background client growth, all clients can be managed in the default_core group. The experiment can be performed by measuring the network bandwidth of the client that reserved the network bandwidth by incrementing the background client from 0 to 10 one by one, measuring the average value for the measurement result of 6 minutes each, and the respective average values can be summed .
도 3의 예시에서, 그래프의 x축은 백그라운드 클라이언트의 개수를 나타내며, 그래프의 y축은 iperf 벤치마크의 네트워크 대역폭의 합을 나타낼 수 있다. 대역폭 자원 예약을 하지 않는 베이스라인 그래프의 경우 백그라운드 클라이언트가 증가함에 따라 대역폭이 반비례하여 감소하는 것을 확인할 수 있다. In the example of FIG. 3, the x-axis of the graph represents the number of background clients and the y-axis of the graph may represent the sum of the network bandwidth of the iperf benchmark. In the case of a baseline graph without bandwidth resource reservation, it can be seen that the bandwidth decreases in inverse proportion as the number of background clients increases.
w/tc 그래프에서는 네트워크 부하가 증가함에 따라 베이스라인과 비교하여 높은 대역폭을 사용하나, 예약한 자원만큼의 대역폭을 보장하지는 못하는 것을 확인할 수 있다. 또한, w/guaranteed net 그래프와 w/guaranteed net, cpu 그래프를 통해 자원 관리 장치(10)를 사용했을 때 예약된 네트워크 대역폭에 대한 자원보장을 확인할 수 있다.In the w / tc graph, as the network load increases, it is possible to confirm that the bandwidth is not as high as the reserved resource, although the bandwidth is used in comparison with the baseline. In addition, the resource guarantee for the reserved network bandwidth can be confirmed by using the
그래프에서 tc만을 사용하여 네트워크 자원을 관리하는 경우 최대 42.1%의 성능 하락을 보일 수 있다. 또한, 이러한 성능 하락은 네트워크 대역폭 부하가 증가함에 따라 더 큰 차이를 보일 수 있다. 실험 결과를 통해 네트워크 I/O 대역폭 관리도구의 네트워크 부하에 대한 자원보장성을 확인할 수 있다.If you use only tc in the graph to manage network resources, you can see a performance decrease of up to 42.1%. In addition, this performance degradation may show larger differences as the network bandwidth load increases. Experimental results show that the network I / O bandwidth management tool is able to confirm resource protection against network load.
도 4는 CPU 부하에 대한 자원 보장성 검증 실험 결과의 예를 나타낸다.FIG. 4 shows an example of the results of the resource protection verification test for the CPU load.
도 4를 참조하면, CPU 부하에 대한 보장성 검증 실험은 디폴트 코어그룹에서 모든 클라이언트를 관리하던 기존 실험과 대비하여 대역폭 자원을 예약한 클라이언트와 백그라운드 클라이언트 간의 CPU 자원 경쟁을 최대화하기 위해 모든 클라이언트는 하나의 코어에서 동작하도록 구성될 수 있다.Referring to FIG. 4, in order to maximize the CPU resource competition between a client reserving a bandwidth resource and a background client in comparison with an existing experiment in which all clients are managed in the default core group, Core. ≪ / RTI >
또한, CPU 자원 관리를 위해 경험적인 방식을 사용하여 실험 환경에서 20Gbps의 대역폭을 보장할 수 있는 CPU 자원 사용량이 36.2%임을 확인하였고, 실험환경에서 최대 40%의 CPU 자원을 보장할 수 있도록 CPU 자원이 예약될 수 있다. 이외의 환경 구성은 도 3의 실험과 동일할 수 있다. 도 4의 예시는 CPU 부하에 대한 자원 보장성 검증 실험 결과를 나타낼 수 있다.We also confirmed that 36.2% of the CPU resources are used to guarantee 20Gbps of bandwidth in the experimental environment by using an experimental method for CPU resource management. In order to guarantee maximum 40% CPU resources in the experimental environment, CPU resources Can be reserved. The other configuration of the environment may be the same as the experiment of Fig. The example of FIG. 4 can show the results of the resource protection verification test for the CPU load.
도 4에서 베이스라인 그래프와 w/tc 그래프의 경우 도 3의 결과와 유사한 추세를 나타낼 수 있다. 또한, 자원 관리 장치(10)를 이용한 w/guaranteed net의 실험결과에서 다른 실험결과와 비교하여 최대 62.5%로 큰 폭의 성능 감소가 발생하는 것을 확인할 수 있다. 반면 자원 관리 장치(10)를 이용한 w/guaranteed net, cpu의 실험 결과는 통해 예약한 만큼의 네트워크 대역폭을 보장하는 것을 확인할 수 있다.In FIG. 4, the baseline graph and the w / tc graph show a trend similar to that of FIG. Also, it can be seen that the performance of the w / guaranteed net using the
도 5는 부하가 가장 큰 구간의 흐름 별 대역폭 구성의 예를 나타낸다.Fig. 5 shows an example of bandwidth-specific bandwidth configuration of the load with the largest load.
도 5를 참조하면, 도 5의 예시는 CPU 부하가 가장 크게 작용하는 10개의 백그라운드 클라이언트가 동작하는 환경의 실험결과를 흐름 별로 나타낸 결과이며, 베이스라인을 제외한 3가지 자원 관리 방식에 대해 흐름별 네트워크 대역폭 사용량을 나타낼 수 있다.5, the example of FIG. 5 is a result of the experiment results of an environment in which 10 background clients that operate with the greatest CPU load are operated in a flow-by-flow basis. For the three resource management methods except for the base line, It can indicate bandwidth usage.
도 5의 10Gbps 흐름에서 이상적인 경우와 비교하여 가장 큰 차이가 나는 것을 통해 큰 네트워크 대역폭을 예약한 클라이언트일수록 CPU 부하에 의한 영향을 크게 받는 것을 확인할 수 있다.In the 10Gbps flow of FIG. 5, the largest difference is seen in comparison with the ideal case, and it can be confirmed that the client that reserves a large network bandwidth is greatly affected by the CPU load.
또한, w/guaranteed net, cpu 그래프의 측정 결과를 통해 각 흐름의 네트워크 대역폭이 보장됨을 확인할 수 있다. 따라서 올바른 네트워크 I/O 대역폭 보장을 위해 네트워크 대역폭에 대한 보장 외에도 네트워크 동작을 수행하는 프로세스의 CPU 자원에 대한 보장 역시 고려되어야 함을 확인할 수 있다.Also, it can be confirmed that the network bandwidth of each flow is guaranteed through the measurement result of w / guaranteed net and cpu graph. Therefore, in order to guarantee the correct network I / O bandwidth, it is necessary to consider not only the guarantee on the network bandwidth but also the guarantee of the CPU resource of the process of performing the network operation.
도 6은 도 1에 도시된 자원 관리 장치의 동작의 순서도를 나타낸다.FIG. 6 shows a flowchart of the operation of the resource management apparatus shown in FIG. 1. FIG.
도 6을 참조하면, 자원 관리 장치(10)는 네트워크 대역폭 자원에 대한 예약 요청을 수신할 수 있다(610).Referring to FIG. 6, the
자원 관리 장치(10)는 수신한 예약 요청에 기초하여 네트워크 대역폭 자원에 대한 스케줄링 가능성을 판단할 수 있다(630). 구체적으로, 자원 관리 장치(10)는 예약된 네트워크 대역폭 자원의 합을 계산할 수 있고, 최대 가용 네트워크 대역폭 자원과 예약된 네트워크 대역폭 자원의 합을 비교하여 스케줄링 가능성을 판단할 수 있다.The
자원 관리 장치(10)는 네트워크 대역폭 자원에 대한 스케줄링 가능성에 기초하여 네트워크 대역폭 자원을 예약할 수 있다(650).The
자원 관리 장치(10)는 예약된 네트워크 대역폭 자원에 기초하여 CPU 대역폭 자원에 대한 스케줄링 가능성을 판단할 수 있다(670). 구체적으로, 자원 관리 장치(10)는 단위 네트워크 대역폭 당 필요 CPU 대역폭을 계산할 수 있고, 예약된 네트워크 대역폭 자원의 합 및 단위 네트워크 대역폭 당 필요 CPU 대역폭의 곱과 최대 가용 CPU 대역폭 자원을 비교하여 스케줄링 가능성을 판단할 수 있다.The
자원 관리 장치(10)는 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 CPU 대역폭 자원을 예약할 수 있다(690).The
상술한 동작을 통해, 자원 관리 장치(10)는 종래의 자원 관리 방식과 달리 네트워크 I/O대역폭 보장을 위해 다른 태스크로부터의 네트워크 및 CPU 대역폭 자원에 대한 간섭을 방지할 수 있다. 따라서, 자원 관리 장치(10)는 예약된 자원에 대해 시스템 자원 상황의 변화에도 안정적으로 네트워크 I/O 서비스를 제공할 수 있다.Through the above operation, the
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. Program instructions to be recorded on the medium may be those specially designed and constructed for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various technical modifications and variations may be applied to those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
Claims (16)
상기 예약 요청에 기초하여 상기 네트워크 대역폭 자원에 대한 스케줄링 가능성을 판단하는 단계;
상기 네트워크 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 네트워크 대역폭 자원을 예약하는 단계;
예약된 네트워크 대역폭 자원에 기초하여 CPU(central processing unit) 대역폭 자원에 대한 스케줄링 가능성을 판단하는 단계; 및
상기 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 CPU 대역폭 자원을 예약하는 단계
를 포함하는 자원 관리 방법.
Receiving a reservation request for a network bandwidth resource;
Determining schedulability for the network bandwidth resource based on the reservation request;
Reserving the network bandwidth resource based on schedulability for the network bandwidth resource;
Determining schedulability for a central processing unit (CPU) bandwidth resource based on a reserved network bandwidth resource; And
Reserving the CPU bandwidth resource based on schedulability for the CPU bandwidth resource
The resource management method comprising:
상기 네트워크 대역폭 자원에 대한 스케줄링 가능성을 판단하는 단계는,
예약된 네트워크 대역폭 자원의 합을 계산하는 단계; 및
최대 가용 네트워크 대역폭 자원과 상기 예약된 네트워크 대역폭 자원의 합을 비교하여 스케줄링 가능성을 판단하는 단계
를 포함하는 자원 관리 방법.
The method according to claim 1,
Wherein determining the schedulability for the network bandwidth resource comprises:
Calculating a sum of reserved network bandwidth resources; And
Comparing the maximum available network bandwidth resource with the sum of the reserved network bandwidth resources to determine schedulability
The resource management method comprising:
상기 네트워크 대역폭 자원을 예약하는 단계 이후에,
상기 최대 가용 네트워크 대역폭 자원에서 상기 예약된 네트워크 대역폭 자원의 합을 뺀 값으로 상기 네트워크 대역폭 자원의 제한을 설정하는 단계
를 더 포함하는 자원 관리 방법.
3. The method of claim 2,
After the step of reserving the network bandwidth resource,
Setting a limit of the network bandwidth resource to a value obtained by subtracting the sum of the reserved network bandwidth resources from the maximum available network bandwidth resource
Further comprising the steps of:
상기 CPU 대역폭 자원에 대한 스케줄링 가능성을 판단하는 단계는,
단위 네트워크 대역폭 당 필요 CPU 대역폭 자원을 계산하는 단계; 및
상기 합 및 상기 단위 네트워크 대역폭 당 필요 CPU 대역폭 자원의 곱과 최대 가용 CPU 대역폭 자원을 비교하여 스케줄링 가능성을 판단하는 단계
를 포함하는 자원 관리 방법.
3. The method of claim 2,
Wherein determining the schedulability for the CPU bandwidth resource comprises:
Calculating a required CPU bandwidth resource per unit network bandwidth; And
Determining the schedulability by comparing the sum of the sum of the required CPU bandwidth resources per unit network bandwidth and the maximum available CPU bandwidth resource
The resource management method comprising:
상기 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 CPU 대역폭 자원을 예약하는 단계 이후에,
상기 최대 가용 CPU 대역폭 자원에서 상기 곱을 뺀 값으로 상기 CPU 대역폭 자원의 제한을 설정하는 단계
를 더 포함하는 자원 관리 방법.
5. The method of claim 4,
After the step of reserving the CPU bandwidth resource based on schedulability for the CPU bandwidth resource,
Setting a limit of the CPU bandwidth resource to a value obtained by subtracting the product from the maximum available CPU bandwidth resource
Further comprising the steps of:
상기 네트워크 대역폭 자원의 사용량을 모니터링하는 단계
를 더 포함하는 자원 관리 방법.
The method according to claim 1,
Monitoring the usage of the network bandwidth resource
Further comprising the steps of:
상기 모니터링하는 단계는,
상기 네트워크 대역폭 자원의 디폴트 큐(default queue)를 생성하는 단계; 및
대역폭이 예약되지 않은 비실시간 네트워크 흐름을 상기 디폴트 큐로 관리하는 단계
를 포함하는 자원 관리 방법.
The method according to claim 6,
Wherein the monitoring comprises:
Generating a default queue for the network bandwidth resource; And
Managing non-real-time network flows that are not reserved for bandwidth with the default queue
The resource management method comprising:
상기 모니터링하는 단계는,
상기 네트워크 대역폭 자원을 예약한 프로세스의 종료 또는 변경이 발생한 경우 상기 디폴트 큐의 네트워크 대역폭을 조절하는 단계
를 더 포함하는 자원 관리 방법.
8. The method of claim 7,
Wherein the monitoring comprises:
Adjusting a network bandwidth of the default queue when an end or a change of a process for reserving the network bandwidth resource occurs,
Further comprising the steps of:
상기 예약 요청에 기초하여 네트워크 대역폭 자원에 대한 스케줄링 가능성을 판단하고, 상기 네트워크 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 네트워크 대역폭 자원을 예약하고, 예약된 네트워크 대역폭 자원에 기초하여 CPU(central processing unit) 대역폭 자원에 대한 스케줄링 가능성을 판단하고, 상기 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 CPU 대역폭 자원을 예약하는 프로세서
를 포함하는 하는 자원 관리 장치.
A receiver for receiving a reservation request for a network bandwidth resource; And
Determining a schedulability for a network bandwidth resource based on the reservation request, reserving the network bandwidth resource based on schedulability for the network bandwidth resource, and determining a central processing unit (CPU) based on the reserved network bandwidth resource, A processor for determining the schedulability for a bandwidth resource and reserving the CPU bandwidth resource based on schedulability for the CPU bandwidth resource,
The resource management apparatus comprising:
상기 프로세서는,
예약된 네트워크 대역폭 자원의 합을 계산하고, 최대 가용 네트워크 대역폭 자원과 상기 예약된 네트워크 대역폭 자원의 합을 비교하여 스케줄링 가능성을 판단하는
자원 관리 장치.
10. The method of claim 9,
The processor comprising:
Calculating a sum of the reserved network bandwidth resources, and comparing the sum of the maximum available network bandwidth resource and the reserved network bandwidth resource to determine schedulability
Resource management device.
상기 프로세서는,
상기 네트워크 대역폭 자원을 예약한 이후에,
상기 최대 가용 네트워크 대역폭 자원에서 상기 예약된 네트워크 대역폭 자원의 합을 뺀 값으로 상기 네트워크 대역폭 자원의 제한을 설정하는
자원 관리 장치.
11. The method of claim 10,
The processor comprising:
After reserving the network bandwidth resource,
Setting a limit of the network bandwidth resource to a value obtained by subtracting the sum of the reserved network bandwidth resources from the maximum available network bandwidth resource
Resource management device.
상기 프로세서는,
단위 네트워크 대역폭 당 필요 CPU 대역폭 자원을 계산하고, 상기 합 및 상기 단위 네트워크 대역폭 당 필요 CPU 대역폭 자원의 곱과 최대 가용 CPU 대역폭 자원을 비교하여 스케줄링 가능성을 판단하는
자원 관리 장치.
11. The method of claim 10,
The processor comprising:
Calculates a necessary CPU bandwidth resource per unit network bandwidth, and determines schedulability by comparing the sum of the sum of necessary CPU bandwidth resources per unit network bandwidth and the maximum available CPU bandwidth resource
Resource management device.
상기 프로세서는,
상기 CPU 대역폭 자원에 대한 스케줄링 가능성에 기초하여 상기 CPU 대역폭 자원을 예약한 이후에,
상기 최대 가용 CPU 대역폭 자원에서 상기 곱을 뺀 값으로 상기 CPU 대역폭 자원의 제한을 설정하는
자원 관리 장치.
13. The method of claim 12,
The processor comprising:
After reserving the CPU bandwidth resources based on schedulability for the CPU bandwidth resources,
Setting a limit of the CPU bandwidth resource to a value obtained by subtracting the product from the maximum available CPU bandwidth resource
Resource management device.
상기 프로세서는,
상기 네트워크 대역폭 자원의 사용량을 모니터링하는
자원 관리 장치.
10. The method of claim 9,
The processor comprising:
Monitoring the usage of the network bandwidth resource
Resource management device.
상기 프로세서는,
상기 네트워크 대역폭 자원의 디폴트 큐(default que)를 생성하고, 대역폭이 예약되지 않은 비실시간 네트워크 흐름을 상기 디폴트 큐로 관리하는
자원 관리 장치.
15. The method of claim 14,
The processor comprising:
Generates a default queue of the network bandwidth resource, and manages a non-reserved non-real-time network flow with the bandwidth as the default queue
Resource management device.
상기 프로세서는,
상기 네트워크 대역폭 자원을 예약한 프로세스의 종료 또는 변경이 발생한 경우 상기 디폴트 큐의 네트워크 대역폭을 조절하는
자원 관리 장치.16. The method of claim 15,
The processor comprising:
The network bandwidth of the default queue is adjusted when an end or a change of the process of reserving the network bandwidth resource occurs
Resource management device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180152327A KR101996768B1 (en) | 2018-11-30 | 2018-11-30 | Method and apparatus of managing resource |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180152327A KR101996768B1 (en) | 2018-11-30 | 2018-11-30 | Method and apparatus of managing resource |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101996768B1 true KR101996768B1 (en) | 2019-07-04 |
Family
ID=67259362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180152327A KR101996768B1 (en) | 2018-11-30 | 2018-11-30 | Method and apparatus of managing resource |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101996768B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150121600A (en) * | 2014-04-21 | 2015-10-29 | 삼성전자주식회사 | Apparatus for scheduling task based on hardware and method thereof |
KR101707601B1 (en) * | 2015-12-31 | 2017-02-16 | 숭실대학교산학협력단 | Virtual machine monitor and schduling method of virtual machine monitor |
-
2018
- 2018-11-30 KR KR1020180152327A patent/KR101996768B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150121600A (en) * | 2014-04-21 | 2015-10-29 | 삼성전자주식회사 | Apparatus for scheduling task based on hardware and method thereof |
KR101707601B1 (en) * | 2015-12-31 | 2017-02-16 | 숭실대학교산학협력단 | Virtual machine monitor and schduling method of virtual machine monitor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11601512B2 (en) | System and method for throttling service requests having non-uniform workloads | |
Zhu et al. | Prioritymeister: Tail latency qos for shared networked storage | |
US9712448B2 (en) | Proxy server, hierarchical network system, and distributed workload management method | |
US8670310B2 (en) | Dynamic balancing priority queue assignments for quality-of-service network flows | |
US8719297B2 (en) | System for managing data collection processes | |
US6961341B1 (en) | Adaptive bandwidth throttling for network services | |
US8953453B1 (en) | System and method for throttling service requests using work-based tokens | |
US8898674B2 (en) | Memory databus utilization management system and computer program product | |
US9007898B2 (en) | System to share network bandwidth among competing applications | |
US7467291B1 (en) | System and method for calibrating headroom margin | |
US9553810B2 (en) | Dynamic reconfiguration of network devices for outage prediction | |
US7580353B1 (en) | Method and apparatus to balance flow loads in a multipurpose networking device | |
CN106411558B (en) | Method and system for limiting data flow | |
US20160364167A1 (en) | Storage management device, storage management method, and computer-readable recording medium | |
US10560385B2 (en) | Method and system for controlling network data traffic in a hierarchical system | |
CN103248622B (en) | A kind of Online Video QoS guarantee method of automatic telescopic and system | |
Dasgupta et al. | Qosmig: Adaptive rate-controlled migration of bulk data in storage systems | |
JPH05216842A (en) | Resources managing device | |
KR101996768B1 (en) | Method and apparatus of managing resource | |
Zhang et al. | A performance comparison of adaptive and static load balancing in heterogeneous distributed systems | |
US10540341B1 (en) | System and method for dedupe aware storage quality of service | |
KR101813165B1 (en) | Adaptive control plane management method for software defined network and apparatus thereof | |
Kwok et al. | 2TL: A scheduling algorithm for meeting the latency requirements of bursty I/O streams at user-specified percentiles | |
CN111541558B (en) | SLA configuration method and device | |
EP4400968A1 (en) | Resource scheduling method and apparatus, and computer device and readable medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |