우선 순위가 낮은 단일 프로세스로 인해 시스템 성능이 심각하게 저하되는 것을 방지하기 위해 BFQ 스케줄러를 어떻게 조정합니까?

우선 순위가 낮은 단일 프로세스로 인해 시스템 성능이 심각하게 저하되는 것을 방지하기 위해 BFQ 스케줄러를 어떻게 조정합니까?

나는 한동안 nice/ionice를 사용하려고 노력했는데 bfq가 ionice 매개변수를 무시한다는 것을 알게 되었습니다. 그렇다면 우선순위가 낮은 프로세스가 우선순위가 높은 프로세스에 해를 끼치면서 모든 IO 대역폭을 소비하는 것을 방지하는 방법은 무엇일까요?

런타임 중에도 nice -n -20 high_priority_cmd;nice -n 19 low_priority_cmd;taskset -a -p 1 $(pgrep high_priority_cmd);taskset -a -p 2 $(pgrep low_priority_cmd);심각한 대기 시간/대역폭 문제가 발생합니다 .high_priority_cmdlow_priority_cmd

일부문서프로세스별 ioprio가 언급되어 있지만 변경 방법은 없습니다.

같은 문제일 가능성이 높음, 근본적인 문제에 대한 실제 답은 없습니다. io, CPU, 메모리 또는 스왑을 차지하는 백그라운드 서비스가 없습니다. vlc 및 ffmpeg만 있으면 ffmpeg가 실행 중인 경우 vlc는 거의 응답하지 않으며 건너뛰기, 끊김 및 잘못된 비동기(?) 디코딩을 방지하려면 비디오를 0.5x 속도로 재생해야 합니다. 그러나 백그라운드에 CPU 및 메모리 집약적인 서비스가 많이 있는 경우 md5sum1GB 파일과 같은 간단한 파일로 인해 시스템이 중단되고 마우스조차 화면에서 움직이지 않습니다. Windows 운영 체제에서는 이처럼 끔찍하고 무능한 IO 스케줄링 문제가 발생한 적이 없습니다. (공평하게 말하면 내 Windows 시스템에는 HDD 대신 SSD가 있지만 이것이 무능함에 대한 변명의 여지가 없습니다.)

관련 정보