내 Linux 시스템에서는 어떤 프로세스 스케줄러를 사용합니까?

내 Linux 시스템에서는 어떤 프로세스 스케줄러를 사용합니까?

stackoverflow나 serverfault가 이 문제에 대한 포럼인지는 확실하지 않지만 여기서 시도해 보겠습니다.

내 Linux 시스템에서 어떤 프로세스 스케줄러를 사용하고 있는지 확인하기 위해 사용할 수 있는 명령이나 확인할 수 있는 파일이 있습니까? I/O 스케줄러가 아니라 프로세스 스케줄러를 찾고 있습니다. 스케줄러가 무엇인지 알기 위해 가이드나 가이드를 참조하지 마세요. 실행/확인할 수 있는 명령이나 파일이 있는지 묻는 것뿐입니다. 이것을 보기 위해. 내 커널에 대한 문서를 확인할 수 있지만 확인할 수 있는 명령이나 파일이 있는지 다시 알고 싶습니다.

위에서 말한 내용이 다소 중복될 수 있지만 제가 본 게시물은 누군가가 프로세스 스케줄러와 I/O 스케줄러를 혼동한 것처럼 보였고 실제 질문에 답변하지 않은 것 같았기 때문에 무엇에 대한 링크만 제공했기 때문입니다. 스케줄러가 여기에 있습니다. 제가 여기서 할 내용은 아니므로 위의 댓글이 무례하게 들렸다면 사과드립니다.

답변1

내 Linux 시스템에서 어떤 프로세스 스케줄러를 사용하고 있는지 확인하기 위해 사용할 수 있는 명령이나 확인할 수 있는 파일이 있습니까?

아니요. I/O 스케줄러의 WRT와 달리가능성은 하나뿐이다:CFS("Completely Fair Scheduler"), 실시간 기능이 포함되어 있습니다. CFS는 일치하도록 부분적으로 명명되었습니다."O(1)" 스케줄러는 해당 기사에 명시된 대로 버전 2.6.23에서 대체되었습니다.


2023년 10월

커널 버전 6.6부터 CFS 스케줄러는교체됨EEVDS 기준("가장 빠른 적격 가상 마감일부터" 0 스케줄러:

이는 Intel 엔지니어가 발표한 내용인데, 최근 몇 년 동안 자체 배포판을 사용하여 Linux 개발에 광범위한 관심을 보여주었기 때문에 흥미롭습니다.클린 리눅스,현재다른 모든 운영 체제보다 우수함고급 Intel 하드웨어에서.

"교체"는 이전 스케줄러를 더 이상 사용할 수 없음을 의미합니다. 따라서 시스템에서 어떤 버전을 사용하고 있는지 확인하려면 커널 버전을 확인하세요.

  • < 2.6.23: O(1) 스케줄러.
  • >= 2.6.23 < 6.6: 완전히 공정한 스케줄러.
  • >= 6.6: EEVDF 스케줄러.

답변2

cat /proc/config.gz | gunzip | nano -(또는 cat /proc/config.gz | gunzip | gedit -그 문제에 있어서) 더 나은 대안입니다eyoung100님의 답변임시 파일에 "gunzipping"이 필요하지 않습니다.
편집하다:더 간단하게 - zcat /proc/config.gz | nano -또는zcat /proc/config.gz | gedit -

또는 다음과 같이@테덴이 답변 아래의 의견에서 zgrep 사용이 제안되었습니다. 다른 검색 문자열을 추천하고 싶습니다.

zgrep "CONFIG_SCHED_" /proc/config.gz

예를 들어 다음이 표시되면 CONFIG_SCHED_y커널이 MuQSS 스케줄러를 사용하도록 구성된 것입니다.하지만, 이는 이를 보장하지 않습니다.. 아치스 위키제안:

$ dmesg | grep -i muqss
...
MuQSS CPU scheduler v0.120 by Con Kolivas.

답변3

노력하다:

cat /proc/config.gz | gunzip > ~/running.config
nano -w ~/running.config
CTRL + W SCHEDULE

이봐:14장: 조정

답변4

도움이 되고 질문을 올바르게 이해했다면 한동안 Ubuntu에서 겪었던 문제는 다음과 같습니다.

CPU 스케줄러

커널 6.6 이전에는 CFS(Completely Fair Scheduler)였습니다. 6.6 이상부터 EEVDF(가장 빠른 적격 가상 마감일부터)가 사용됩니다. EEVDF는 여전히 업데이트를 받고 있습니다. 6.8, 6.9 및 6.10 현재 최적화가 계속 진행 중입니다. 나는 Scheduler 유형이나 이에 대한 참조를 얻는 쉬운 방법을 찾지 못했고 이에 관한 기사를 읽어 본 적도 없습니다.https://blogs.igalia.com/changwoo/sched-ext-a-bpf-extensible-scheduler-class-part-1/

이렇게 했는데 dmesg | grep 'scheduler'mq-deadline 메시지만 받았습니다. CFS나 EEVDF 등에 대해서는 언급된 바가 없습니다.

디스크 스케줄러

cat /sys/block/sda/queue/scheduler

sdaSSD, NVME 등의 장치 또는 Rambo에 대해서도 이와 같은 모든 장치를 확인하여 변경할 수 있습니다(다음은 SDx 및 NVMEx 장치만 찾습니다).

cat /sys/block/{sd?,nvme*n1}/queue/scheduler

다음과 같은 내용이 표시됩니다.

여기에 이미지 설명을 입력하세요.

괄호 안의 스케줄러는 해당 블록 장치의 스케줄러입니다. 따라서 SDA의 경우 mq-deadline이고 NVME의 경우 스케줄러를 사용하지 않습니다.

관련 정보