멀티코어 환경에서 SEDA 기반 메시지 처리기의 수행함수 특성을 고려한 쓰레드 스케줄링 기법
- 주제(키워드) SEDA , 리눅스 , 쓰레드 스케쥴링 , 로드 밸런싱
- 발행기관 서강대학교 일반대학원
- 지도교수 박성용
- 발행년도 2016
- 학위수여년월 2016. 8
- 학위명 석사
- 학과 및 전공 일반대학원 컴퓨터공학과
- 실제URI http://www.dcollection.net/handler/sogang/000000060017
- 본문언어 한국어
- 저작권 서강대학교 논문은 저작권보호를 받습니다.
초록/요약
메시지 처리기란 다수의 클라이언트로부터 수신된 다양한 포맷의 메시지에 대해 변환, 필터링 등의 처리를 한 후 목적지로 전달하는 서버 소프트웨어를 말한다. 기존 메시지 처리기는 한 메시지가 수신되었을 때 한 쓰레드가 배정되어 일련의 함수들을 순차적으로 실행해 그 처리를 하였다. 그러나 이 방식은 어떤 함수의 수행시간이 긴 경우, 해당 함수와 의존성이 없고 비교적 짧게 처리될 수 있는 함수도 이 함수가 끝난 후 순차적으로 수행되기 때문에 처리 응답 시간은 길어지고, 단위 시간 당 메시지 처리량이 작아지는 문제가 있었다. 이런 문제를 해결하기 위해 본 논문에서는 의존성이 없는 함수들은 병렬 처리가 될 수 있도록 함수 별로 쓰레드를 배정하는 방식의 SEDA 기반 메시지 처리기를 설계하였다. SEDA(The Stage Event Driven Architecture)는 고성능 네트워크 처리를 위한 아키텍처로써 SEDA 기반 메시지 처리기에서는 각 수행함수 별로 cpu 연산을 주로 하는 cpu bound된 특성을 가지거나, 디스크에 자주 접근해 입출력 대기를 많이 하는 io bound된 특성을 가진다. 그런데 이런 함수들의 특성을 구별함이 없이, 기존 리눅스 스케줄러를 사용하는 경우 자원의 로드 밸런스가 떨어지고 단위 시간 당 메시지 처리량이 적어지는 문제가 발생할 수 있다. 따라서 본 논문에서는 수행 함수의 특성을 고려한 쓰레드 매핑 기법을 제안한다. 성능 평가 결과 io bound한 함수가 특정 비율 이상 있을 경우, 기존 스케줄링 방식보다 로드 밸런스가 잘 맞으며 메시지 수신량에 따라 0~72%까지 성능 향상을 보였다.
more

