검색 : [ author: Young Ik Eom ] (29)

안드로이드 시스템에서 CPU 성능 간섭을 완화하기 위한 데드라인 태스크 관리 기법

이정웅, 이태형, 엄영익

http://doi.org/10.5626/JOK.2020.47.1.11

안드로이드 리눅스 커널에서는 대부분의 작업이 공평하게 수행되기 때문에 시간 민감성이 있는 응용의 수행에 지연이 발생할 수 있다. 특히 미디어 데이터 처리나 지문인식과 같은 생체 인식에 지연이 발생하면 사용자의 불편을 초래하기 때문에, 시간적 제약이 있는 작업들을 데드라인 태스크로 수행할 필요가 있다. 그러나 현재 안드로이드 환경에서 데드라인 스케줄러를 사용할 경우 두 가지 문제점이 발생할 수 있다. 첫째로 데드라인 태스크가 수행되면서 CPU의 소모전류를 크게 증가시킬 수 있으며, 둘째로 데드라인 태스크의 높은 우선순위로 인해 기존에 수행 중이던 일반 태스크의 성능저하를 유발할 수 있다. 본 논문에서는 안드로이드 환경에서 일반 태스크에 주는 영향을 감소시키면서 소모전류를 높이지 않고 데드라인 태스크를 수행하는 방법을 제안한다. 실험 결과 제안 기법이 기존 데드라인 스케줄러 대비 약 10%의 성능을 향상시켰으며, CPU 주파수를 효과적으로 사용해 소모전류를 증가시키지 않음을 확인하였다.

비휘발성 메모리 기반 블록 디바이스 드라이버 성능 향상을 위한 쓰기 감소 기법

김정한, 엄영익

http://doi.org/10.5626/JOK.2019.46.10.981

최근 NVRAM(Non-Volatile Memory)이 플래시 스토리지 및 DRAM과 비교하여 성능, 가격측면의 경쟁력을 갖추게 되면서 차세대 스토리지로써 새롭게 주목받고 있다. NVRAM을 스토리지로 활용하기 위해서는 기존 파일 시스템 계층 또는 블록 디바이스 계층을 개선하는 방법이 존재한다. 이 중에서도 블록 계층을 수정하는 방법은 파일 시스템 및 페이지 캐시 계층의 변경이 필요 없기 때문에 전체 시스템의 호환성 측면에서 장점을 갖는다. 그러나, 이와 같은 접근은 NVRAM을 블록 단위로 제어하기 때문에 바이트 접근이 가능한 NVRAM의 특성을 고려할 때 내구성 및 성능 측면에서 효과적이지 않다. 이에 본 논문에서는 파일 시스템을 고려하면서 블록 단위 쓰기를 최소화하는 NVRAM 블록 디바이스 드라이버를 제안한다. 제안하는 블록 쓰기 감소 기법은 파일 시스템의 구조에 따라 블록 타입을 분류하고, XOR 연산을 활용한 블록 변경량 비교 과정을 통해서 부분 쓰기를 제공한다. 제안 기법을 리눅스 커널의 NVRAM 블록 계층에 적용하여 다양한 워크로드에서 평가한 결과 기존 블록 단위 쓰기와 비교하여 쓰기량이 최대 90%까지 감소함을 확인하였다.

압축 기반 파일 시스템 데이터 일관성 유지 기법

강동현, 이상원, 엄영익

http://doi.org/10.5626/JOK.2019.46.9.885

데이터 일관성 메커니즘은 시스템 오류 및 정전으로 인해 데이터가 손상되지 않도록 방지하기 위한 파일 시스템의 중요한 컴포넌트이다. 그러나, Ext4 파일 시스템의 기본 저널 모드는 성능상의 이유로 일반 데이터를 제외한 메타 데이터에 대한 일관성만을 보장한다. 즉, 기본 저널 모드는 파일 시스템의 전체 데이터에 대한 일관성을 완벽하게 보장하지 않는다. 이에, 본 논문에서는 파일 시스템의 데이터 일관성을 완벽하게 보장하면서 Ext4의 기본 저널 모드에 비해 향상되거나 유사한 성능을 제공하는 새로운 데이터 일관성 유지 기법을 제안한다. 제안 기법은 압축을 통해서 저널 영역에 요청되는 쓰기 요청의 양을 감소시키고 fsync() 시스템 콜 호출 횟수를 반으로 감소시킨다. 제안 기법을 평가하기 위해, 우리는 jbd2의 일부 코드를 수정하였으며, SSD와 HDD 환경에서 제안 기법의 성능을 Ext4의 두가지 저널 모드와 비교하였다. 실험 결과, 제안 기법이 기본 저널 모드 대비 최대 8.3배 시스템의 성능을 향상시킨다는 사실을 확인하였다.

CPU 사용량을 고려한 고성능 저장장치 기반 가상화 시스템의 I/O 완료 처리 기법

이혜지, 이태형, 이민호, 송용주, 엄영익

