OS 서비스 스케일러빌러티 연구

매니코어OS
이동: 둘러보기, 검색

매니코어 환경에서 운영체제 커널의 스케일러빌리티 연구뿐만 아니라, 운영체제 서비스 기능의 성능 문제도 다루고자 한다. 먼저 고려된 서비스는 fakeroot이다. Fakeroot는 chroot(change root)와 유사한 서비스이지만 차이점은 자신의 환경을 root로 만들어 준다. 이 fakeroot는 주로 개발자가 리눅스 패키지를  빌더할 때 사용하는 서비스이다. 데비안와 같이 7,000 ~ 8,000개의 패키지로 구성된 경우, CPU가 많은 환경에서 빠르게 빌더를 하면 편리하다. 하지만 fakeroot 서비스 환경에서 많은 코어를 사용하더라도 성능의 스케일러빌러티가 없기 때문에, 이 문제점을 개선하고자 한다. 다음 실험 그래프의 환경은 80코어 시스템이며,  리눅스 3.16.7 버전이다. Fakeroot 환경에서 빌더 성능이 스케일러블하지 못한 것을 보여준다.

 
RTENOTITLE

Fakeroot 서비스가 스케일러블하지 못한 이유는 1) 단일 큐 구조와 2) 단일 쓰레드 구조의 데몬으로 구현되었기 때문이다. 따라서 먼저 손쉽게 이 문제를 해결할 수 있는 방법으로 아래 그림과 같이 멀티 큐와 다중 쓰레드 구조로 개발하였습니다.

 
RTENOTITLE

이렇게 새롭게 디자인된 fakeroot는 스케일러블한 성능을 보이고 있다.

 
RTENOTITLE

지금까지 fakeroot 서비스 실험은 tmpfs를 활용하였으며, 즉 파일 시스템 성능을 배제하고 진행되었지만, 개발될 스케일러블 파일 시스템을 포함하여 추후 fakeroot의 스케일러빌러티 등 성능 실험을 추진할 계획이다.