MOC: 다중 오브젝트 클러스터링을 통한 BSD VM의 페이지-아웃 성능 향상

MOC: A Multiple-Object Clustering Scheme for High Performance of Page-out in BSD VM

  • 양종철 (광운대학교 컴퓨터과학과) ;
  • 안우현 (광운대학교 컴퓨터과학과) ;
  • 오재원 (가톨릭대학교 컴퓨터정보공학부)
  • 발행 : 2009.12.15

초록

BSD 가상 메모리 시스템(BSD VM)은 페이지-아웃 시 디스크 I/O 횟수를 줄이기 위해 클러스터링 기법을 사용한다. 이 기법은 페이지-아웃 대상 페이지와 가상 메모리 공간에서 인접한 변경 페이지들을 그 대상 페이지와 함께 클러스터(그룹)를 만들어 한 번의 디스크 I/O로 디스크에 저장한다. 하지만 응용 프로그램이 가상 메모리 공간에서 서로 인접하지 않은 다수의 페이지들을 변경하면 클러스터들의 크기가 작아져 클러스터링의 효과가 감소된다. 이 문제점을 해결하기 위해 본 논문에서는 Multiple-Object Clustering(MOC) 기법을 제안한다. MOC는 클러스터별로 디스크 I/O를 하는 대신 여러 클러스터들을 모아 단일 디스크 쓰기로 페이지-아웃시킨다. 따라서 이 페치지-아웃 방식은 디스크 I/O 횟수를 감소시켜 시스틴 성능을 크게 향상시킨다. MOC는 성능 검증을 위해 FreeBSD 6.2 운영체제 커널에서 구현되었다. NS2, Scimark2 SOR, nbench LU 벤치마크를 통한 MOC 성능 측정 결과 기존 BSD VM보다 MOC의 실행 씨간이 9~45% 단축되었다.

The virtual memory system in 4.4 BSD operating systems exploits a clustering scheme to reduce disk I/Os in paging out (or flushing) modified pages that are intended to be replaced in order to make free rooms in memory. Upon the page out of a victim page, the scheme stores a cluster (or group) of modified pages contiguous with the victim in the virtual address space to swap disk at a single disk write. However, it fails to find large clusters of contiguous pages if applications change pages not adjacent with each other in the virtual address space. To address the problem, we propose a new clustering scheme called Multiple-Object Clustering (MOC), which together stores multiple clusters in the virtual address space at a single disk write instead of paging out the clusters to swap space at separate disk I/Os. This multiple-cluster transfer allows the virtual memory system to significantly decrease disk writes, thus improving the page-out performance. Our experiments in the FreeBSD 6.2 show that MOC improves the execution times of realistic benchmarks such as NS2, Scimark2 SOR, and nbench LU over the traditional clustering scheme ranging from 9 to 45%.

키워드

참고문헌

  1. Bryant and O'Hallaron, Computer Systems: A Programmer's Perspective, pp.447-458, Prentice Hall, 2003.
  2. S. Jiang and X. Zhang, "LIRS: An efficient low inter-reference recency set replacement policy to improve buffer cache performance," ACM SIGMETRICS Conference, pp.31-42, 2002.
  3. N. Megiddo and D. S. Modha, "ARC: A selftuning, low overhead replacement cache," 2nd USENIX Conference on File and Storage Technologies (FAST 03), pp.115-130, 2003.
  4. S. Bansal and D. Modha, "CAR: Clock with Adaptive Replacement," 3rd USENIX Comference on File and Storage Technologies (FAST 04), pp.187-200, 2004.
  5. Y. Smaragdakis, S. Kaplan, and P. Wilson, "EELRU: simple and effective adaptive page replacement," ACM SIGMETRICS Conference, pp.122-133, 1999.
  6. S. Jiang, F. Chen and X. Zhang, "CLOCK-Pro: An Effective Improvement of the CLOCK Replacement," USENIX 2005 Annual Technical Conference, pp.323-336, 2005.
  7. Alma Riska, James Larkby-Lahet and Eric Riedel, "Evaluating Block-level Optimization Through the IO Path," USENIX Annual Technical Conference, pp.247-260, 2007.
  8. M. K. McKusick, K. Bostic, M. Karels, and J. Quarteman, The Design and Implementation of the 4.4BSD Operating System, Addison Wesley, 1996.
  9. Black D. Carter J. Feinberg G. MacDonald R, Sciver JV, Wang P, Mangalat S, and Sheinbrood E, "OSF/1 virtual memory improvements," USENIX Mach Symposium, pp.87-104, 1991.
  10. FreeBSD, FreeBSD home page. Web site: http://www.freebsd.org.
  11. M.K. McKusick and G. V. Neville-Neil, The Design and Implementation of the FreeBSD Operating System, p.190, Addison-Wesley, 2004.
  12. F. J. Corbato, "A Paging Experiment with the Multics System," MIT Project MAC Report MAC-M-384, 1968.
  13. M. K. McKusick and G. V. Neville-Neil, The Design and Implementation of the FreeBSD Operating System, p.616, Addison-Wesley, 2004.
  14. M. K. McKusick and G. V. Neville-Neil, The Design and Implementation of the FreeBSD Operating System, p. 179, Addison-Wesley, 2004.
  15. P. Domingues, P. Marques, L. Silva, "Resource usage of Windows computer laboratories," ICPP 2005 Workshops, pp.469-476, 2005.
  16. NS2 home page. Web site: http://www.isi.edu/nsnam/ns.
  17. Scimark2 benchmark home pape. Web site: http://math.nist.gov/scimark2.
  18. nbench benchmark home page. Web site: http://www.tux. org/~mayer/linux/bmark.html.
  19. O. Babaoglu and D. Ferrari, "Two-level replacement decision in paging stores," IEEE Transactions on Computers, vol.C-32, no.12, pp.1151-1159, 1983. https://doi.org/10.1109/TC.1983.1676176
  20. E. J. O'Neil, P.E.O'Neil, and G. Weikum, "The LRU-K page replacement alorithm for database disk buffering," ACM SIGMOD Conference, pp.297-306, 1993.
  21. T. Johnson and D. Shasha, "2Q: A low overhead high performance buffer management replacement algorithm," VLDB Conference, pp. 297-306, 1994.
  22. L. B. Sokolinsky, "LFU-K: An Effective Buffer Management Replacement Algorithm," DASFAA 2004, pp.670-681, 2004.
  23. D. Lee, J. Choi, J.-H. Kim, S. H. Noh, S. L. Min, Y. Cho, and C. S. Kim, "LRFU: A spectrum of policies that subsumes the least recently used and least frequently used policies," IEEE Transactions on Computers, vol.50, no.12, pp.1352-1361, 2001. https://doi.org/10.1109/TC.2001.970573
  24. R. Cervera, T. Cortes, and Y. Becerra, "Improving Application Performance through Swap Compression," USENIX Annual Technical Conference, pp.207-218, 1999.