http://doi.org/10.5626/JOK.2019.46.7.612

최근 Samsung Z-SSD 및 Intel Optane SSD와 같은 고성능 저장장치의 등장으로 인해 시스템의 I/O 성능 오버헤드가 저장장치에서 소프트웨어 I/O 계층으로 이동하였다. 이로 인해 하이퍼바이저 및 운영체제는 고성능 저장장치의 성능을 최대한 활용하기 위해 I/O 완료 처리 기법 중 하나인 폴링 방식의 효용성을 주목하고 있으며, 하이브리드 폴링(Hybrid Polling) 및 적응형 폴링(Adaptive Polling)과 같은 새로운 기법들을 적용하여 사용하고 있다. 본 논문은 QEMU-KVM 하이퍼바이저에서 제공하는 적응형 폴링 방식의 문제점을 설명한 뒤, 고성능 저장장치의 응답 시간을 최대한으로 활용하면서 CPU 사용량을 감소시키는 새로운 I/O 완료 처리 기법을 제안한다. 실험 결과, 제안된 기법은 64KB 이하 크기의 I/O 요청에 대해 기존 기법 대비 최대 5.3% 지연된 응답 시간을 보여주지만, CPU 사용량은 최대 39.7% 감소한 것을 확인할 수 있다.

TLC 낸드 플래시 기반 스토리지를 위한 효율적인 SLC 버퍼 관리 기법

권기록, 강동현, 엄영익

http://doi.org/10.5626/JOK.2018.45.7.611

최근, 스토리지의 가격 경쟁력 향상을 위해 TLC 낸드의 수요가 크게 증가하고 있다. TLC의 SLC/MLC 대비 낮은 성능의 한계를 극복하기 위하여, SLC 쓰기 버퍼를 채용한 TLC 낸드 기반의 스토리지가 제조사들에 의해 상용화되고 있다. 본 논문에서는 SLC 쓰기 버퍼를 채용하는 TLC 낸드 기반의 스토리지에서 파일시스템의 저널링 특성을 활용하여 성능을 향상하는 기법을 제안한다. 제안 기법은 실제스토리지 플랫폼인 OpenSSD에 구현되어 기존 기술의 성능과 비교하였으며, 기존 기법 대비 최대 65%의 스토리지 처리량 성능 향상을 확인하였다.

하둡 시스템의 네트워크 자원 사용량 감소를 위한 스트리밍 압축 기법

노승준, 엄영익

http://doi.org/10.5626/JOK.2018.45.6.516

최근, 하둡 시스템의 사용 빈도가 높아지면서 처리해야 하는 데이터의 양이 증가함에 따라 하둡 클러스터의 규모 또한 커지고 있다. 하둡 클러스터의 노드를 구성하는 프로세서, 메모리, 스토리지 등의 자원은 다른 노드들로부터 독립된 자원이며, 이는 하나의 노드에서 데이터 처리량이 많아져 노드 내부의 자원에 대한 사용량이 증가하여도 다른 노드의 데이터 처리 성능에 영향을 주지 않음을 의미한다. 하지만, 하둡 클러스터의 노드들을 연결하는 네트워크는 모든 노드가 사용하는 공유 자원이며, 이로 인해, 일부 노드의 네트워크 사용량이 증가하면 다른 노드가 사용할 수 있는 네트워크 자원이 줄어 하둡 시스템의 전체성능을 감소시킬 가능성이 있음을 의미한다. 본 논문에서는 하둡 시스템에서 쓰기 요청으로 발생되는 네트워크 사용량을 줄이기 위한 스트리밍 압축 기법을 제안하고 성능과 오버헤드를 측정한다. 실험 결과, 스트리밍 압축 기법을 사용함에 따라 네트워크 트래픽이 최대 56% 줄어드는 것을 확인하였다.

InnoDB 기반 DBMS에서 다중 버퍼 풀 오버헤드 분석

송용주, 이민호, 엄영익

http://doi.org/

대규모 웹 서비스의 등장으로 데이터의 규모가 점차 증가하는 추세이다. 이러한 대규모 데이터를 효율적으로 관리하기 위해 MySQL과 MariaDB와 같은 DBMS가 주로 사용되고 있으며, 이들은 데이터 관리를 위한 스토리지 엔진으로 InnoDB를 주로 사용한다. InnoDB는 ACID를 보장할 뿐만 아니라 대규모 데이터 처리에 적합하다는 장점이 있기 때문이다. InnoDB의 경우, I/O 성능 향상을 위해 버퍼 풀을 통해 데이터와 인덱스를 캐싱하며 락 경쟁(lock contention)을 줄이기 위해 다중 버퍼 풀을 지원한다. 그러나 다중 버퍼 풀 기법은 데이터 일관성 오버헤드를 증가시킨다. 본 논문에서는 다중 버퍼 풀 기법의 오버헤드를 분석한다. 실험 결과, 다중 버퍼 풀 기법을 사용함에 따라 락 경쟁이 최대 46.3%까지 완화되었지만 디스크 I/O와 fsync 명령이 증가하면서 DBMS의 처리량이 50.6%까지 떨어지는 현상을 확인하였다.

