402 0

User-level Prefetcher Using inotify on SSD

Title
User-level Prefetcher Using inotify on SSD
Other Titles
SSD기반 inotify를 이용한 사용자 수준 프리페처
Author
Oseok Kwon
Alternative Author(s)
권오석
Advisor(s)
강경태
Issue Date
2018-02
Publisher
한양대학교
Degree
Master
Abstract
An application faces extra latency when they launch or access a disk to load data into the memory. To alleviate this delay in Linux-based operating systems, a user-level disk prefetching framework called Notifetcher has been introduced. It employs an inode-notification inotify API (Application Programming Interface) that provides an efficient way to trace actions in the filesystem on Linux and reports those actions to applications in real-time. During an initial training run, Notifetcher records when data is read by an application, and also records how many seconds an application uses CPU for doing I/O. Subsequently, it searches the I/O event just ahead of passages where a lot of data is requested and finds events which can be used to trigger preloading. When the application is run again and a trigger event is reported (by the inotify API), the corresponding data is read into the page cache. Notifetcher has a low overhead because disk reads only have to be monitored during training, and it requires no modification of Linux because it runs at the user level. Five benchmark applications were run on a PC with an SSD: Notifetcher reduced launch times by up to 40% (an average of 11.48%) and post-launch data loading times by up to 9% (an average of 5.25%).; 응용 프로그램은 처음 실행되거나 디스크에 있는 데이터를 메모리로 복사할 때 디스크 접근이 발생해 추가적인 대기시간을 갖는다. Linux 기반 운영 체제의 응용 프로그램에서 발생하는 지연시간을 줄이기 위해 사용자 수준 디스크 프리페치 프레임 워크인 Notifetcher를 도입하였다. Notifetcher는 inotify API를 이용하여 파일 시스템에서 발생하는 I/O 이벤트를 실시간으로 추적하고 적절한 데이터를 페이지 캐시로 복사해 응용 프로그램의 응답시간을 개선한다. Notifetcher는 응용 프로그램의 I/O 패턴을 얻기위해 응용 프로그램의 I/O 요청 정보와 I/O요청이 발생한 시간, 응용 프로그램이 I/O를 처리하기 위해 사용한 CPU 시간을 수집한다. 이후, I/O 요청이 급격하게 증가하는 구간의 I/O 이벤트를 찾아 프리페치를 위한 트리거로 지정하고 이후에 발생하는 I/O 이벤트를 프리페치 할 수 있도록 로그로 기록한다. 응용 프로그램이 다시 실행되어 inotify API로부터 Notifetcher에게 I/O 이벤트가 보고되면, 그 이벤트와 상응하는 데이터를 페이지 캐시로 복사해 프리페치를 수행한다. 그 결과, Notifetcher는 데이터 수집을 위한 모니터링과 프리페치를 분리해 CPU, Memory 오버헤드를 줄였고, 사용자 수준에서 데이터를 수집하고 프리페치를 수행하여 Linux 시스템의 수정 없이 응답시간의 개선을 보였다. 실험은 Intel Pentium G4560 CPU, 16GB RAM, Intel 535 series 240GB SSD와 Ubuntu 16.04, Linux kernel 4.10.0 환경에서 진행되었다. 다섯 가지 응용 프로그램의 실험 결과 응용 프로그램의 실행 시간은 최대 40% (평균 11.48%)감소하였고, 런타임 로딩 시간은 최대 9% (평균 5.25%) 감소하였다.
URI
https://repository.hanyang.ac.kr/handle/20.500.11754/68661http://hanyang.dcollection.net/common/orgView/200000432246
Appears in Collections:
GRADUATE SCHOOL[S](대학원) > COMPUTER SCIENCE & ENGINEERING(컴퓨터공학과) > Theses (Master)
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

BROWSE