백그라운드에서 실행되는 상당히 집약적인 IO를 수행하는 여러 스레드를 생성하는 프로그램이 있습니다. idle
시스템을 차단하지 않도록 예약 클래스를 설정하고 싶었지만 프로세스 ID가 원하는 효과를 얻지 못했습니다 ionice -c3 -p <PID>
. <PID>
프로세스의 예약 클래스가 <PID>
변경되었더라도 프로세스 iotop
가 생성하는 모든 스레드는 시작할 때 여전히 기본 우선순위(최선 노력 수준 4)를 갖습니다.
프로그램의 IO 우선순위와 Linux에서 생성되는 모든 스레드 또는 프로세스를 변경하는 방법은 무엇입니까?
답변1
ionice
프로세스 그룹 ID를 매개변수( -P
스위치)로 전달할 수 있으며, 이는 주어진 프로세스 그룹의 모든 프로세스(및 스레드)에 분명히 영향을 미칩니다. 프로세스 그룹 ID 는 /proc/<PID>/stat
5번째 필드를 보거나 사용하여 찾을 수 있습니다 ps
. 이 설정은 내가 원하는 것보다 약간 거칠지만 훌륭하게 작동합니다.