프로세스에 출력 리디렉션이 있을 때 cgroup 프로세스의 blkio를 제한/모니터링하는 방법

프로세스에 출력 리디렉션이 있을 때 cgroup 프로세스의 blkio를 제한/모니터링하는 방법

cgroup blkio 컨트롤러에 대해 몇 가지 질문이 있습니다.
특정 프로세스의 IOPS를 제한하고 싶습니다. 이 프로세스는 IO 리디렉션을 사용하여 stdout의 내용을 파일에 씁니다. 프로세스를 cgroup에 넣어 보았습니다. 그러나 cgroup은 프로세스에서 IO 작업을 캡처하지 않는 것 같으므로 IOPS를 제한할 수 없습니다.

나는 이 과정을 시뮬레이션하기 위해 작은 실험을 했습니다. 이것이 내가 한 일입니다:

cgexec -g blkio:/dummy_group --sticky dd bs=1 if=/dev/zero of=/dev/stdout count=30000000 > /tmp/test

dd를 사용하여 30MB 파일을 생성하고 이를 stdout으로 출력한 다음 해당 파일로 리디렉션할 계획입니다. 쓰기 작업은 cgroup 통계에 기록되어야 한다고 예상했습니다. 그러나 "/cgroup/blkio/dummy_group/blkio.throttle.io_serviced" 파일을 읽어보면 "쓰기" 번호가 바뀌지 않습니다!

그런 다음 cp 명령을 사용하여 비슷한 작업을 수행했는데 "쓰기" 번호가 변경되었습니다.

cgexec -g blkio:/dummy_group --sticky cp /tmp/test /tmp/test2

이 목표를 달성하기 위해 내가 뭔가 잘못하고 있는 것인지 궁금합니다. IO 리디렉션을 사용하여 IO를 수행하는 프로세스를 모니터링하고 제한하는 올바른 방법은 무엇입니까?

감사해요.

관련 정보