Skip to content
unionxicPublic

About

EEVDF vs CFS: 리눅스 커널 스케줄러 비교 프로젝트

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux Scheduler Benchmark: EEVDF vs CFS

리눅스 커널 스케줄러(EEVDF vs CFS) 성능 비교 프로젝트

프로젝트 구조

Scheduler/
├── CFS/              # CFS (Completely Fair Scheduler) 벤치마크
│   ├── scripts/      # 벤치마크 실행 스크립트
│   ├── configs/      # 커널 파라미터 설정 파일
│   ├── results/      # 벤치마크 결과
│   └── README.md     # CFS 상세 가이드
│
└── EEVDF/            # EEVDF (Earliest Eligible Virtual Deadline First) 벤치마크
    ├── scripts/      # 벤치마크 실행 스크립트 (CFS와 동일 구조)
    ├── configs/      # 커널 파라미터 설정 파일
    ├── results/      # 벤치마크 결과
    └── README.md     # EEVDF 상세 가이드

벤치마크 도구

1. schbench

  • 목적: 레이턴시 측정
  • 메트릭: Wakeup Latency, Request Latency, RPS
  • 테스트: 4, 6, 8 스레드

2. hackbench

  • 목적: 시스템 오버헤드 측정
  • 메트릭: Context switches, CPU migrations, Page faults
  • 테스트: 4, 6, 8 그룹

3. 워크로드 시나리오

  • CPU-Bound
  • I/O-Bound
  • 혼합 워크로드
  • 고부하 컨텍스트 스위칭

4. 네트워크 벤치마크 (CFS)

  • TCP 연결 시간: p50/p90/p99 분포 측정
  • 양방향 동시 전송: 송신/수신 처리량
  • 소형 패킷 (64B): 작은 패킷 처리 성능
  • CPU 부하 + 네트워크: stress-ng 병행 시 처리량

빠른 시작

CFS 벤치마크

cd CFS
# 기본 벤치마크
./scripts/run_all_cfs.sh --basic

# 네트워크 벤치마크
./scripts/run_network_advanced.sh

# 최종 리포트 생성
./scripts/generate_final_report.sh

EEVDF 벤치마크

cd EEVDF
./scripts/run_all_eevdf.sh --basic

커널 파라미터 조정 실험

# CFS
cd CFS
./scripts/run_with_config.sh configs/low_latency.conf

# EEVDF
cd EEVDF
./scripts/run_with_config.sh configs/low_latency.conf

비교 분석

각 스케줄러별로 동일한 벤치마크를 실행한 후, 결과를 비교 분석합니다:

  1. 레이턴시 비교

    • CFS: CFS/results/schbench/schbench_results.txt
    • EEVDF: EEVDF/results/schbench/schbench_results.txt
  2. 오버헤드 비교

    • CFS: CFS/results/hackbench/hackbench_results.txt
    • EEVDF: EEVDF/results/hackbench/hackbench_results.txt
  3. 워크로드 시나리오 비교

    • CFS: CFS/results/workload_scenarios/workload_results.txt
    • EEVDF: EEVDF/results/workload_scenarios/workload_results.txt
  4. 커널 파라미터 영향 비교

    • CFS: CFS/results/config_comparison/comparison_results.txt
    • EEVDF: EEVDF/results/config_comparison/comparison_results.txt
  5. 네트워크 성능 비교 (CFS)

    • 네트워크 벤치마크: CFS/results/network/network_advanced_comparison.txt
    • 설정별 네트워크 성능: CFS/results/network/network_advanced_configs_*.txt

주요 비교 지표

레이턴시 특성

  • Wakeup Latency (p50, p90, p99, p99.9)
  • Request Latency (p50, p90, p99, p99.9)
  • RPS (Requests Per Second)

시스템 오버헤드

  • Context switches
  • CPU migrations
  • Page faults
  • Task clock

처리량

  • 실행 시간
  • 평균 RPS
  • Tail latency (p99, p99.9)

네트워크 성능 (CFS)

  • TCP 연결 시간 (RTT p50, p90, p99)
  • 양방향 전송 처리량 (Mbps)
  • 소형 패킷 처리량 (64B, Mbps)
  • CPU 부하 시 네트워크 처리량 (Mbps)

실험 환경

  • CFS VM: Linux Kernel 5.15 이상
  • EEVDF VM: Linux Kernel 6.6 이상
  • 벤치마크: schbench, hackbench (rt-tests)
  • 측정 도구: perf stat, /usr/bin/time

문서

  • CFS/README.md: CFS 벤치마크 상세 가이드
  • EEVDF/README.md: EEVDF 벤치마크 상세 가이드
  • CFS/configs/README.md: 커널 파라미터 설명
  • EEVDF/configs/README.md: 커널 파라미터 설명
  • CFS/docs/network_benchmark_handover.md: 네트워크 벤치마크 인수인계서

라이센스

MIT License

기여

버그 리포트, 기능 제안, PR 환영합니다.

About

EEVDF vs CFS: 리눅스 커널 스케줄러 비교 프로젝트

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages