아파치 메소스의 DRF 관련
최대 작업 수를 실행하고 자원을 가장 효율적으로 사용하기 위해 두 사용자의 자원을 어떻게 분배할 것인가 이다. 기존 알고리즘을 사용한다면 두 사용자 모두에게 동일한 크기의 자원을 할당할 수 있지만 이는 원하는 것이 아니다. 이러한 상황을 이기종 환경(heterogeneous environment)이라고 부른다.
아파치 메소스는 DRF(Dominant Resource Fairness)라는 알고리즘을 구현하며, DRF 알고리즘을 메소스의 자원 할당의 기본 정책으로 사용하고 있다.
대개 DRF 알고리즘을 대학 수준의 운영 체제 과목에서 가르친다. 작업 스케줄링(job scheduling)은 CPU에만 제한되지 않으며 메모리, 네트워크, 디스크와 같은 여러 자원이 존재한다. 그러나 자원 유형을 줄여 문제를 단순화하면 어떤 작업은 프로세서 집약적이고 다른 작업은 디스크 집약적이고, 또 다른 작업은 메모리 집약적이기 때문에 최대-최소 공정성(max-min fairness) 알고리즘이 실패(강력하지 않고 효율적이지 않음)하는 것을 볼 수 있다.
여기에 이기종 환경의 각 사용자에게 자원을 공평하게 분배할 수 있는 자원 스케줄링 메커니즘이 필요하다. 요컨대 DRF 알고리즘은 이기종 자원을 가진 시스템에 최대-최소 공평성 알고리즘을 적용한 것이다.
자원이 사용자 간에 동등하게 분배되지 않으면 DRF 알고리즘에 가중치가 적용된다고 말한다. 공유는 사용자별, 자원 수준별로 가중치를 적용할 수 있으며 사용자별이 더 많이 사용된다.
가중치가 적용된 알고리즘에는 가중치 외에 다음 기능을 더 가진다.
* 공정한 분배(envy freeness) : DRF 알고리즘은 다른 사용자의 자원 할당을 부러워할 필요가 없기 때문에 자유롭다. 가장 낮은 지배 점유율을 가진 사용자에게 자원을 제공하기 때문에 모든 사용자는 동일한 기회를 가질 수 있다.
'scribbling' 카테고리의 다른 글
간단한 http client - okhttp (0) | 2017.04.28 |
---|---|
아파치 오로라(Apache Aurora) (0) | 2017.04.21 |
[펌] 스칼라 컨퍼런스에서 Web과 Stream 선호도 (0) | 2017.04.10 |
[펌] 메소스 - 컨테이너 자료 (0) | 2017.04.07 |
메소스(mesos) 공부 (0) | 2017.03.27 |