37
The Linux Scheduler A Decade of Wasted Cores 고민영 [email protected]

The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 [email protected] 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

  • Upload
    others

  • View
    16

  • Download
    1

Embed Size (px)

Citation preview

Page 1: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

The Linux SchedulerA Decade of Wasted Cores

고민영[email protected]

Page 2: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

대학원 운영체제 전공(석사과정) 모바일 / 임베디드를 주로 함 Ubuntu 안 씀 (연구실 서버가 ubunt라서 어쩔 수 없이 가끔 씀)

Page 3: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

“And you have to realize that there are not very many things that have aged as well as the

scheduler. Which is just another proof that scheduling is easy.”

Linus Torvalds, 2001

Page 4: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

배경• TPC-H benchmark를 64-Core 실행• ???• 스케줄러 없이 코어에 강제로 작업을 할당한 경우에 성능이 더 좋게 나옴

Page 5: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

배경왜? 메모리 Locality

때문인가?

락과 관련된 동기화 이슈인가?

-

캐시 미스 숫자는 비슷-

여러 번 반복실험 및 오랜 시간에

걸쳐 관찰해도 동일한 현상 스위칭 오버헤드인가?- 스위칭 오버헤드는 미미

Page 6: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

배경그래서 원인 분석을 위한 도구를 개발했다.- Online sanity checker- “No core remain idle while another core is overload.”- 최대 100ms 주기로 모니터링

- Scheduler Visualization tool

Page 7: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

4가지 버그1. Group Imbalance

2. Overload on Wakeup

3. Scheduling Group Construction

4. Missing Scheduling Domains

Page 8: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

4가지 버그1. Group Imbalance

2. Overload on Wakeup

3. Scheduling Group Construction

4. Missing Scheduling Domains

Page 9: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

Page 10: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

Page 11: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

Page 12: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

Page 13: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

Page 14: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

Page 15: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

Page 16: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

해결책: 평균 대신 가장 로드가 적은 그룹을 밸런싱

Page 17: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

해결책: 평균 대신 가장 로드가 적은 그룹을 밸런싱

Page 18: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Group Imbalance

해결책: 평균 대신 가장 로드가 적은 그룹을 밸런싱

13% 속도 증가!

Page 19: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

4가지 버그1. Group Imbalance

2. Overload on Wakeup

3. Scheduling Group Construction

4. Missing Scheduling Domains

Page 20: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Overload on Wakeup

Page 21: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Overload on Wakeup

Short Term Idle: 잠깐 일이 없는 것Long Term Idle: 일 없다고 그냥 뻗어버리는 것

Page 22: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Overload on Wakeup

Page 23: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Overload on Wakeup

해결책: 가장 마지막에 Idle상태로 진입한 Core 부터 깨움14.2% 성능 향상

Page 24: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

4가지 버그1. Group Imbalance

2. Overload on Wakeup

3. Scheduling Group Construction

4. Missing Scheduling Domains

Page 25: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Scheduling Group Construction

Numa (Non-Uniform Memory Access)

Page 26: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Scheduling Group Construction

Page 27: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Scheduling Group Construction

Page 28: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Scheduling Group Construction

Page 29: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Scheduling Group Construction

Page 30: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Scheduling Group Construction

Page 31: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Scheduling Group Construction

Page 32: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Scheduling Group Construction

해결책: NUMA를 고려하지 않고 task 가져오기

Page 33: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

4가지 버그1. Group Imbalance

2. Overload on Wakeup

3. Scheduling Group Construction

4. Missing Scheduling Domains

Page 34: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Missing Scheduling Domains

리얼 버그

Page 35: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

Missing Scheduling Domains

Procfs, Sysfs에서 CPU CORE를 껐다 키면, 가용 CPU를 기록하는 전역 변수가 갱신이 안 되서 CPU를 활용하지 못함.

해결책: 버그 수정

Page 36: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

결과

Page 37: The Linux Scheduler - Ubuntu KR...The Linux Scheduler A Decade of Wasted Cores 고민영 hedone21@gmail.com 대학원 운영체제 전공(석사과정) 모바일 / 임베디드를

감사합니다.