KR20190057854A - 데이터 입출력 포화 검출 장치 및 방법 - Google Patents

데이터 입출력 포화 검출 장치 및 방법 Download PDF

Info

Publication number
KR20190057854A
KR20190057854A KR1020170155271A KR20170155271A KR20190057854A KR 20190057854 A KR20190057854 A KR 20190057854A KR 1020170155271 A KR1020170155271 A KR 1020170155271A KR 20170155271 A KR20170155271 A KR 20170155271A KR 20190057854 A KR20190057854 A KR 20190057854A
Authority
KR
South Korea
Prior art keywords
output
data
data input
input
neural network
Prior art date
Application number
KR1020170155271A
Other languages
English (en)
Other versions
KR102057219B1 (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 KR1020170155271A priority Critical patent/KR102057219B1/ko
Priority to PCT/KR2017/013846 priority patent/WO2019103223A1/ko
Publication of KR20190057854A publication Critical patent/KR20190057854A/ko
Application granted granted Critical
Publication of KR102057219B1 publication Critical patent/KR102057219B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 데이터 입출력 포화 검출 장치로서, 특히 신경망을 이용하여 내부 병렬성을 가지는 데이터 저장장치의 데이터 입출력 상태가 포화인지 여부를 검출할 수 있는 데이터 입출력 포화 검출 장치를 개시한다. 본 발명의 데이터 입출력 포화 검출 장치는 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 특징 정보 산출부; 및 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 검출부; 를 포함한다.

Description

데이터 입출력 포화 검출 장치 및 방법 {Apparatus Detecting I/O Data Saturation and Method thereof}
본 발명은 데이터 입출력 포화 검출 장치 및 방법에 관한 것이다. 보다 상세하게는 플래시 메모리 기반 저장 장치의 데이터 입출력 포화를 검출하는 장치에 관한 것이다.
단일 CPU내 코어의 수가 점차 증가함에 따라 프로세서와 스토리지 사이의 데이터 처리 능력의 차이가 점점 벌어지고 있다. 복수의 CPU 코어를 사용하는 빅데이타 플랫폼과 같은 병렬 처리 시스템은 수행하고자 하는 프로그램을 다수의 코어에 할당하여 이를 동시에 병렬 처리한다. 일반적으로, 데이터 I/O 프로세싱에서 데이터 셋의 용량은 병렬 처리 시스템상 메모리와 병목 현상을 일으키는 경우가 빈번히 발생하는데, 최근 빅 데이터를 저장하는 스토리지 기술로서 프로세서와 저장 장치의 성능 차이를 완화하는 기술이 활발하게 연구되고 있다.
플래시 메모리 기반 SSD(Solid State Drive)는 종래 HDD에 비하여 데이터 읽기 쓰기 성능이 뛰어나 주목을 받고 있고, 데이터 스토리지의 성능을 향상하기 위하여 단일 서버에서 복수의 SSD를 배열하여 사용하는 경우도 있다. 복수의 데이터 입출력(I/O, Input/Output) 요청을 디스크에 할당하는 부하 분산기(Load Balancer)는 입출력(I/O)이 포화된 디스크를 검색하고, 포화되지 않은 디스크로 데이터 입출력을 분산하여 할당한다. 데이터 입출력 포화(IO Saturation)는 저장 장치의 이용률이 백프로에 도달한 경우를 의미하고, 종래의 HDD 저장 장치에는 이러한 이용률 측정을 통한 데이터 입출력 포화 여부를 판단할 수 있었다.
하지만, SSD의 경우에는 내부에 복수의 플래시 메모리 칩의 병렬성(Parallel) 로 인하여 종래의 데이터 입출력 포화 판단 기법만으로는 SSD의 실제 데이터 입출력 포화 상태를 판단하기 어렵다. 따라서, 종래의 데이터 입출력 포화 검출 기법이 아닌 새로운 플래시 메모리 기반 SSD의 데이터 입출력 포화 검출 기술 개발이 요구되고 있다.
한국 공개 특허 제 10-2010-0083411 (공개)
본 발명은 상기한 문제점을 해결하기 위하여 안출된 것으로서, 데이터 입출력 포화 검출 장치를 개시한다. 특히, 인공 신경망을 이용하여 데이터 입출력 포화를 검출하는 장치를 개시한다.
본 발명은 상기한 목적을 달성하기 위해 안출된 것으로서, 본 발명의 데이터 입출력 포화 검출 장치는 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 특징 정보 산출부; 및 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 검출부; 를 포함한다.
본 발명에서 상기 특징 정보 산출부는 상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성하는 조합 데이터 생성부; 를 더 포함하고, 상기 입출력 특징 정보는 상기 생성된 조합 데이터를 포함할 수 있다.
본 발명에서 상기 데이터 입출력 특성은 상기 데이터 입출력 유닛의 블록 사이즈, 상기 데이터 입출력 유닛의 수, 상기 데이터 입출력의 액세스 패턴 및 상기 데이터 입출력의 혼합비 중 적어도 하나를 포함할 수 있다.
본 발명에서 데이터 입출력 포화 검출 장치는 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리하는 전처리부; 를 더 포함하고, 상기 검출부는 상기 전처리된 조합 데이터를 이용하여 상기 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출할 수 있다.
본 발명에서 상기 검출부는 상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습하는 신경망 학습부; 를 더 포함하고, 상기 학습된 신경망을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출 할 수 있다.
본 발명에서 상기 검출부는 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증하는 검증부; 를 더 포함하고, 상기 검증된 결과를 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출할 수 있다.
본 발명에서 상기 신경망 학습부는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성하는 포화 함수 생성부; 를 더 포함하고, 상기 생성된 포화 함수를 이용하여 상기 신경망을 학습할 수 있다.
본 발명에서 상기 신경망 학습부는 상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 하는 레이블링부; 를 더 포함하고, 상기 레이블링된 학습용 데이터를 이용하여 상기 신경망을 학습할 수 있다.
본 발명에서 상기 신경망 학습부는 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하는 파라미터 업데이트부; 를 더 포함하고, 상기 업데이트된 파라미터들을 미리 결정하여 상기 신경망을 학습할 수 있다.
본 발명에서 상기 입출력 특징 정보는 데이터 입출력 요청에 따른 읽기 횟수, 상기 데이터 입출력 요청에 따른 쓰기 횟수, 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 읽기 횟수, 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 쓰기 횟수, 상기 데이터 입출력 요청에 따른 읽기 사용 대역폭, 상기 데이터 입출력 요청에 따른 쓰기 사용 대역폭, 상기 데이터 입출력 요청이 저장된 큐(Queue)의 평균 길이, 입출력 데이터의 평균 사이즈 및 상기 데이터 입출력에 걸리는 평균 시간 중 적어도 하나를 포함할 수 있다.
본 발명에서 상기 신경망 학습부는 상기 데이터 입출력의 액세스 패턴, 상기 복수개의 레이어의 수 및 상기 레이어에 포함된 히든 레이어의 수에 따라 서로 다른 신경망을 학습하도록 마련될 수 있다.
본 발명에서 상기 신경망은 상기 신경망에 포함된 노드 및 상기 노드 사이의 연결 강도에 관한 파라미터들의 가중합을 입력으로 하는 활성화 함수를 이용하여 상기 데이터 입출력의 포화 여부를 출력할 수 있다.
본 발명에서 상기 검증부는 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 그리드 서치, 매뉴얼 서치 및 교차 검증 중에서 적어도 하나의 검증 방법으로 검증하도록 마련될 수 있다.
또한 상기한 목적을 달성하기 위하여 본 발명의 데이터 입출력 포화 검출 방법은 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 단계; 및 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 단계; 를 포함한다.
본 발명에서 상기 특징 정보를 산출하는 단계는 상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성하는 단계; 를 더 포함하고, 상기 생성된 조합 데이터를 상기 입출력 특징 정보로서 산출할 수 있다.
본 발명에서 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리하는 단계; 를 더 포함하고, 상기 전처리된 조합 데이터를 이용하여 상기 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출할 수 있다.
본 발명에서 상기 검출하는 단계는 상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습하는 단계; 및 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증하는 단계; 를 더 포함하고, 상기 검증된 결과를 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출할 수 있다.
본 발명에서 상기 학습하는 단계는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성하는 단계; 상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 하는 단계; 및 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하는 단계; 를 더 포함하고, 상기 업데이트된 파라미터들을 미리 결정하여 상기 신경망을 학습할 수 있다.
본 발명에서 상기 검증하는 단계는 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 그리드 서치, 매뉴얼 서치 및 교차 검증 중에서 적어도 하나의 검증 방법으로 검증하고, 상기 학습하는 단계는 상기 데이터 입출력의 액세스 패턴, 상기 복수개의 레이어의 수 및 상기 레이어에 포함된 히든 레이어의 수에 따라 서로 다른 신경망을 학습하도록 마련될 수 있다.
또한 본 발명은 컴퓨터에서 상기한 데이터 입출력 포화 검출 방법을 실행시키기 위한 컴퓨터에서 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 개시한다.
본 발명에 따르면, 데이터 저장 장치의 입출력 상태가 포화인지 여부를 결정할 수 있다.
특히, 내부 병렬성을 가지는 플래시 메모리 기반 저장 장치의 데이터 입출력 상태를 정확하게 측정할 수 있는 잇점이 있다.
도 1은 본 발명의 일 실시 예에 따른 데이터 입출력 포화 검출 장치의 블록도이다.
도 2는 도 1의 실시예에서 특징 정보 산출부의 확대 블록도이다.
도 3은 도 1의 실시예에서 검출부의 확대 블록도이다.
도 4는 도 3의 실시 예에서 신경망 학습부의 확대 블록도이다.
도 5는 일 실시 예에 따라 본 발명이 적용될 수 있는 데이터 저장 장치의 블록도이다.
도 6은 내부 병렬성으로 인한 데이터 저장 장치의 이용률과 사용 대역폭의 차이를 나타내는 예시도이다.
도 7은 데이터 입출력 상태가 포화인지 여부를 판단하기 위한 포화 함수의 출력과 평균 사용대역폭을 나타내는 예시도이다.
도 8은 데이터 입출력 액세스 패턴에 따른 신경망 모델의 성능을 검증한 결과를 나타내는 예시도이다.
도 9는 본 발명의 일 실시 예에 따른 데이터 입출력 포화 검출 방법의 흐름도이다.
도 10은 도 9의 실시 예에서 검출하는 단계의 확대 흐름도이다.
도 11은 도 10의 실시 예에서 학습하는 단계의 확대 흐름도이다.
도 12는 본 발명의 또 다른 실시 예에 따른 데이터 입출력 포화 검출 방법의 흐름도이다.
이하, 본 발명의 일 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 용어를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 이하에서 설명하는 각 단계는 하나 또는 여러 개의 소프트웨어 모듈로도 구비가 되거나 또는 각 기능을 담당하는 하드웨어로도 구현이 가능하며, 소프트웨어와 하드웨어가 복합된 형태로도 가능하다. 각 용어의 구체적인 의미와 예시는 각 도면의 순서에 따라 이하 설명 한다. 이하에서는 본 발명의 실시예에 따른 데이터 입출력 포화 검출 장치의 구성을 관련된 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 데이터 입출력 포화 검출 장치(10)의 블록도이다.
데이터 입출력 포화 검출 장치(10)는 특징 정보 산출부(100), 전처리부(200) 및 검출부(300)를 포함한다. 예를 들어, 데이터 입출력 포화 검출 장치(10)는 데이터 입출력 특성에 따른 워크로드를 데이터 저장 장치에 인가하고, 상기 데이터 저장 장치로부터 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하며, 상기 산출된 특징 정보를 입력으로 하는 미리 학습된 신경망을 이용하여 데이터 입출력 상태가 포화인지 여부를 결정할 수 있다. 데이터 입출력 상태가 포화(Saturation)라는 것은 이용률(Utilization)이 100%에 도달한 상태로서, 더 많은 입출력 요청을 처리할 수 없는 상태를 의미한다.
데이터 입출력 포화 검출 장치(10)는 데이터 입출력 레벨과 사용 대역폭의 변화 정도를 고려한 무의미도(Meaninglessness)에 기반한 별도의 포화 함수를 생성하고, 상기 생성된 포화 함수를 이용하여 신경망을 학습하여, 상기 학습된 신경망을 이용하여 데이터 입출력 상태가 포화인지 여부를 결정할 수 있다.
부하 분산기(Load Balancer)는 입출력(I/O)이 포화된 디스크를 검색하고, 포화되지 않은 디스크로 데이터 입출력을 분산하여 할당함으로서 시스템의 처리 효율을 개선할 수 있는데, 컴퓨팅 장치의 시스템 효율 개선을 위하여서는 데이터 입출력 상태의 포화 여부를 검출하는 것이 매우 중요하다. 본 발명의 데이터 저장 장치는 HDD(Hard Disk Drive) 및 SSD(Solid State Drive)를 포함하고, HDD가 하나의 입출력(I/O) 요청만을 처리할 수 있는 것과는 달리 SSD는 복수의 플래시 메모리를 기반으로 멀티 입출력(I/O) 요청을 병렬(Parallel)적으로 처리할 수 있기 때문에 종래 이용률 측정을 통한 데이터 입출력 포화 검출 방법이 적용될 수 없다. 일반적으로 SSD의 제조사들은 이론적인 데이터 입출력 특성에 기반한 SSD의 성능 한계치를 제시하고 있으나, 이는 실제 SSD의 데이터 입출력 상태를 정확하게 반영하지 않는 문제점이 있다.
예를 들어, 데이터 입출력 포화 검출 장치(10)는 인공신경망을 이용하여 NVMe(Non-Volatile Memory Express) 규격의 플래시 메모리 기반 SSD의 데이터 입출력 상태를 분석하여 입출력 상태가 포화인지 여부를 결정할 수 있다. 신경망(Artificial Neural Network)은 기계학습과 인지과학에서 생물학의 신경망으로부터 영감을 얻은 통계학적 학습 알고리즘으로 구현되는 것으로, 본 발명에서 신경망은 적어도 하나의 노드를 포함하는 입력 레이어, 히든 레이어 및 출력 레이어를 포함하고, 상기 레이어 내부에 포함된 노드 사이의 연결 강도에 관한 가중치와 바이어스를 포함하는 파라미터로 각 노드간의 연결 강도를 표현할 수 있다.
특징 정보 산출부(100)는 조합 데이터 생성부(120)를 포함한다. 예를 들어 특징 정보 산출부(100)는 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출한다. 본 발명에서 저장 장치에 종류에는 제한이 없으나, 바람직하게는 플래시 메모리 기반 SSD로서 Intel DC 3700 NVMe SSD로 마련될 수 있다.
Figure pat00001
상기 표 1은 워크로드 특성을 나열한 것으로, I/O는 데이터의 입력(Input) 및 출력(Output)을 의미하며, I/O type은 각 데이터 입출력 요청에 따른 동작 타입을 의미하는 것으로서, 쓰기, 읽기 및 삭제를 포함하고, I/O size는 데이터 입출력 유닛의 사이즈, I/O access pattern은 데이터 입출력 요청이 저장 장치에 액세스되는 방식으로 randomly 및 sequentially 방식을 포함하며, The number of threads는 단위 시간대에 병렬적으로 처리되는 데이터 입출력 요청의 집합을 의미하고, Read/Write Ratio는 데이터 입출력에서 포함된 읽기 및 쓰기의 혼합비를 의미한다.
Figure pat00002
상기 표2는 FIO Benchmark 의 옵션사항을 나열한 것으로서, 본 발명의 특징 정보 산출부(100)는 상기 표 2의 옵션 사항이 적용된 미리 마련된 유틸리티를 이용하여 SSD에 인가할 데이터 입출력 특성이 반영된 워크로드를 생성하고, 이를 SSD와 같은 저장 장치에 인가하여, 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출한다. 여기에서 Block Size는 데이터 입출력 유닛의 단위 블록 사이즈로 4k에서 512k 범위를 포함하고, I/O Load 는 저장 장치로 인가되는 총 데이터 입출력 유닛의 수로서 2에서 2의 11승수까지의 데이터 입출력 유닛수를 포함한다. 또한 The type of I/O pattern은 데이터 입출력의 액세스 패턴 및 Read/Write Ratio는 데이터 입출력에서 읽기 및 쓰기가 혼합된 비율을 의미하고, 읽기 쓰기의 비율은 1:9에서 9:1의 범위에서 가변될 수 있다. 실제적으로, 데이터 입출력 액세스 패턴으로 Sequential 데이터 입출력 액세스 패턴은 거의 존재하지 않으므로 random 데이터 입출력 액세스 패턴으로 설정하여 워크로드를 인가한다.
특징 정보 산출부(100)는 FIO Benchmark 의 Option사항 중 읽기와 쓰기 데이터 입출력 요청 혼합비율을 조절하여 관측 가능한 모든 저장 장치의 입출력 상태가 반영된 입출력 특징 정보를 산출할 수 있다. 본 발명에서 데이터 입출력 특성은 데이터 입출력 유닛의 사이즈, 상기 데이터 입출력 유닛의 수, 상기 데이터 입출력의 액세스 패턴 및 상기 데이터 입출력의 혼합비와 같은 저장 장치로 송수신되는 데이터 입출력 상태를 정의할 수 있는 모든 특성을 포함하고, 바람직하게는 상기 표1 또는 표2의 특성으로 마련될 수 있다.
Figure pat00003
상기 표 3은 Kernel 의 입출력(I/O) 통계(Statistics)를 나열한 것으로, 여기에서 ticks는 프로세서가 컴퓨터 프로그램 또는 운영체제의 명령을 처리하는데 사용된 단위 시간(Milliseconds)을 의미한다. 여기에서, I/O ticks는 해당 입출력 요청에 따라 저장 장치가 활성화되는데 걸린 총 시간(Milliseconds), Read/Write ticks는 저장 장치가 읽기/쓰기 동작을 수행하는데 걸린 시간(Milliseconds), Read/Write I/Os는 완료된 입출력 요청에 따른 읽기/쓰기의 횟수, Read/Write sectors는 섹터 단위로 읽기/쓰기의 횟수 및 Merged read/write sectors는 섹터 단위로 병합된 읽기/쓰기의 횟수를 의미한다.
Figure pat00004
상기 표 4는 디스크 성능의 측정 수단(Measure)을 나열한 것으로 Utilization은 이용률로서 I/O ticks와 프로세서 CPU ticks의 비로 계산되고, Read or Write bandwidth 사용 대역폭으로서, 읽기/쓰기 섹터와 경과된 I/O ticks의 비로 계산되며, Read or Write response time 읽기/쓰기의 응답 시간으로 CPU ticks와 데이터 입출력 요청에 따른 읽기/쓰기 횟수의 비로 계산되고, Read or Write I/Os 는 단위 시간당 데이터 입출력 요청의 수, Read or Write merged I/Os는 os 수준에서 병합된 데이터 입출력 요청의 수 및 Average Request Size는 데이터 입출력 요청의 평균 사이즈를 의미한다. 도 2를 참조하여 설명한다.
예를 들어, 조합 데이터 생성부(120)는 상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성한다. 특징 정보 산출부(100)에서 산출된 입출력 특징 정보는 상기 조합 데이터를 포함한다. 본 발명에서 신경망은 데이터 입출력의 액세스 패턴에 따라 서로 다른 신경망 모델로 학습될 수 있고, 조합 데이터 생성부(120)는 상기 입출력 특징 정보들을 데이터 입출력의 액세스 패턴을 기준으로 조합하여 조합 데이터를 생성하고, 신경망 학습부는 데이터 입출력의 액세스 패턴을 기준으로 서로 다르게 생성된 조합 데이터를 이용하여 서로 다른 신경망 모델을 학습할 수 있다.
예를 들어, 데이터 액세스 패턴이 읽기(Read)인 경우, 조합 데이터 생성부(120)는 상기 표 5에서 산출된 입출력 특징 정보들 중에서 데이터 입출력 요청에 따른 읽기 횟수(the number of read I/Os that were issued), 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 쓰기 횟수(the number of read I/Os merged), 상기 데이터 입출력 요청이 저장된 큐(Queue)의 평균 길이 (The total number if megabytes read The average queue length) 입출력 데이터의 평균 사이즈 (The requests The average size of the requests) 및 데이터 입출력에 걸리는 평균 시간 (The average time for I/O requests)을 조합하여 조합 데이터를 생성할 수 있다. 도 3을 참조하여 설명한다.
Figure pat00005
상기 표 5에서 Input Vectors는 산출된 입출력 특징 정보의 집합을 의미하고, 본 발명에서 입출력 특징 정보는 데이터 입출력 요청에 따른 읽기 횟수, 상기 데이터 입출력 요청에 따른 쓰기 횟수, 상기 데이터 입출력 요청에 따라 운영체제(OS) 수준에서 병합된 읽기 횟수, 상기 데이터 입출력 요청에 따라 운영체제(OS) 수준에서 병합된 쓰기 횟수, 상기 데이터 입출력 요청에 따른 읽기 사용 대역폭, 상기 데이터 입출력 요청에 따른 쓰기 사용 대역폭, 상기 데이터 입출력 요청이 저장된 큐(Queue)의 평균 길이, 입출력 데이터의 평균 사이즈 및 상기 데이터 입출력에 걸리는 평균 시간 중 적어도 하나를 포함할 수 있다.
전처리부(200)는 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리한다. 예를 들어, 전처리부(200)는 데이터 입출력 특성에 따라 생성된 워크로드에 의하여 데이터 입출력 요청이 데이터 저장 장치에 인가되고, 상기 데이터 저장 장치가 상기 워크로드에 동기(Sync) 되기까지 걸리는 시간을 고려하여 생성된 조합 데이터에서 적어도 일부를 제거할 수 있다. 예를 들어, 조합 데이터 생성부(120)에서 생성된 하나의 조합 데이터는 총 10초의 시간에 대응되는 입출력 특징 정보를 포함할 수 있고, 전처리부(200)는 워크로드가 저장 장치로 동기되는 시간을 고려하여 조합 데이터에 기록된 입출력 특징 정보가 시작되는 0~1초에 상응하는 섹터와 9~10초에 상응하는 섹터를 조합 데이터에서 제거하여 전처리 할 수 있다. 도 3을 참조하여 설명한다.
검출부(300)는 신경망 학습부(320) 및 검증부(340)를 포함한다. 예를들어, 검출부(300)는 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출한다. 검출부(300)는 미리 학습된 신경망에 데이터 입출력 포화 여부를 판단하고자 하는 저장 장치에서 산출된 특징 정보를 입력하여 상기 데이터 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출할 수 있다. 도 4를 참조하여 설명한다.
신경망 학습부(320)는 포화 함수 생성부(322), 레이블링부(324) 및 업데이트부(326)를 포함한다. 예를 들어, 신경망 학습부(320)는 상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습한다. 상기 학습용 데이터와 검증용 데이터는 워크로드 생성기(Workload Generator)를 이용하여 미리 생성된 데이터로서, 다양한 워크로드 특성을 반영하여 CPU 코어의 수에 영향 받지 않고, 정확하게 SSD의 성능을 측정하기 위한 신경망을 학습하기 위한 데이터이다.
신경망 학습부(320)는 데이터 입출력의 상태가 포화인지 여부를 정의하는 포화 함수를 별도로 생성하고, 상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링하며, 레이블링된 학습용 데이터를 기반으로 신경망에 포함된 적어도 하나의 노드를 포함하는 레이어 및 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하여 신경망을 학습한다.
신경망 학습부(320)는 데이터 입출력의 액세스 패턴, 신경망에 포함된 히든 레이어의 수, 입력 레이어, 출력 레이어 및 상기 히든 레이어에 포함된 노드의 수를 포함하는 하이퍼 파라미터(Hyperparameters)를 조절하여 서로 다른 신경망을 학습할 수 있다. 본 발명에서 하이퍼 파라미터는 학습에 의해서 설정되는 파라미터가 아닌, 신경망을 학습하기에 앞서 설정하는 매개 변수를 의미한다. 신경망 학습부(320)가 학습하는 신경망은 노드 및 상기 노드 사이의 연결 강도에 관한 파라미터들의 가중합을 입력으로 하는 활성화 함수를 이용하여 상기 데이터 입출력의 포화 여부를 출력할 수 있다. 신경망 학습부(320)가 이용하는 활성화 함수는 출력 레이어에 연결되는 함수로서, Sigmoid, tanh, ELU, Maxout, ReLU를 포함한다. 바람직하게는, 본 발명에서 신경망은 Rectified Linear Unit(ReLU)활성화 함수를 이용하여 데이터 저장 장치의 데이터 입출력 상태가 포화인지 여부를 출력할 수 있다.
Figure pat00006
상기 표 6은 신경망 학습부(320)가 신경망을 학습하기에 앞서 신경망의 전체적인 구조를 설정하기 위한 하이퍼 파라미터(HyperParameter)를 나열한 것이다. 신경망 학습부(320)는 데이터 입출력 액세스 패턴이 읽기(Read) 또는 쓰기(Write)인 경우 입력 레이어에 6개의 노드를 포함하고, 혼합(Mixed)인 경우 입력 레이어에 9개의 노드를 설정하여 신경망을 학습한다. 신경망 학습부(320)가 학습하는 신경망의 출력 레이어는 두개의 노드를 포함하여 데이터 입출력 상태가 포화인지 여부를 출력하고, 히든 레이어의 수는 1 레이어 또는 2레이어로 설정할 수 있다. 신경망 학습부(320)는 히든 레이어가 1레이어인 경우 1개의 히든 레이어에 5개의 노드를 설정하여 신경망을 학습할 수 있고, 히든 레이어가 2레이어인 경우 총 10개의 노드를 설정하여 25가지 케이스의 경우로 학습할 수 있다. 신경망 학습부(320)는 L1 Regularization을 설정하여 학습된 신경망의 오버피팅을 예방할 수 있고, 성능 평가로서 LogLoss 및 5 fold Cross-validation을 이용하여 신경망 모델의 예측 정확도를 평가 및 검증할 수 있다. 도 5를 참조하여 설명한다.
포화 함수 생성부(322)는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성한다. 본 발명에서 데이터 입출력 포화 검출 장치(10)가 데이터 입출력 상태를 분석하고자 하는 데이터 저장 장치는 SSD로서, RAM 버퍼(420), 호스트 인터페이스 로직(440), SSD 컨트롤러(460), 플래시 메모리 패키지(482, 484)를 포함할 수 있다. SSD 컨트롤러(460)는 프로세서(462), 버퍼 매니저(464) 및 섹터단위 저장 구조로 변환하기 위한 플래쉬 컨트롤러(466)을 포함하고, 웨어 레벨링 기술을 통하여 SSD 내부의 복수의 플래시 메모리에 저장할 데이터를 관리할 수 있다.
포화 함수 생성부(322)는 SSD의 데이터 입출력 상태가 포화인지 여부를 검출하기 위하여 새로운 데이터 입출력 포화 상태를 정의한다. 예를 들어, 도 6을 참조하면, 종래 HDD에 사용되는 이용률을 기반으로 NVMe SSD에 벤치마크 테스트를 실시하는 경우, 관심구간(502) 초입단계에서 이용률(504)은 100%에 도달하여 포화 상태를 나타내지만, 사용 대역폭(504)의 경우 더 높은 데이터 입출력 레벨에서 최대값에 도달함을 관측할 수 있다. 즉, 실제 사용 가능한 사용 대역폭이 더 존재하는 상태에서 데이터 입출력이 포화 상태에 도달하게 되고, 이는 데이터 저장 장치의 잠재 성능을 모두 사용할 수 없는 결과를 초래한다. 따라서, 전술한 바와 같이 SSD의 내부 병렬성(Internal Parallel)으로 인하여 종래 HDD에 사용되는 데이터 입출력 포화 검출 기법을 이용하여 데이터 입출력 상태가 포화인지 여부를 결정할 수 없고, 별도의 데이터 입출력 포화상태의 정의가 필요하다. 포화 함수 생성부(322)가 생성하는 포화 함수는 하기의 수학식 1과 같이 정의될 수 있다.
Figure pat00007
여기에서 Mi는 포화 함수이고, 데이터 입출력 레벨의 증가에 따른 사용 대역폭 변동량을 관측하여 정의되는 무의미도(Meaninglessness)값을 출력한다. 여기에서, i는 정수로서 데이터 입출력의 증가 레벨의 인덱스 넘버, Li는 i번째 데이터 입출력의 레벨 Bi는 사용 대역폭, max는 최대값을 출력하는 함수이다. 데이터 입출력 포화 검출 장치(10)가 사용하는 포화 함수는 데이터 입출력의 증가 비율과 사용 대역폭의 증가 비율 및 1중에서 큰 값의 차이로 무의미도 값을 출력한다.
레이블링부(324)는 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 한다. 예를 들어, 레이블링부(324)는 상기 생성된 포화 함수를 이용하여 워크로드 생성기(Workload Generator)에서 생성된 워크로드를 인가하여 생성된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링(Labeling)할 수 있다. 따라서, 신경망 학습부(320)는 포화 함수를 이용하여 생성된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 라벨링하고, 상기 라벨링된 학습용 데이터를 이용하여 신경망을 학습한다.
업데이트부(326)는 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 한다. 예를 들어, 업데이트부(326)는 신경망에 포함된 노드, 상기 노드를 포함하는 레이어 및 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 함으로서 신경망의 데이터 입출력 상태 판단의 정확도를 향상할 수 있다.
검증부(340)는 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증한다. 예를 들어 검증부(340)는 신경망을 학습하는데 사용되지 않은 데이터를 이용하여 학습된 신경망이 출력하는 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 검증할 수 있다. 검증부(340)는 그리드 서치(Grid Search), 매뉴얼 서치(Manual Search) 및 교차 검증 중에서 적어도 하나의 방법으로 신경망이 출력하는 결과를 검증할 수 있다. 검증부(340)는 최종 학습된 신경망의 출력 결과를 검증할 뿐만 아니라, 신경망의 파라미터를 최적화 하기 위해서 그리드 서치(Grid Search), 매뉴얼 서치(Manual Search) 및 교차 검증의 방법을 사용할 수 있다. 그리드 서치는 하이퍼 파라미터 최적화를 수행하는 방법으로서, 본 발명에서 검증부(340)가 신경망을 테스트 하기 위하여 사용하는 교차 검증은 5-fold 교차 검증으로 마련될 수 있고 검증 결과는 하기의 표와 같다.
Figure pat00008
상기 표 7에서는 데이터 입출력 액세스 패턴(Read, Write, Mixed), 히든 레이어의 수 및 히든 레이어의 노드의 종류에 따라 서로 다르게 학습된 신경망의 성능을 LogLoss 및 AUC를 포함하는 통계지표로서 나타낸다. 여기에서 Model은 데이터 입출력 액세스 패턴을 나타내고, Hidden nodes는 히든 레이어의 수와 히든 레이어에 포함된 히든 노드의 종류를 나타낸다. LogLoss는 로그 손실로서, 0과 1사이의 값으로 측정되는 분류 성능으로 예측된 확률이 실제 값과 다른 경우 증가하는 통계 지표이고, 낮을수록 높은 성능을 나타낸다. AUC(Area Under Cover)는 수신자 판단 특성 곡선(Receiver Operation Characteristic Curve, ROC)에서 곡선하면적을 의미하고, AUC 값이 클수록 높은 성능을 나타낸다.
도 2는 도 1의 실시예에서 특징 정보 산출부(100)의 확대 블록도이다.
조합 데이터 생성부(120)는 상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성한다. 조합 데이터 생성부(120)가 생성하는 조합 데이터는 데이터 입출력의 액세스 패턴에 따라 서로 달라질 수 있고, 본 발명의 신경망은 서로 다른 조합 데이터를 기반으로 학습하게 되기 때문에 데이터 입출력의 액세스 패턴에 따라 서로 다른 신경망 모델로 학습될 수 있다. 조합 데이터 생성부가 조합 데이터를 생성하는 구체적인 방법은 전술한 바와 같으므로 생략한다.
도 3은 도 1의 실시예에서 검출부(300)의 확대 블록도이다.
검출부(300)는 신경망 학습부(320) 및 검증부(340)를 포함한다. 예를들어, 검출부(300)는 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출한다. 검출부(300)가 신경망을 이용하여 저장 장치의 데이터 입출력 상태가 포화인지 여부를 결정하는 방법은 전술한 바와 같으므로 생략한다.
도 4는 도 3의 실시 예에서 신경망 학습부(320)의 확대 블록도이다.
신경망 학습부(320)는 포화 함수 생성부(322), 레이블링부(324) 및 업데이트부(326)를 포함한다. 예를 들어, 신경망 학습부(320)는 상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습한다.
예를 들어, 신경망 학습부(320)는 워크로드 발생기에서 생성된 워크로드를 저장장치에 인가하여 산출되는 특징 정보들을 포함하는 조합 데이터중에서 일부를 학습용 데이터, 나머지 일부를 테스트용 데이터로 설정하고, 상기 설정된 학습용 데이터를 기반으로 신경망을 학습할 수 있다. 신경망 학습부(320)가 신경망을 학습하기에 앞서 하이퍼 파라미터를 설정하고, 신경망에 포함된 히든 레이어 및 히든 레이어에 포함된 노드들을 조절하여 신경망을 학습하는 구체적인 방법은 전술한 바와 같으므로 생략한다.
포화 함수 생성부(322)는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성한다. 포화 함수가 데이터 입출력 레벨의 증가 비와 사용 대역폭의 증가비율을 고려하여 무의미도값을 출력하는 구체적인 방법은 전술한 바와 같다.
레이블링부(324)는 레이블링부(324)는 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 한다. 본 발명에서 레이블링부(324)가 수행하는 레이블링은 학습용 데이터에 학습용 데이터가 나타내는 데이터 입출력의 상태가 포화인지 여부를 식별할 수 있는 모든 방법을 포함한다. 예를 들어, 레이블링부(324)는 학습용 데이터의 적어도 일부에 데이터 입출력 상태가 포화인지 여부를 이진 식별자로서 표시하여 태그할 수 있다.
업데이트부(326)는 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 한다. 본 발명에서, 업데이트부(326)가 신경망에 포함된 노드와 각 노드사이의 연결 강도에 관한 파라미터를 업데이트 하는 것은 신경망을 학습하는 과정에 대응되고, 상기 파라미터 업데이트 과정은 파라미터를 지속적으로 업데이트 하는 알고리즘인 역 전파(Back Propagation)으로 마련될 수 있다.
도 5는 일 실시 예에 따라 본 발명이 적용될 수 있는 데이터 저장 장치의 블록도이다.
본 발명에서 데이터 입출력 포화 검출 장치(10)가 데이터 입출력 상태를 분석하고자 하는 데이터 저장 장치는 SSD로서, RAM 버퍼(420), 호스트 인터페이스 로직(440), SSD 컨트롤러(460), 플래시 메모리 패키지(482, 484)를 포함할 수 있다. SSD 컨트롤러(460)는 프로세서(462), 버퍼 매니저(464) 및 섹터단위 저장 구조로 변환하기 위한 플래쉬 컨트롤러(466)을 포함할 수 있다. 전술한 바와 같이, SSD는 복수의 플래시 메모리 패키지(482, 484)를 관리하기 위한 SSD 컨트롤러를 포함하고, 내부 병렬성으로 인하여 종래의 HDD에 적용되는 이용률 기반 데이터 입출력 상태 포화 검출 기법은 적용될 수 없다.
도 6은 내부 병렬성으로 인한 데이터 저장 장치의 이용률과 사용 대역폭의 차이를 나타내는 예시도이다.
종래 이용률 기반 데이터 입출력 상태 포화 검출 기법을 SSD에 적용하면, 사용 대역폭은 아직 여유가 있지만, 이용률(504)이 먼저 100% 도달함을 관측할 수 있다. 이는 SSD의 내부 병렬성에 기인한 것으로서, 종래 이용률 기반 포화 검출 기법은 현재 SSD의 사용 가능한 저장 자원의 성능을 정확하게 측정할 수 없음을 나타내는 근거가 되고, 따라서 SSD에 적합한 새로운 데이터 입출력 포화 검출 기법이 필요함을 알 수 있다.
도 7은 데이터 입출력 상태가 포화인지 여부를 판단하기 위한 포화 함수의 출력과 평균 사용대역폭을 나타내는 예시도이다.
본 발명에서 포화 함수 생성부(322)는 상기 수학식 1을 이용하여 포화 함수를 정의하고, 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 무의미도(Meaninglessness)값을 출력한다. 본 발명의 데이터 입출력 포화 검출 장치(10)는 데이터 입출력 레벨의 증가에 따라 평균 사용 대역폭의 증가가 도7에 도시된 바와 같은 경우, 관심 구간(508)의 초입 단계인 데이터 입출력 레벨이 32인 지점을 데이터 입출력 상태가 포화된 지점으로 검출할 수 있다.
도 8은 데이터 입출력 액세스 패턴에 따른 신경망 모델의 성능을 나타내는 예시도이다.
본 발명의 데이터 입출력 포화 검출 장치(10)는 상기 표 7에 도시된 바와 같이 데이터 액세스 패턴(읽기, 쓰기, 혼합)의 종류, 히든 레이어의 수 및 상기 히든 레이어에 포함된 노드의 종류에 따라 서로 다른 신경망을 학습할 수 있음은 전술한 바와 같다. 본 발명에서 데이터 입출력 포화 검출 장치(10)는 상기 서로 다르게 생성된 신경망을 조합하여 새로운 신경망 모델을 생성할 수 있고, 조합되어 생성된 신경망 모델의 성능은 다음과 같다.
Figure pat00009
상기 표 8에서 Optimal model은 상기 표 7에서 데이터 입출력 액세스 패턴 별로 3개씩 생성된 신경망 모델 중 가장 성능이 뛰어난 신경망이고, Ensembel model은 데이터 입출력 액세스 패턴 별로 생성된 3개의 신경망을 평균하여 생성한 신경망 모델이며, Logistic model은 로지스틱 판별 분석(Logistic Classification)을 사용한 모델로서, 전술한 Optimal model 및 Ensembel model와 대조군이 되는 신경망 모델을 의미한다.
본 발명의 데이터 입출력 포화 검출 장치(10)는 상기 생성된 신경망 모델의 성능을 평가하기 위한 통계 지표로서 정확도(Accuracy), 곡선하면적(Area Under Cover), 민감도(Sensitivity) 및 특이도(Specificity)를 사용할 수 있다. 민감도(Sensitivity)는 데이터 입출력 상태가 포화인 데이터 중 신경망이 데이터 입출력 상태가 포화라고 판단한 사례의 비율을 의미한다. 특이도(Specificity)는 실제 데이터 입출력 상태가 포화가 아닌 데이터 중 신경망이 데이터 입출력 상태가 포화가 아니라고 판단한 판단한 사례의 비율을 의미한다. 상기 특이도(Specificity)를 x좌표에 두고, 민감도(Sensitivity)를 y좌표에 두어서 그래프를 그리면 수신자 판단 특성 곡선(Receiver Operation Characteristic Curve, ROC)을 얻을 수 있다. 수신자 판단 특성 곡선(Receiver Operation Characteristic Curve, ROC)의 그래프상 아래 면적을 나타내는 곡선하면적(Area Under Cover)이 클수록 신경망의 성능이 높음은 전술한 바와 같다.
신경망 학습부(320)가 학습한 신경망 중에서 데이터 입출력 액세스 패턴이 읽기인 경우 Ensembel model(516) 및 Logistic model(518)의 민감도(Sensitivity) 곡선을 보면 Ensembel model(516)의 민감도(Sensitivity)가 0.9743으로 더 크고, 데이터 입출력 액세스 패턴이 쓰기인 경우 Ensembel model(516) 및 Logistic model(518)의 민감도(Sensitivity) 곡선을 보면 Ensembel model(522)의 민감도(Sensitivity)가 0.9828로 더 낮으며, 데이터 입출력 액세스 패턴이 혼합인 경우 Ensembel model(526) 및 Logistic model(528)의 민감도(Sensitivity) 곡선을 보면 Ensembel model(526)의 민감도(Sensitivity)가 0.9096으로 더 큰 것을 관측할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 데이터 입출력 포화 검출 방법의 흐름도이다.
본 발명의 데이터 입출력 포화 검출 방법은 데이터 입출력 포화 검출 장치(10)에서 시계열적으로 수행되는 하기의 단계들을 포함한다.
S100에서, 특징 정보 산출부(100)는 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출한다. 특징 정보 산출부(100)는 조합 데이터 생성부(120)를 포함하고, 상기 입출력 특징 정보가 조합 데이터를 포함하며, 조합 데이터를 조합하는 방법은 전술한 바와 같으므로 생략한다.
S200에서, 전처리부(200)는 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리한다. 전처리부(200)는 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 조합 데이터의 적어도 일부를 제거할 수 있을 뿐만 아니라, 워크로드 생성기에서 발생된 워크로드의 인가에 따라 데이터 저장 장치에서 생성된 입출력 특징 정보의 적어도 일부 역시 제거할 수 있다.
도 10은 도 9의 실시 예에서 검출하는 단계의 확대 흐름도이다.
S320에서, 신경망 학습부(320)는 데이터 입출력의 상태가 포화인지 여부를 정의하는 포화 함수를 별도로 생성하고, 상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링하며, 레이블링된 학습용 데이터를 기반으로 신경망에 포함된 적어도 하나의 노드를 포함하는 레이어 및 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하여 신경망을 학습한다. 신경망 학습부(320)가 신경망을 학습하는 구체적인 방법은 전술한 바와 같으므로 생략한다.
S340에서, 검증부(340)는 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증한다. 검증부(340)가 검증용 데이터를 이용하여 학습된 신경망이 출력한 데이터 저장 장치의 데이터 입출력 상태가 포화인지 여부에 대한 결과를 검증하는 방법은 전술한 바와 같으므로 생략한다.
도 11은 도 10의 실시 예에서 학습하는 단계의 확대 흐름도이다.
S322에서, 포화 함수 생성부(322)는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성한다. 포화 함수 생성부(322)에서 생성한 포화 함수의 출력은 무의미도값이고, 상기 포화 함수를 정의하는 방법은 전술한 바와 같으므로 생략한다.
S324에서, 레이블링부(324)는 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 한다. 레이블링부(324)가 상기 학습용 데이터에 포화 함수를 적용하여 상기 학습용 데이터가 나타내는 데이터의 입출력 상태가 포화인지 여부에 따라 레이블링 하는 구체적인 방법은 전술한 바와 같으므로 생략한다.
S326에서, 업데이트부(326)는 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 한다. 업데이트부(326)가 신경망에 포함된 파라미터들을 업데이트 과정은 신경망을 학습하는 과정에 대응되고, 상기 파라미터의 업데이트 과정은 전술한 바와 같으므로 생략한다.
도 12는 본 발명의 또 다른 실시 예에 따른 데이터 입출력 포화 검출 방법의 흐름도이다.
S902에서, 특징 정보 산출부(100)는 미리 마련된 워크로드 생성기(Workload generator)에서 생성된 워크로드를 SSD에 입력한다. S904에서, 특징 정보 산출부(100)는 워크로드를 인가 받은 저장 장치인 SSD로부터 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출한다. 본 발명에서 입출력 특징 정보는 I/O Statistic(I/O 통계)를 포함한다.
S908에서, 조합 데이터 생성부(120)는 상기 산출된 적어도 하나의 입출력 특징 정보를 조합하여 조합 데이터를 생성한다. 본 발명에서 입출력 특징 정보는 넓은 의미에서 조합 데이터를 포함한다. S910에서 전처리부(200)는 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 조합 데이터의 적어도 일부(Ramp-Up-Section)를 제거한다. 또한, 레이블링부(324)는 포화 함수를 이용하여 상기 생성된 조합 데이터 또는 입출력 특징 정보가 나타내는 데이터의 입출력 상태가 포화인지 여부를 결정하여 레이블링한다.
S912에서, 검출부(300)는 학습용 데이터를 기반으로 신경망을 학습하고, 상기 학습된 신경망을 그리드 서치, 매뉴얼 서치 및 5-fold 교차 검증 중 적어도 하나의 방법으로 검증한다. S914에서, 검출부(300)는 데이터 입출력의 액세스 패턴, 신경망에 포함된 히든 레이어의 수, 입력 레이어, 출력 레이어 및 상기 히든 레이어에 포함된 노드의 수에 따라 서로 다르게 학습된 신경망 중에서 가장 우수한 성능을 나타내는 신경망을 선택할 수 있다. S916에서, 데이터 입출력 포화 검출 장치(10)는 상기 선택된 신경망 모델의 정확도를 테스트용 데이터로 테스트할 수 있다.
상기 설명된 본 발명의 일 실시예의 방법의 전체 또는 일부는, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 기록 매체의 형태(또는 컴퓨터 프로그램 제품)로 구현될 수 있다. 여기에서, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)를 포함할 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다.
또한, 본 발명의 일 실시예에 따르는 방법의 전체 또는 일부는 컴퓨터에 의해 실행 가능한 명령어를 포함하며, 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다.
본 명세서에서의 부(means) 또는 모듈(Module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다. 다시 말해, 부(means) 또는 모듈(Module)은 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
따라서 본 발명의 일 실시예에 따르는 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (20)

  1. 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 특징 정보 산출부; 및
    상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 검출부; 를 포함하는 데이터 입출력 포화 검출 장치.
  2. 제1항에 있어서, 특징 정보 산출부는
    상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성하는 조합 데이터 생성부; 를 더 포함하고,
    상기 입출력 특징 정보는 상기 생성된 조합 데이터를 포함하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  3. 제1항에 있어서, 상기 데이터 입출력 특성은
    상기 데이터 입출력 유닛의 블록 사이즈, 상기 데이터 입출력 유닛의 수, 상기 데이터 입출력의 액세스 패턴 및 상기 데이터 입출력의 혼합비 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  4. 제2항에 있어서,
    상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리하는 전처리부; 를 더 포함하고,
    상기 검출부는 상기 전처리된 조합 데이터를 이용하여 상기 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  5. 제2항에 있어서, 상기 검출부는
    상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습하는 신경망 학습부; 를 더 포함하고,
    상기 학습된 신경망을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  6. 제5항에 있어서, 상기 검출부는
    상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증하는 검증부; 를 더 포함하고,
    상기 검증된 결과를 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  7. 제5항에 있어서, 상기 신경망 학습부는
    데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성하는 포화 함수 생성부; 를 더 포함하고,
    상기 생성된 포화 함수를 이용하여 상기 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  8. 제7항에 있어서, 상기 신경망 학습부는
    상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 하는 레이블링부; 를 더 포함하고,
    상기 레이블링된 학습용 데이터를 이용하여 상기 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  9. 제5항에 있어서, 상기 신경망 학습부는
    상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하는 파라미터 업데이트부; 를 더 포함하고,
    상기 업데이트된 파라미터들을 미리 결정하여 상기 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  10. 제1항에 있어서, 상기 입출력 특징 정보는
    데이터 입출력 요청에 따른 읽기 횟수, 상기 데이터 입출력 요청에 따른 쓰기 횟수, 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 읽기 횟수, 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 쓰기 횟수, 상기 데이터 입출력 요청에 따른 읽기 사용 대역폭, 상기 데이터 입출력 요청에 따른 쓰기 사용 대역폭, 상기 데이터 입출력 요청이 저장된 큐(Queue)의 평균 길이, 입출력 데이터의 평균 사이즈 및 상기 데이터 입출력에 걸리는 평균 시간 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  11. 제9항에 있어서, 상기 신경망 학습부는
    상기 데이터 입출력의 액세스 패턴, 상기 복수개의 레이어의 수 및 상기 레이어에 포함된 히든 레이어의 수에 따라 서로 다른 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  12. 제11항에 있어서, 상기 신경망은
    상기 신경망에 포함된 노드 및 상기 노드 사이의 연결 강도에 관한 파라미터들의 가중합을 입력으로 하는 활성화 함수를 이용하여 상기 데이터 입출력의 포화 여부를 출력하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  13. 제6항에 있어서, 상기 검증부는
    상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 그리드 서치, 매뉴얼 서치 및 교차 검증 중에서 적어도 하나의 검증 방법으로 검증하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  14. 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 단계; 및
    상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 단계; 를 포함하는 데이터 입출력 포화 검출 방법.
  15. 제14항에 있어서, 상기 특징 정보를 산출하는 단계는
    상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성하는 단계; 를 더 포함하고,
    상기 생성된 조합 데이터를 상기 입출력 특징 정보로서 산출하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  16. 제15항에 있어서,
    상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리하는 단계; 를 더 포함하고,
    상기 전처리된 조합 데이터를 이용하여 상기 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  17. 제15항에 있어서, 상기 검출하는 단계는
    상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습하는 단계; 및
    상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증하는 단계; 를 더 포함하고,
    상기 검증된 결과를 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  18. 제17항에 있어서, 상기 학습하는 단계는
    데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성하는 단계;
    상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 하는 단계; 및
    상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하는 단계; 를 더 포함하고,
    상기 업데이트된 파라미터들을 미리 결정하여 상기 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  19. 제17항에 있어서,
    상기 검증하는 단계는 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 그리드 서치, 매뉴얼 서치 및 교차 검증 중에서 적어도 하나의 검증 방법으로 검증하고,
    상기 학습하는 단계는 상기 데이터 입출력의 액세스 패턴, 상기 복수개의 레이어의 수 및 상기 레이어에 포함된 히든 레이어의 수에 따라 서로 다른 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  20. 프로세서에 의해 실행되는 것을 통하여 제14항 내지 제19항 중 어느 한 항에 기재된 데이터 입출력 포화 검출 방법을 실현하는 컴퓨터에서 판독 가능한 기록매체에 저장된 프로그램.
KR1020170155271A 2017-11-21 2017-11-21 데이터 입출력 포화 검출 장치 및 방법 KR102057219B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170155271A KR102057219B1 (ko) 2017-11-21 2017-11-21 데이터 입출력 포화 검출 장치 및 방법
PCT/KR2017/013846 WO2019103223A1 (ko) 2017-11-21 2017-11-29 데이터 입출력 포화 검출 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170155271A KR102057219B1 (ko) 2017-11-21 2017-11-21 데이터 입출력 포화 검출 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190057854A true KR20190057854A (ko) 2019-05-29
KR102057219B1 KR102057219B1 (ko) 2019-12-18

Family

ID=66630689

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170155271A KR102057219B1 (ko) 2017-11-21 2017-11-21 데이터 입출력 포화 검출 장치 및 방법

Country Status (2)

Country Link
KR (1) KR102057219B1 (ko)
WO (1) WO2019103223A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021054572A1 (ko) * 2019-09-16 2021-03-25 삼성전자주식회사 디스플레이 장치 및 이의 영상 처리 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112986950A (zh) * 2020-12-25 2021-06-18 南京理工大学 基于深度学习的单脉冲激光雷达回波特征提取方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100083411A (ko) 2009-01-13 2010-07-22 삼성전자주식회사 I/o 리퀘스트 핸들링 방법 및 이를 이용한 솔리드 스테이트 드라이브

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8479214B2 (en) * 2008-09-30 2013-07-02 Microsoft Corporation Hardware throughput saturation detection
US9766818B2 (en) * 2014-12-31 2017-09-19 Samsung Electronics Co., Ltd. Electronic system with learning mechanism and method of operation thereof
KR102449837B1 (ko) * 2015-02-23 2022-09-30 삼성전자주식회사 신경망 학습 방법 및 장치, 및 인식 방법 및 장치
US9886195B2 (en) * 2016-01-14 2018-02-06 Microsoft Technology Licensing, Llc Performance-based migration among data storage devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100083411A (ko) 2009-01-13 2010-07-22 삼성전자주식회사 I/o 리퀘스트 핸들링 방법 및 이를 이용한 솔리드 스테이트 드라이브

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021054572A1 (ko) * 2019-09-16 2021-03-25 삼성전자주식회사 디스플레이 장치 및 이의 영상 처리 방법

Also Published As

Publication number Publication date
WO2019103223A1 (ko) 2019-05-31
KR102057219B1 (ko) 2019-12-18

Similar Documents

Publication Publication Date Title
CN108509324B (zh) 选择计算平台的系统和方法
EP3779802A1 (en) Methods, systems, articles of manufacture and apparatus to map workloads
CA3090095C (en) Methods and systems to determine and optimize reservoir simulator performance in a cloud computing environment
US9229838B2 (en) Modeling and evaluating application performance in a new environment
US11847446B2 (en) Predictive build quality assessment
CN111026664B (zh) 基于ann的程序检测方法和检测系统及应用
Lyu et al. An empirical study of the impact of data splitting decisions on the performance of aiops solutions
US8359291B2 (en) Architecture-aware field affinity estimation
US20140201114A1 (en) Device of managing distributed processing and method of managing distributed processing
US8245084B2 (en) Two-level representative workload phase detection
US9542294B2 (en) Method to apply perturbation for resource bottleneck detection and capacity planning
KR20190057854A (ko) 데이터 입출력 포화 검출 장치 및 방법
CN116450486A (zh) 多元异构计算系统内节点的建模方法、装置、设备及介质
US20190101911A1 (en) Optimization of virtual sensing in a multi-device environment
CN113808132A (zh) 三维网络模型质量检测方法、装置和计算机设备
CN106909485A (zh) 用于确定存储系统性能下降的原因的方法和设备
Noorshams et al. Enriching software architecture models with statistical models for performance prediction in modern storage environments
JP5765266B2 (ja) 性能評価方法、情報処理装置およびプログラム
Wang et al. Anthropomorphic diagnosis of runtime hidden behaviors in OpenMP multi-threaded applications
Abdelgawad et al. BERTPerf: Inference Latency Predictor for BERT on ARM big. LITTLE Multi-Core Processors
WO2019103773A1 (en) Automatically identifying alternative functional capabilities of designed artifacts
Zhang et al. LOCP: Latency-optimized channel pruning for CNN inference acceleration on GPUs
CN117909199A (zh) 性能测定方法、装置、设备,负载均衡方法,系统及介质
Kim et al. Neural network for saturation prediction of solid state drives
CN117435451A (zh) 移动边缘计算中虚拟计算单元的功耗和性能模型建立方法

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