완전 균등화 큐잉
Completely fair queueingCFQ(완전 균등화 큐잉)는 2003년에 Jens Axboe에 의해 작성된 Linux 커널의 [1]I/O 스케줄러입니다.
묘사
CFQ는 프로세스별로 송신된 동기 요구를 다수의 프로세스별 큐에 배치한 후 각 큐에 타임라이스를 할당하여 디스크에 액세스합니다.큐가 송신할 수 있는 시간 슬라이스 길이와 요청 수는 지정된 프로세스의 I/O 우선순위에 따라 달라집니다.모든 프로세스의 비동기 요구는 priority별로 1개씩 적은 수의 큐로 일괄 처리됩니다.CFQ는 명시적으로 예상되는 I/O스케줄링을 실시하지 않지만 동기 I/O 종료 시 프로세스 큐가 아이돌 상태가 되도록 함으로써 시스템 전체의 집약 throughput이 양호해지는 것과 같은 효과를 얻을 수 있습니다.이것에 의해, 그 프로세스로부터 I/O가 한층 더 「예상」됩니다.이는 공정에 I/O 시간 슬라이스를 부여하는 자연스러운 확장이라고 볼 수 있습니다.
역사
통합 전
2003년 2월 Andrea Arcangeli는 확률론적 페어 큐잉 I/O 스케줄러에 대한 아이디어를 Jens Axboe에게 제출했고, 그 후 이를 구현했습니다.Jens Axboe는 새로운 버전을 Complete Fair Queueing 스케줄러라고 부르며 첫 번째 구현을 개선했으며 2.5.60 개발 시리즈 커널에 적용하기 위한 패치를 제작했습니다.
커널 2.6.6 (2004년 5월 10일)
CFQ I/O 스케줄러는 처음에 옵션 I/O 스케줄러로 메인라인 커널에 통합되었습니다.부팅 시 'elevator' 매개 변수를 사용하여 스케줄러를 커널로 변경할 수 있습니다.
커널 2.6.9 (2004년 10월 19일)
Red Hat Enterprise Linux 4는 2.6.[2]9 기반의 커널을 사용했음에도 불구하고 이 I/O 스케줄러를 기본값으로 사용했습니다.
커널 2.6.10 (2004년 12월 24일)
CFQv2라는 이름의 CFQ 스케줄러의 두 번째 릴리스는 2.6.10에 포함되어 있으며, 향상된 응답성 및 이전 버전에서 존재했던 기아 문제의 제거가 포함됩니다.sysfs 파일시스템 내의 /sys/block/<block_device>/queue/scheduler 변수를 변경함으로써 실행 시 스케줄러를 전환할 수도 있습니다.
커널 2.6.13 (2005년 6월 27일)
CFQ 스케줄러는 CFQv3라는 새로운 타임슬라이스 설계로 이행했습니다특히 ioprio_get(2) 및 ioprio_set(2)를 구현하여 사용자가 프로세스별 I/O 우선순위를 설정할 수 있도록 합니다(통상 ionice(1) 명령어를 사용하여 I/O 우선순위를 다소 변경할 수도 있습니다).
커널 2.6.18 (2006년 9월 20일)
CFQ가 디폴트스케줄러가 되어 예측 [3]스케줄러가 대체되었습니다.
커널 5.0(2019-03-03)
「 」를 참조해 주세요.
레퍼런스
- ^ "Source code of the IO scheduler, (contains copyright information in header)". Retrieved 28 December 2017.
- ^ D. John Shakshober (June 2005). "Choosing an I/O Scheduler for Red Hat® Enterprise Linux® 4 and the 2.6 Kernel". Red Hat magazine. Archived from the original on 27 August 2007. Retrieved 20 November 2011.
- ^ Jens Axboe (June 2006). "Linux Kernel 2.6.18 - Make CFQ the default IO scheduler". Retrieved 20 March 2016.
- ^ Jens Axboe (2018-10-12). "block: remove legacy IO schedulers". Retrieved 2020-10-25.
- ^ Linus Torvalds (2018-12-28). "Merge tag 'for-4.21/block-20181221' of git.kernel.dk/linux-block". Retrieved 2020-10-25.
원천
- CFQ에 대한 간단한 상세 (여기서부터)
- 2.6.10 발매 예정
외부 링크
- Linux 소스 코드의 CFQ 문서
- CFQ - Red Hat 기술 자료 튜닝 가이드