DOI QR코드

DOI QR Code

I/O Performance Analysis about Memory Allocation of the UBIFS

UBIFS 메모리 할당에 관한 I/O 성능 분석

  • 이재강 (경북대학교 IT대학 컴퓨터학부) ;
  • 오세진 (경북대학교 IT대학 컴퓨터학부) ;
  • 정경호 (경북대학교 IT대학 컴퓨터학부) ;
  • 윤태진 (경운대학교 IT에너지대학 모바일공학과) ;
  • 안광선 (경북대학교 IT대학 컴퓨터학부)
  • Received : 2013.05.24
  • Accepted : 2013.07.29
  • Published : 2013.08.31

Abstract

Flash memory is mostly used on smart devices and embedded systems because of its nonvolatile memory, low power, quick I/O, resistant shock, and other benefits. Generally the typical file systems base on the NAND flash memory are YAFFS2, JFFS2, UBIFS, and etc. In this paper, we had variously made an experiment regarding I/O performance using our schemes and the UBIFS of the latest Linux Kernel. The proposed I/O performance analyses were classified as a sequential access and a random access. Our experiment consists of 6 cases using kmalloc(), vmalloc(), and kmem_cache(). As a result of our experiment analyses, the sequential reading and the sequential rewriting increased by 12%, 11% when the Case 2 has applied vmalloc() and kmalloc() to the UBI subsystem and the UBIFS. Also, the performance improved more by 7.82%, 6.90% than the Case 1 at the random read and the random write.

플래시 메모리는 비휘발성, 저전력, 빠른 입출력, 충격에 강함 등과 같은 많은 장점으로 스마트 기기 및 임베디드 시스템의 저장매체로 많이 사용되고 있다. 낸드(NAND) 플래시에 사용되는 파일시스템(File System)은 대표적으로 YAFFS2, JFFS2, UBIFS 등이 있다. 본 논문에서는 최근 리눅스 커널에 포함된 UBIFS 파일시스템에 메모리 할당을 달리하여 I/O 성능을 실험한다. 제안한 I/O 성능 분석은 순차접근 방법과 랜덤접근으로 분류하고, 메모리 할당은 kmalloc(), vmalloc(), kmem_cache()를 사용하여 6가지 유형으로 나누어 실험하였다. 실험을 통하여 6가지 유형 중 UBI 서브시스템과 UBIFS에 vmalloc()과 kmalloc()을 적용한 2번째 유형이 순차읽기 12.45%, 순차다시쓰기 11.23%의 빠른 성능을 보였으며 랜덤 읽기에는 7.82% 랜덤 쓰기에서는 6.90%의 성능 향상을 보였다.

Keywords

References

  1. H. Kim, N. Agrawal, and C. Ungureanu, "Revisiting storage for smartphones," in Proc. of the 10th USENIX conference on File and storage technologies, 2012.
  2. 이영석, 이창희, 정경호, 김용환, 안광선, "NAND 플래시 파일시스템의 I/O 스케줄러 성능분석", 한국산업정보학회논문지, 제18권, 제2호, pp.27-34, 2013. https://doi.org/10.9723/jksiis.2013.18.2.027
  3. F. Douglis, R .Caceres, F. Kaashoek, K. Li, B. Marsh, and J. A. Tauber, "Storage Alter-natives for Mobile Computers," Proceedings of the 1st Symposium on Operating System Design and Implementation(OSDI), pp. 25-37, 1994.
  4. MTD(Memory Technology Devides), "http://www.linux-mtd.infradead.org/doc/general.html".
  5. YAFFS2(The Yet Another Flash File System2), "http://www.yaffs.net/".
  6. JFFS2(Journaling Flash File System2), "http://www.sourceware.org/jffs2/".
  7. UBIFS(Unsorted Block Images File-System). "http://www.linux-mtd.infradead.org/doc/ubifs.html".
  8. UBI(Unsorted Block Images), "http://www.linux-mtd.infradead.org/doc/ubi.html".
  9. 한동훈, "리눅스 커널 프로그래밍", 한빛미디어, 2007.
  10. J. Bonwick, "The Slab Allocator: An Object-Caching Kernel Memory Allocator", USENIX Summer 1994 Technical Conference, pp. 87-98, 1994.
  11. Anatomy of the Linux slab allocator, "https://www.ibm.com/developerworks/library/l-linux-slab-allocator/".
  12. benchmarking, "http://sysbench.sourceforge.net".
  13. 최훈, 최유정, "스마트폰 애플리케이션 품질이 신뢰 및 지속적 사용의도에 미치는 영향:성별의 조절효과를 중심으로", 한국산업정보학회논문지, 제16권, 제4호, pp.151-162, 2011.
  14. 김순철, "가변 비트율 주문형 비디오 서버에서 자원 활용률을 높이기 위한 버퍼 관리기법", 한국산업정보학회논문지, 제9권, 제3호, pp.1-10, 2004.