KR20130143233A - 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법 - Google Patents

태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법 Download PDF

Info

Publication number
KR20130143233A
KR20130143233A KR1020120066587A KR20120066587A KR20130143233A KR 20130143233 A KR20130143233 A KR 20130143233A KR 1020120066587 A KR1020120066587 A KR 1020120066587A KR 20120066587 A KR20120066587 A KR 20120066587A KR 20130143233 A KR20130143233 A KR 20130143233A
Authority
KR
South Korea
Prior art keywords
task
traffic
last level
level cache
size
Prior art date
Application number
KR1020120066587A
Other languages
English (en)
Other versions
KR101395699B1 (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 KR1020120066587A priority Critical patent/KR101395699B1/ko
Publication of KR20130143233A publication Critical patent/KR20130143233A/ko
Application granted granted Critical
Publication of KR101395699B1 publication Critical patent/KR101395699B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements

Abstract

본 발명의 일 실시예에 따른 태스크 분류방법은, 특정 태스크에 의해 발생하는 I/O 트래픽의 크기를 측정하는 단계; 상기 누마 시스템에 포함된 공유 라스트 레벨 캐시(LLC)의 최대 크기와 상기 I/O 트래픽의 크기를 비교하는 단계; 및 상기 비교 결과에 기초하여 상기 특정 태스크를 악성 태스크 또는 일반 태스크로 분류하는 단계를 포함하여 구성됨으로써, 간단한 알고리즘을 통해 누마 시스템 환경 하에서 어느 태스크가 캐시 오염을 일으킬 수 있는 태스크인지 정확하고 신속하게 구별해낼 수 있다.

Description

태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법{METHOD FOR CLASSIFYING TASK AND METHOD FOR IMPROVING PERFORMANCE OF SHARED LAST LEVEL CACHE}
본 발명은 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법에 관한 것이고, 보다 구체적으로 누마(NUMA) 시스템에서의 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법에 관한 것이다.
NUMA(Non-Uniform Memory Access; 이하 '누마'로 지칭함) 시스템은 여러 개의 작업을 병렬로 처리하는 다중 처리 시스템(Multiprocessing system)의 일종으로서, 다수의 누마 노드(Node)를 포함하고, 특정 누마 노드에 있는 CPU(중앙처리장치)는 기본적으로 그 특정 누마 노드에 독립적으로 있는 메모리에 접근하도록 하여 성능 충돌 문제를 해결하는 시스템이다.
이러한 누마 시스템 하에 있는 각 CPU는 대체적으로 독립적인 L1, L2 캐시 메모리와, 공유 상태에 있는 LLC(Last Level Cache; 이하 '라스트 레벨 캐시'로 지칭함) 메모리를 가지고 있는 형태의 아키텍처로 이루어진다.
누마 시스템의 전체 성능을 향상시키기 위해서는 누마 시스템에 포함된 공유 라스트 레벨 캐시의 캐시 오염(Cache Pollution) 문제에 대한 해결이 필요하다. 캐시 오염이란 기존의 캐시 라인의 데이터가 새로운 데이터로 교체되어 캐시의 재사용을 방해하는 것을 의미한다. 즉, 공유 라스트 레벨 캐시의 재사용 확률을 얼마나 높일 수 있는가와, 누마 시스템의 전체적인 성능 간에는 매우 밀접한 관계가 있다.
일정 컴퓨팅 자원을 차지하여 특정 프로그램을 수행하는 태스크(Task) 중 멀티미디어 동영상, 웹 상에서의 다운로드, 파일에 대한 처리 등을 위한 I/O 집중 태스크는 캐시의 재사용 확률이 낮아 심각한 캐시 오염 문제를 일으킬 수 있다.
특히, 공유 라스트 레벨 캐시를 포함하는 누마 시스템 환경에서 이러한 I/O 집중 태스크를 메모리 집중 태스크와 같은 다른 태스크와 함께 수행시키면, 캐시 오염으로 인해 메모리 집중 태스크의 캐시 효율성까지도 악화시키는 문제점이 생긴다.
따라서, 누마 시스템 등과 같은 공유 캐시를 가지고 있는 시스템 상에서 태스크를 적절히 분류하여 캐시 오염을 줄일 수 있는 스케줄링 방법에 대한 연구가 활발하게 진행되고 있다.
기존 스케줄링 방법 중 하나는 동물 분류법으로서, 각각의 태스크가 캐시를 공유하는 코어쌍(Core Pair)에서 함께 수행되는 경우, 동시에 수행되는 태스크 간에 서로 영향을 미치는 정도에 대해 캐시 접근성과 캐시 미스율을 기준으로 파악한다. 태스크 간에 서로 영향을 미치는 정도를 이용하여 각각의 태스크를 네 종류 중 어느 하나로 분류하는 방식이다.
이밖에, IPC(Instruction Per Cycle) 또는 스택 거리차(Stack Distance) 등을 기준으로 각각의 태스크를 분류하는 스케줄링 방법도 소개되고 있다.
또한, 기존 스케줄링 방법의 하나로서, 일본공개특허 제 2011-059777호(발명의 명칭: 태스크 스케줄링 방법 및 멀티코어 시스템)에서는 캐시 메모리의 이용 효율이 저하되지 않을 범위에서 가능한 한 많은 태스크를 실행시키는 스케줄링 방법을 개시하고 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 일부 실시예는 각각의 태스크를 기존 방식과 차별화되는 분류 기준에 의해 분류하여 캐시 오염을 방지할 수 있는 태스크 분류방법을 제공하는 데에 그 목적이 있다.
또한, 본 발명의 일부 실시예는 누마 시스템의 일정 누마 노드를 활용해서 캐시 오염을 발생시킬 수 있는 태스크를 별도로 격리 처리함으로써, 공유 캐시뿐만 아니라 전체 누마 시스템의 성능을 향상시키는 방법을 제공하는 데에 그 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면 (일 실시예)에 따른 누마(NUMA) 시스템에서의 태스크 분류방법은, 특정 태스크에 의해 발생하는 I/O 트래픽의 크기를 측정하는 단계; 상기 누마 시스템에 포함된 공유 라스트 레벨 캐시(LLC)의 최대 크기와 상기 I/O 트래픽의 크기를 비교하는 단계; 및 상기 비교 결과에 기초하여 상기 특정 태스크를 악성 태스크 또는 일반 태스크로 분류하는 단계를 포함하여 구성된다.
또한, 본 발명의 제 2 측면 (다른 실시예)에 따른 누마(NUMA) 시스템에서의 태스크 분류방법을 이용한 공유 라스트 레벨 캐시(LLC)의 성능 향상방법은, 상기 누마 시스템에 포함된 공유 라스트 레벨 캐시(LLC)의 최대 크기와 특정 태스크에 의해 발생하는 I/O 트래픽의 크기를 비교하는 단계; 상기 비교 결과에 기초하여 상기 특정 태스크를 악성 태스크 또는 일반 태스크로 분류하는 단계; 상기 특정 태스크가 악성 태스크인 경우, 상기 특정 태스크의 플래그를 온(ON) 상태로 변경하는 단계; 및 상기 플래그가 온(ON) 상태에 있는 태스크를 상기 누마 시스템의 복수의 누마 노드 중 상기 악성 태스크를 위해 미리 설정된 누마 노드로 이동시키는 단계를 포함하여 구성될 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나인 누마 시스템에서의 태스크 분류방법에 의하면, 누마 시스템에 포함된 공유 라스트 레벨 캐시의 최대 크기와 특정 태스크에 의해 발생하는 I/O 트래픽의 크기를 비교하여 두 가지 종류 중 어느 하나의 태스크로 특정 태스크를 분류함으로써, 보다 간단한 알고리즘을 통해 정확하고 신속하게 캐시 오염을 일으킬 수 있는 태스크를 구별해낼 수 있다는 장점이 있다.
또한, 전술한 본 발명의 과제 해결 수단 중 어느 하나인 및 태스크 분류방법을 이용한 공유 라스트 레벨 캐시의 성능 향상방법에 의하면, 악성 태스크로 분류된 특정 태스크를 누마 시스템의 특정 누마 노드로 이동시켜 격리시킴으로써, 공유 캐시의 재사용 확률 및 전체적인 누마 시스템의 성능을 향상시킬 수 있다는 장점이 있다.
도 1 및 도 2는 본 발명에서 특정 태스크를 두 가지 종류 중 어느 하나의 태스크로 분류하는 이유를 설명하기 위한 그래프,
도 3은 본 발명의 일 실시예에 따른 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법을 위한 누마 시스템에 대한 구조를 간략하게 도시한 블록도,
도 4는 본 발명의 일 실시예에 따른 태스크 분류방법을 설명하기 위한 순서도,
도 5는 본 발명의 다른 실시예에 따른 태스크 분류방법을 설명하기 위한 순서도,
도 6은 본 발명의 또 다른 실시예에 따른 태스크 분류방법을 설명하기 위한 순서도,
도 7은 도 4 내지 도 6에서 공유 라스트 레벨 캐시의 최대 크기와 I/O 트래픽의 크기를 비교하는 과정에 대해 도시한 도면,
도 8은 이동 평균 값을 계산하기 위한 가중치 및 캐시 미스율 간의 관계를 도시한 그래프,
도 9는 본 발명의 일 실시예에 따른 태스크 분류방법을 이용한 공유 라스트 레벨 캐시의 성능 향상방법을 설명하기 위한 순서도,
도 10은 본 발명의 다른 실시예에 따른 태스크 분류방법을 이용한 공유 라스트 레벨 캐시의 성능 향상방법을 설명하기 위한 순서도,
도 11 내지 도 13은 평가 실험을 수행하여 공유 라스트 레벨 캐시의 성능 향상 정도를 판단하기 위한 그래프이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명의 일 실시예에 따른 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법은, 기존의 방식과는 다른 새로운 분류 기준에 의해 각 태스크를 두 가지 종류 중 어느 하나의 태스크로 분류하는 특징을 공통적으로 가지고, 이러한 태스크 분류를 통해 캐시 오염을 줄여 전체적인 시스템 성능을 향상시킬 수 있다.
본 발명에 대하여 본격적으로 설명하기에 앞서서, 도 1 및 도 2를 참고하여 본 발명에서 특정 태스크를 두 가지 종류 중 어느 하나의 태스크로 분류하는 이유에 대하여 설명하기로 한다.
태스크(Task) 중 멀티미디어 동영상, 웹 상에서의 다운로드, 파일에 대한 처리 등을 위한 I/O 집중 태스크는 일반적으로 오랜 시간 동안 I/O 트래픽을 발생시키고, 이를 빅 I/O 태스크(Big I/O task)라고 부른다.
도 1는 일 예에 따른 메모리 집중 태스크를 포함하는 워크로드(Merge)와 I/O 집중 태스크를 포함하는 워크로드(PostMark 혹은 Grep)를 하나의 노드에서 함께 수행하는 경우 및 다른 노드에서 별도로 수행하는 경우, 공유 라스트 레벨 캐시에서의 캐시 미스율을 비교한 결과이다. 각 노드 별로 다른 공유 캐시를 활용하기 때문에, 도 1의 그래프에서 도시된 것처럼 양 태스크를 별개의 노드에서 수행하는 것이 월등하게 낮은 캐시 미스율을 나타낸다는 것을 알 수 있다. 이를 통해 I/O 집중 태스크와 같은 캐시 오염을 일으킬 수 있는 태스크는 별도로 분류하여 처리하는 것이 캐시 활용 효율을 높일 수 있다는 것을 알 수 있다.
도 2는 일 예에 따른 I/O 집중 태스크를 포함하는 워크로드(Tar) 2개를 하나의 노드에서 함께 수행하는 경우 및 다른 노드에서 별도로 수행하는 경우, 공유 라스트 레벨 캐시에서의 캐시 미스율을 비교한 결과이다. 도 2의 그래프에 도시된 것처럼 I/O 집중 태스크를 서로 분류시키는 것과는 상관없이 비슷한 캐시 미스율을 나타낸다는 것을 알 수 있다. 또한, 양 태스크를 다른 노드에서 별도로 수행하는 경우, 여전히 상당한 캐시 미스율을 보인다는 것을 알 수 있다. 이를 통해 I/O 집중 태스크와 같은 캐시 오염을 일으킬 수 있는 태스크에 대해 세밀하게 분류한다 할지라도 캐시 미스율에는 큰 영향을 주지 못한다는 것을 알 수 있다.
따라서, 본 발명에서는 특정 태스크가 두 가지 종류 중 어떤 종류의 태스크에 해당하는지를 판단하는 간단한 알고리즘을 적용하여, 캐시 오염을 일으킬 수 있는 태스크가 어떤 태스크인지 정확하고 신속하게 구별할 수 있다.
도 3은 본 발명의 일 실시예에 따른 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법을 위한 누마 시스템에 대한 구조를 간략하게 도시한 블록도이다.
전체 누마 시스템(100)은 소프트웨어의 기반이 되는 커널(Kernel, 10)을 통해 구현될 수 있고, 복수의 누마 노드(20, 30) 및 스토리지(40), 물리적 메인 메모리(50), 네트워크(60) 등과 같은 I/O 장치들을 포함한다. 각 누마 노드(20, 30)는 하나 이상의 코어(Core)를 갖는 CPU 및 공유 라스트 레벨 캐시를 포함한다. 누마 노드(20)에 있는 C0, C2, C4, C6는 기본적으로 그 누마 노드(20) 내 메모리에 접근하여 각종 연산 처리를 수행한다. 이는 다른 누마 노드(30)에 있는 메모리에 접근하는 속도보다 그 누마 노드(20)에 있는 메모리에 접근하는 속도가 더 빠르기 때문이다.
본 발명에서 커널(10)에 의해 제공되는 악성 인식 스케줄러(11)는 태스크에 의해 발생하는 I/O 트래픽을 감시(12)하여, CPU를 통해 수행되는 특정 태스크가 일반 태스크(A)이면 그대로 두고, 악성 태스크(B)이면 도 3의 화살표 방향처럼 별도의 누마 노드(30)로 이동시킨다.
이하, 본 발명의 각 실시예에 따른 태스크 분류방법에 대해 도 4 내지 도 6을 참고하여 상세히 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른 태스크 분류방법을 설명하기 위한 순서도이다.
우선 본 발명의 일 실시예에 따른 태스크 분류가 시작되면, 특정 태스크에 의해 발생하는 I/O 트래픽의 크기를 측정한다(S410).
이어서, 누마 시스템에 포함된 공유 라스트 레벨 캐시의 최대 크기와 측정한 I/O 트래픽의 크기를 서로 비교한다(S420). 도 7처럼 공유 라스트 레벨 캐시의 최대 크기와 I/O 트래픽의 크기를 비교한다.
이후에 비교 결과에 기초하여 특정 태스크를 악성 태스크 또는 일반 태스크로 분류하는 과정이 이루어진다(S430). 즉, 공유 라스트 레벨 캐시를 가진 복수의 누마 노드가 존재하는 누마 시스템 환경 하에서 태스크에 의해 발생하는 I/O 트래픽의 크기 및 공유 캐시의 최대 크기를 태스크의 분류 기준으로 삼아, 각 태스크를 분류한다는 특징이 있다.
덧붙여, 이와 같은 I/O 트래픽의 크기 측정, 크기 상호 비교 및 특정 태스크의 종류 결정을 포함하는 일련의 과정은 상술한 악성 인식 스케줄러(11)에 의해 이루어질 수 있다.
도 5는 본 발명의 다른 실시예에 따른 태스크 분류방법을 설명하기 위한 순서도이다.
우선 본 발명의 다른 실시예에 따른 태스크 분류가 시작되면, 특정 태스크의 I/O 로그 파일을 기록하는 내부 커널 함수를 이용하여 I/O 트래픽의 크기를 실시간으로 측정한다(S510).
대표적으로, 리눅스 운영체제는 커널에서 각종 장치의 I/O 트래픽이 발생하면, 해당 태스크마다 I/O 로그 파일을 '/proc' 디렉토리에 기록해둔다. I/O 트래픽은 'read()', 'write()', 'send()', 'receive()' 등과 같은 시스템 콜에 의해 발생할 수 있고, 이러한 I/O 트래픽과 관련된 I/O 로그 파일은 'do_io_accounting()'과 같은 내부 커널 함수를 통해 '/proc/PID/io'에 기록될 수 있다.
이어서, 누마 시스템에 포함된 공유 라스트 레벨 캐시의 최대 크기와 측정한 I/O 트래픽의 크기를 서로 비교한다(S520). 도 7처럼 공유 라스트 레벨 캐시의 최대 크기와 I/O 트래픽의 크기를 비교한다.
만약 I/O 트래픽의 크기가 공유 라스트 레벨 캐시의 최대 크기보다 큰 경우라면, 특정 태스크를 악성 태스크로 구별하고(S530), 만약 I/O 트래픽의 크기가 공유 라스트 레벨 캐시의 최대 크기보다 작거나 같은 경우라면, 특정 태스크를 일반 태스크로 구별한다(S540). 즉, 공유 라스트 레벨 캐시를 가진 복수의 누마 노드가 존재하는 누마 시스템 환경 하에서 태스크에 의해 발생하는 I/O 트래픽의 크기 및 공유 캐시의 최대 크기를 태스크의 분류 기준으로 삼아, 각 태스크를 분류한다는 특징이 있다.
도 6은 본 발명의 또 다른 실시예에 따른 태스크 분류방법을 설명하기 위한 순서도이다.
우선 본 발명의 또 다른 실시예에 따른 태스크 분류가 시작되면, 미리 설정된 시간 간격을 두고 특정 태스크에 의해 발생하는 I/O 트래픽을 획득한다(S610).
이어서, 현재 I/O 트래픽 및 상술한 미리 설정된 시간 이전의 I/O 트래픽에 대하여 가변적인 가중치 α를 부여하여 이동 평균(MA; Moving Average) 값을 계산한다(S620).
예를 들어, 커널에 의해 제공되는 I/O 어카운팅제도(Accounting Scheme)을 통해, 특정 태스크의 'rchar', 'wchar' 변수를 사용하는 현재 I/O 트래픽을 주기적으로 획득할 수 있다. 아래 수학식 1을 통해 현재 I/O 트래픽을 이동 평균 값에 반영시킬 수 있다.
Figure pat00001
여기서, 가중치 α는 특정 태스크에 대한 분류와 매우 밀접한 관계를 가지는 가변적인 값으로서, 현재 측정된 I/O 트래픽을 얼마나 이동 평균에 반영시킬 것인지 결정할 수 있고, 누마 노드 간 태스크의 빈번한 이동을 방지할 수 있으며, I/O 트래픽 변동을 조절할 수 있다.
다시 말하자면, 가중치 α가 증가함에 따라 현재 I/O 트래픽이 미리 설정된 시간 이전의 I/O 트래픽보다 이동 평균 값에 더 많이 반영된다. 덧붙여, 계산된 이동 평균 값은 I/O 트래픽의 크기와 대응될 수 있는 값이다.
이후에, 누마 시스템에 포함된 공유 라스트 레벨 캐시의 최대 크기와, 측정한 I/O 트래픽의 크기 또는 이동 평균 값을 서로 비교한다(S630). 도 7처럼 공유 라스트 레벨 캐시의 최대 크기와 I/O 트래픽의 크기를 비교한다.
만약 I/O 트래픽의 크기가 공유 라스트 레벨 캐시의 최대 크기보다 큰 경우라면, 특정 태스크를 악성 태스크로 구별하고(S640), 만약 I/O 트래픽의 크기가 공유 라스트 레벨 캐시의 최대 크기보다 작거나 같은 경우라면, 특정 태스크를 일반 태스크로 구별한다(S650). 즉, 공유 라스트 레벨 캐시를 가진 복수의 누마 노드가 존재하는 누마 시스템 환경 하에서 태스크에 의해 발생하는 I/O 트래픽의 크기(또는 이동 평균 값) 및 공유 캐시의 최대 크기를 태스크의 분류 기준으로 삼아, 각 태스크를 분류한다는 특징이 있다.
도 8은 이동 평균 값을 계산하기 위한 가중치 및 캐시 미스율 간의 관계를 도시한 그래프이다.
이미 상술한 것과 같이, 가중치 α는 도 3을 참고하여 상술한 악성 인식 스케줄러(11)의 성능과 밀접한 관련을 갖는 파라미터이다. 도 8에 도시된 것처럼 가중치 α를 0.8로 부여하여 이동 평균 값을 계산한 경우, 가장 낮은 캐시 미스율을 얻을 수 있었다.
지금까지 상술한 본 발명의 각 실시예에 따른 태스크 분류방법을 이용하면, 간단한 알고리즘을 통해 누마 시스템 환경 하에서 어느 태스크가 캐시 오염을 일으킬 수 있는 태스크인지 정확하고 신속하게 구별해낼 수 있다. .
한편, 본 발명의 일 실시예에 따른 태스크 분류방법을 이용한 공유 라스트 레벨 캐시(LLC)의 성능 향상방법에 대하여 도 9를 참고하여 설명한다.
본 발명에 따른 공유 라스트 레벨 캐시(LLC)의 성능 향상방법에서는 이미 상술한 본 발명의 각 실시예에 따른 태스크 분류방법에 의해 분류된 결과를 특별한 제한없이 활용할 수 있다.
도 9는 본 발명의 일 실시예에 따른 태스크 분류방법을 이용한 공유 라스트 레벨 캐시의 성능 향상방법을 설명하기 위한 순서도이다.
우선 본 발명의 일 실시예에 따른 공유 라스트 레벨 캐시의 성능 향상방법이 시작되면, 누마 시스템에 포함된 공유 라스트 레벨 캐시의 최대 크기와 특정 태스크에 의해 발생하는 I/O 트래픽의 크기를 비교한다(S910). 도 7처럼 공유 라스트 레벨 캐시의 최대 크기와 I/O 트래픽의 크기를 비교할 수 있다.
이후에 비교 결과에 기초하여 특정 태스크를 악성 태스크 또는 일반 태스크로 분류하는 과정이 이루어진다(S920). 즉, 공유 라스트 레벨 캐시를 가진 복수의 누마 노드가 존재하는 누마 시스템 환경 하에서 태스크에 의해 발생하는 I/O 트래픽의 크기 및 공유 캐시의 최대 크기를 태스크의 분류 기준으로 삼아, 각 태스크를 분류한다는 특징이 있다.
이때, 특정 태스크가 악성 태스크로 분류되면, 특정 태스크의 플래그를 온(ON) 상태로 변경하는 과정을 수행한다(S930). 플래그를 온(ON) 상태로 변경하는 것은 각 태스크(혹은 스레드) 별로 가지고 있는 구조체 내에서 플래그와 관련된 변수 값을 변경하는 것과 대응시킬 수 있다.
이어서, 플래그가 온(ON) 상태에 있는 태스크를 누마 시스템의 복수의 누마 노드 중 악성 태스크를 위해 미리 설정된 누마 노드로 이동시키는 과정이 수행된다(S940). 도 3을 참고하면, 악성 태스크로 분류된 특정 태스크(B)의 플래그는 온(ON) 상태로 변경되어 있고, 악성 태스크를 위해 미리 설정된 누마 노드(30)로 악성 태스크(B)를 이동시킨다. 이는 복수의 누마 노드를 포함하는 누마 시스템에서 이루어지는 것이 바람직하고, 이동된 악성 태스크(B)는 격리되어 일반 태스크(A)와 별도로 처리될 수 있다.
덧붙여, 이와 같은 I/O 트래픽의 크기 측정, 크기 상호 비교, 특정 태스크의 종류 결정, 플래그 변경 및 악성 태스크 이동을 포함하는 일련의 과정은 상술한 악성 인식 스케줄러(11)에 의해 이루어질 수 있다.
도 10은 본 발명의 다른 실시예에 따른 태스크 분류방법을 이용한 공유 라스트 레벨 캐시의 성능 향상방법을 설명하기 위한 순서도이다.
우선 본 발명의 다른 실시예에 따른 공유 라스트 레벨 캐시의 성능 향상방법이 시작되면, 특정 태스크에 의해 발생하는 I/O 트래픽의 크기가 누마 시스템에 포함된 공유 라스트 레벨 캐시의 최대 크기보다 큰지, 작은지 혹은 동일한지를 판단한다(S1010). 도 7처럼 공유 라스트 레벨 캐시의 최대 크기와 I/O 트래픽의 크기를 비교할 수 있다.
만약 I/O 트래픽의 크기가 공유 라스트 레벨 캐시의 최대 크기보다 큰 경우라면, 특정 태스크를 악성 태스크로 구별하고(S1020), 만약 I/O 트래픽의 크기가 공유 라스트 레벨 캐시의 최대 크기보다 작거나 같은 경우라면, 특정 태스크를 일반 태스크로 구별한다(S1050). 즉, 공유 라스트 레벨 캐시를 가진 복수의 누마 노드가 존재하는 누마 시스템 환경 하에서 태스크에 의해 발생하는 I/O 트래픽의 크기 및 공유 캐시의 최대 크기를 태스크의 분류 기준으로 삼아, 각 태스크를 분류한다는 특징이 있다.
이때, 특정 태스크가 악성 태스크로 분류되면(S1020), 특정 태스크의 플래그를 온(ON) 상태로 변경하는 과정을 수행한다(S1030). 플래그를 온(ON) 상태로 변경하는 것은 각 태스크(혹은 스레드) 별로 가지고 있는 구조체 내에서 플래그와 관련된 변수 값을 변경하는 것과 대응시킬 수 있다.
이어서, 플래그가 온(ON) 상태에 있는 태스크를 누마 시스템의 복수의 누마 노드 중 악성 태스크를 위해 미리 설정된 누마 노드로 이동시키는 과정이 수행된다(S1040). 도 3을 참고하면, 악성 태스크로 분류된 특정 태스크(B)의 플래그는 온(ON) 상태로 변경되어 있고, 악성 태스크를 위해 미리 설정된 누마 노드(30)로 악성 태스크(B)를 이동시킨다.
또한, 특정 태스크가 일반 태스크로 분류되면(S1050), 누마 시스템이 동작하는 운영체제에 의해 제공되는 스케줄링 정책에 따라 미리 설정된 누마 노드를 제외한 누마 노드에서 플래그가 오프(OFF) 상태에 있는 태스크를 처리하는 과정을 수행한다(S1060).
도 3을 참고하면, 일반 태스크로 분류된 특정 태스크(A)의 플래그는 오프(OFF) 상태를 유지하고 있고, 미리 설정된 누마 노드(30)를 제외한 누마 노드(20)에서 일반 태스크(A)를 스케줄링 정책에 따라 처리한다.
지금까지 상술한 본 발명의 각 실시예에 따른 태스크 분류방법을 이용한 공유 라스트 레벨 캐시의 성능 향상방법을 통해, 간단한 알고리즘을 통해 누마 시스템 환경 하에서 어느 태스크가 캐시 오염을 일으킬 수 있는 태스크인지 정확하고 신속하게 구별해낼 수 있다.
또한, 악성 태스크로 분류된 특정 태스크를 누마 시스템의 특정 누마 노드로 이동시켜 격리시킴으로써, 공유 캐시의 재사용 확률 및 전체적인 누마 시스템의 성능을 향상시킬 수 있다는 장점이 있다.
이와 같은 상술한 본 발명의 각 실시예에 따른 태스크 분류방법을 이용한 공유 라스트 레벨 캐시의 성능 향상방법을 통해 얻을 수 있는 효과와 관련하여 도 11 내지 도 13을 참고하여 설명한다. 도 11 내지 도 13은 평가 실험을 수행하여 공유 라스트 레벨 캐시의 성능 향상 정도를 판단하기 위한 그래프이다.
평가 실험에 사용된 시스템은 두 개의 노드를 갖는 'Dell PowerEdge T610'이고, 아래 표 1과 같은 사양을 가지고 있다.
하드웨어 구성 사양
L1 Data Cache 4 * 32KB, 8-way
L1 Instruction Cache 4 * 32KB, 4-way
L2 Cache 4 * 256KB, 8-way
L3 shared Last Level Cache 4MB, 16-way
Memory 2GB in each node
아울러, 모든 측정은 HPC(Hardware Performance Counter)를 사용하는 리눅스 커널 기반의 성능 분석 툴인 'perf'에 의해 평가되어졌고, 총 10회 수행 결과의 평균 값을 결과 값으로 하였다.
덧붙여, 평가 실험에는 각 태스크를 포함하는 다양한 워크로드가 사용되었는데, 'gobmk'는 게임 플레이와 관련된 인공 지능 워크로드이고, 'hmmer'은 다중 순차 정렬의 통계적 모델이다. 'merge'는 메모리 집중 태스크와 관련되고, 반복적인 2-way 병합정렬 알고리즘과 함께 2MB의 행렬 사이즈를 분류한다. 'postmerge'와 'tar'는 I/O 강조 태스크와 관련된다.
도 11의 왼쪽 그래프는 'postmark'와 'gobmk', 'hmmer', 'merge'를 각각 동시에 수행시킨 결과이고, 오른쪽 그래프는 'tar'와 'gobmk', 'hmmer', 'merge'를 각각 동시에 수행시킨 결과이다. ① 내지 ⑥ 모든 결과에서 공유 라스트 레벨 캐시 미스율의 감소 정도가 나타나고, 특히 메모리 집중 태스크를 I/O 집중 태스크와 구분하여 처리한 경우 가장 높은 효과를 보인다는 것을 알 수 있다.
도 12는 ①, ④는 각 메모리 집중 워크로드를 I/O 집중 워크로드와 다른 노드에서 수행하도록 한 경우이고, ②, ⑤는 각 메모리 집중 워크로드를 I/O 집중 워크로드와 동일한 노드에서 수행하도록 한 경우이며, ③, ⑥은 본 발명이 적용된 경우이다. ③, ⑥에서 확인할 수 있는 것처럼, 'postmark'와 함께 수행되는 'hmmer'의 공유 라스트 레벨 캐시 미스율을 19.1%만큼 줄일 수 있었다. 평균적으로는, 20.7%만큼 공유 캐시 미스율을 줄일 수 있었다.
도 13은 실행 시간 감소율을 보여주는 그래프로서, 'postmark'와 'hmmer'를 함께 수행하는 경우는 1.48%만큼 실행 시간을 절약할 수 있었고, 'merge'와 'tar'를 함께 수행하는 경우는 37.6%만큼 실행 시간을 절약할 수 있었다. 평균적으로는, 0.87%만큼 공유 캐시 미스율을 줄일 수 있었다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 커널 11: 악성 인식 스케줄러
20, 30: 누마 노드 100: 누마 시스템

Claims (8)

  1. 누마(NUMA) 시스템에서의 태스크 분류방법에 있어서,
    특정 태스크에 의해 발생하는 I/O 트래픽의 크기를 측정하는 단계;
    상기 누마 시스템에 포함된 공유 라스트 레벨 캐시(LLC)의 최대 크기와 상기 I/O 트래픽의 크기를 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 특정 태스크를 악성 태스크 또는 일반 태스크로 분류하는 단계를 포함하는
    태스크 분류방법.
  2. 제 1 항에 있어서, 상기 I/O 트래픽의 크기를 측정하는 단계에서
    상기 특정 태스크의 I/O 로그 파일을 기록하는 내부 커널 함수를 이용하여 상기 I/O 트래픽의 크기를 실시간으로 측정하는
    태스크 분류방법.
  3. 제 1 항에 있어서, 상기 I/O 트래픽의 크기를 측정하는 단계는
    미리 설정된 시간 간격을 두고 상기 특정 태스크에 의해 발생하는 I/O 트래픽을 획득하는 단계; 및
    현재 I/O 트래픽 및 상기 미리 설정된 시간 이전의 I/O 트래픽에 대하여 가변적인 가중치를 부여하여 이동 평균(Moving Average) 값을 계산하는 단계를 포함하는
    태스크 분류방법.
  4. 제 3 항에 있어서, 상기 가중치가 증가함에 따라 상기 현재 I/O 트래픽이 상기 미리 설정된 시간 이전의 I/O 트래픽보다 상기 이동 평균 값에 더 많이 반영되도록 상기 가중치를 부여하는
    태스크 분류방법.
  5. 제 1 항에 있어서, 상기 특정 태스크를 분류하는 단계에서
    상기 I/O 트래픽의 크기가 상기 공유 라스트 레벨 캐시의 최대 크기보다 큰 경우 상기 특정 태스크를 악성 태스크로 분류하는
    공유 라스트 레벨 캐시의 성능 향상방법.
  6. 누마(NUMA) 시스템에서의 태스크 분류방법을 이용한 공유 라스트 레벨 캐시(LLC)의 성능 향상방법에 있어서,
    상기 누마 시스템에 포함된 공유 라스트 레벨 캐시(LLC)의 최대 크기와 특정 태스크에 의해 발생하는 I/O 트래픽의 크기를 비교하는 단계;
    상기 비교 결과에 기초하여 상기 특정 태스크를 악성 태스크 또는 일반 태스크로 분류하는 단계;
    상기 특정 태스크가 악성 태스크인 경우, 상기 특정 태스크의 플래그를 온(ON) 상태로 변경하는 단계; 및
    상기 플래그가 온(ON) 상태에 있는 태스크를 상기 누마 시스템의 복수의 누마 노드 중 상기 악성 태스크를 위해 미리 설정된 누마 노드로 이동시키는 단계를 포함하는
    공유 라스트 레벨 캐시의 성능 향상방법.
  7. 제 6 항에 있어서, 상기 특정 태스크를 분류하는 단계에서
    상기 I/O 트래픽의 크기가 상기 공유 라스트 레벨 캐시의 최대 크기보다 큰 경우 상기 특정 태스크를 악성 태스크로 분류하는
    공유 라스트 레벨 캐시의 성능 향상방법.
  8. 제 6 항에 있어서,
    상기 누마 시스템이 동작하는 운영체제에 의해 제공되는 스케줄링 정책에 따라 상기 미리 설정된 누마 노드를 제외한 누마 노드에서 상기 플래그가 오프(OFF) 상태에 있는 태스크를 처리하는 단계를 더 포함하는
    공유 라스트 레벨 캐시의 성능 향상방법.
KR1020120066587A 2012-06-21 2012-06-21 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법 KR101395699B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120066587A KR101395699B1 (ko) 2012-06-21 2012-06-21 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120066587A KR101395699B1 (ko) 2012-06-21 2012-06-21 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법

Publications (2)

Publication Number Publication Date
KR20130143233A true KR20130143233A (ko) 2013-12-31
KR101395699B1 KR101395699B1 (ko) 2014-05-16

Family

ID=49986513

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120066587A KR101395699B1 (ko) 2012-06-21 2012-06-21 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법

Country Status (1)

Country Link
KR (1) KR101395699B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101976320B1 (ko) 2018-04-25 2019-05-07 연세대학교 산학협력단 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145388B (zh) * 2017-05-25 2020-10-30 深信服科技股份有限公司 一种多任务环境下任务调度方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100726352B1 (ko) * 2006-03-28 2007-06-08 중앙대학교 산학협력단 통신량 증감에 따른 네트워크 트래픽의 분석시스템과 이를이용한 분석방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101976320B1 (ko) 2018-04-25 2019-05-07 연세대학교 산학협력단 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법

Also Published As

Publication number Publication date
KR101395699B1 (ko) 2014-05-16

Similar Documents

Publication Publication Date Title
Liu et al. Going vertical in memory management: Handling multiplicity by multi-policy
Liu et al. Rethinking memory management in modern operating system: Horizontal, vertical or random?
Srikanthan et al. Data sharing or resource contention: Toward performance transparency on multicore systems
Kumar Pusukuri et al. Adapt: A framework for coscheduling multithreaded programs
Su et al. Critical path-based thread placement for numa systems
Zhou et al. Bigroots: An effective approach for root-cause analysis of stragglers in big data system
Veiga et al. BDEv 3.0: energy efficiency and microarchitectural characterization of Big Data processing frameworks
Kumar et al. A comprehensive review of straggler handling algorithms for mapreduce framework
Jahre et al. GDP: Using dataflow properties to accurately estimate interference-free performance at runtime
Kiani et al. Efficient cache performance modeling in GPUs using reuse distance analysis
CN111176831B (zh) 基于多线程共享内存通信的动态线程映射优化方法及装置
Wenisch et al. Temporal streams in commercial server applications
KR101395699B1 (ko) 태스크 분류방법 및 이를 이용한 공유 라스트 레벨 캐시의 성능 향상방법
Cui et al. Scaling OLTP applications on commodity multi-core platforms
Malik et al. Co-locating and concurrent fine-tuning MapReduce applications on microservers for energy efficiency
Lai et al. Load balancing in distributed shared memory systems
Machina et al. Predicting cache needs and cache sensitivity for applications in cloud computing on cmp servers with configurable caches
Hu et al. Optimal symbiosis and fair scheduling in shared cache
Li et al. dCCPI-predictor: A state-aware approach for effectively predicting cross-core performance interference
Fang et al. Performance optimization by dynamically altering cache replacement algorithm in CPU-GPU heterogeneous multi-core architecture
Tajik et al. On detecting and using memory phases in multimedia systems
Sun et al. CRQ-based fair scheduling on composable multicore architectures
Katsaragakis et al. Adjacent LSTM-Based Page Scheduling for Hybrid DRAM/NVM Memory Systems
Cruz et al. Communication‐aware thread mapping using the translation lookaside buffer
Qin et al. Optimizing data migration for cloud-based key-value stores

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180508

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee