멀티스레드 애플리케이션을 위한 ionice 설정

멀티스레드 애플리케이션을 위한 ionice 설정

백그라운드에서 실행되는 상당히 집약적인 IO를 수행하는 여러 스레드를 생성하는 프로그램이 있습니다. idle시스템을 차단하지 않도록 예약 클래스를 설정하고 싶었지만 프로세스 ID가 원하는 효과를 얻지 못했습니다 ionice -c3 -p <PID>. <PID>프로세스의 예약 클래스가 <PID>변경되었더라도 프로세스 iotop가 생성하는 모든 스레드는 시작할 때 여전히 기본 우선순위(최선 노력 수준 4)를 갖습니다.

프로그램의 IO 우선순위와 Linux에서 생성되는 모든 스레드 또는 프로세스를 변경하는 방법은 무엇입니까?

답변1

ionice프로세스 그룹 ID를 매개변수( -P스위치)로 전달할 수 있으며, 이는 주어진 프로세스 그룹의 모든 프로세스(및 스레드)에 분명히 영향을 미칩니다. 프로세스 그룹 ID 는 /proc/<PID>/stat5번째 필드를 보거나 사용하여 찾을 수 있습니다 ps. 이 설정은 내가 원하는 것보다 약간 거칠지만 훌륭하게 작동합니다.

관련 정보