커널 부팅 명령줄에서 여러 스케줄러를 지정하는 방법은 무엇입니까?

커널 부팅 명령줄에서 여러 스케줄러를 지정하는 방법은 무엇입니까?

우리 시스템에는 회전하는 기계식 디스크와 NVME 스토리지가 모두 있습니다. 우리는 IO 스케줄러를 제거하여 IO의 CPU 오버헤드를 줄이기를 희망합니다. Linux 시작 명령줄, 즉 , GRUB_CMDLINE_LINUX파일 에 이를 지정하려고 합니다 /etc/default/grub.

  • elevator=noop기계식 디스크의 경우 명령줄에 추가할 수 있습니다 . 이는 noop다음 값에 해당합니다./sys/block/sda/queue/scheduler
  • noneNVME 스토리지의 경우 in 을 대신 사용합니다 /sys/block/nvme0n1/queue/scheduler. 아마도(확인할 수 없음) 부팅 시 연결하면 가능합니다 elevator=none.

이는 두 부분으로 구성된 질문이 됩니다.

  1. elevator=noneNVME 스토리지에 사용된 값이 맞나요 GRUB_CMDLINE_LINUX?
  2. 이 두 값을 에 지정할 수 있나요 GRUB_CMDLINE_LINUX?

elevator=noop두 번째 항목이 정확하다면 회전 디스크에 대해 올바르게 설정될 것 같지만 NVME 컨트롤러는 이를 정상적으로 무시 elevator=none하고 NVME 디스크에 대해서는 올바르게 설정되지만 회전 디스크 컨트롤러는 이를 정상적으로 무시합니다.저것.

답변1

I/O 스케줄러 할당세계적인시작시.
여러 할당을 사용하더라도 elevator=[value]마지막 할당만 적용됩니다.
사용 가능한 각 장치에 대한 스케줄러를 자동/영구적으로 설정하려면udev규칙,systemd제공하다또는 다음과 같은 구성 및 성능 조정 도구tuned.
다른 질문에 대한 대답은 '예'입니다. elevator=none이는 NVME 스토리지에 사용할 올바른 값입니다.

관련 정보