가상머신의 페이지 공유 기회를 향상시키기 위한 우선순위 큐 기반 힌트 관리 기법

남예지, 이민호, 이동우, 엄영익

http://doi.org/

대부분의 데이터 센터에서는 제한된 물리 자원을 효율적으로 사용하기 위해 가상화 기술을 이용하여 서버 통합을 시도하고 있다. 또한, 가상화 기술이 적용된 시스템에서는 가상머신 간의 중복된 내용의 페이지를 제거하기 위해 내용 기반의 페이지 공유 기법을 흔히 사용한다. 하지만, 기존의 메모리 공유기법의 경우 공유 가능한 페이지를 의미하는 힌트를 단순히 스택에 저장함으로써 해당 정보를 효율적으로 관리하지 못하는 단점이 있다. 본 논문에서는 가상화 시스템의 페이지 공유 기회를 향상시키기 위해 게스트에서 호스트로 전달된 힌트를 효율적으로 관리하기 위한 우선순위 큐 기반 힌트 관리 기법을 제안한다. 실험 결과를 보면 기존의 기법보다 제안기법이 효율적으로 힌트를 관리하여 공유 가능성이 낮은 힌트를 우선적으로 제거하는 것을 확인할 수 있다.

로그 구조 파일 시스템의 파일 단편화 해소를 위한 클리닝 기법

박종규, 강동현, 서의성, 엄영익

http://doi.org/

로그 구조 파일 시스템에서는 쓰기 작업을 처리할 때 새로운 블록들이 순차적으로 할당된다. 그러나, 다수의 프로세스가 번갈아가며 동기적 쓰기 작업을 요청할 경우, 파일 시스템 상에서는 각 프로세스가 생성한 파일이 단편화될 수 있다. 이 파일 단편화는 읽기 요청을 처리할 때 다수의 블록 I/O를 발생시키기 때문에 읽기 성능을 저하시킨다. 게다가, 미리 읽기 기능은 한 번에 요청되는 데이터의 양을 증가시킴으로써 성능 저하를 더욱 심화시킨다. 이에, 본 논문에서는 파일 단편화 문제를 해결하기 위해 로그구조 파일 시스템의 새로운 클리닝 기법을 제안한다. 제안 기법은 로그 구조 파일 시스템의 클리닝 과정 중 유효 데이터 블록을 아이노드 번호 순으로 정렬함으로써 한 파일의 데이터 블록들을 인접하게 재배치한다. 실험 결과, 제안한 클리닝 기법이 클리닝 전에 비해 약 60%의 파일 단편화를 제거하였고, 그 결과로 미리 읽기 기능을 적용했을 때 읽기 성능을 최고 21%까지 향상시키는 것을 확인하였다.

시스템 환경이 Filebench 벤치마크에 미치는 영향 분석

송용주, 김정훈, 강동현, 이민호, 엄영익

http://doi.org/

최근 낸드 플래시 메모리가 널리 보급됨에 따라 기존 파일 시스템의 한계를 보완하고 낸드 플래시 메모리의 장점을 활용하기 위한 파일 시스템 연구가 활발히 진행되고 있다. 이렇게 제안된 파일 시스템들에 대해서는, 일반적으로 벤치마크를 통해 성능 측정이 이루어진다. 서버나 모바일 환경에서 실제 시스템의 성능 측정이 어려울 경우, 벤치마크는 측정하고자 하는 실제 시스템에 대한 직접적인 성능 측정 대신 워크로드를 통해 재현된 환경에서 소프트웨어적 성능 측정을 가능하게 한다. 이 때, 성능 측정 환경이 실제 시스템이 아니기 때문에 측정하는 시스템 환경에 따라서 일정하지 않은 성능 측정 결과를 보인다. 이에 본 논문에서는 파일 시스템의 성능을 측정하는데 흔히 사용되는 벤치마크 중에서 Filebench를 이용하여 여러 가지 시스템 환경에 따른 성능 측정 결과를 살펴보고 측정 결과의 변동이 생기는 원인을 알아본다. 실험 결과, 캐시 내부에 벤치마크 I/O 외의 성능 측정에 불필요한 I/O가 많이 발생할수록 벤치마크의 성능 측정 결과가 떨어지는 것을 확인하였다. 또한 fsync 동작이 포함된 백그라운드 I/O를 동작시키는 경우에는 최대 98.2%의 성능 저하가 발생하는 것을 확인하였다.


Search




Journal of KIISE

  • ISSN : 2383-630X(Print)
  • ISSN : 2383-6296(Electronic)
  • KCI Accredited Journal

사무국

  • Tel. +82-2-588-9240
  • Fax. +82-2-521-1352
  • E-mail. chwoo@kiise.or.kr