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を実行するプロセスを監視および制限する正しい方法は何ですか?
ありがとうございます。