cgroups: блокировать запись байтов статистики в файл blkio.throttle.io_service_bytes в некоторых случаях просачивается в родительскую группу - PullRequest
0 голосов
/ 18 января 2020

Я создаю группу под /sys/fs/cgroup/blkio/usertest и добавляю текущую оболочку в эту группу. Я использую следующую команду dd для проверки поведения файла blkio.throttle.io_service_bytes. Я обнаружил, что в некоторых случаях данные будут попадать в родительскую группу.

до дд:

cat /sys/fs/cgroup/blkio/usertest/blkio.throttle.io_service_bytes
253:0 Read 32768
253:0 Write 9466880
253:0 Sync 9442304
253:0 Async 57344
253:0 Total 9499648
Total 9499648
cat /sys/fs/cgroup/blkio/blkio.throttle.io_service_bytes
253:0 Read 360803840
253:0 Write 76435959296
253:0 Sync 1026532352
253:0 Async 75770230784
253:0 Total 76796763136
Total 76796763136

после dd if=/dev/zero of=test bs=100M count=5 && sync

cat /sys/fs/cgroup/blkio/blkio.throttle.io_service_bytes
253:0 Read 360803840
253:0 Write 76960499712
253:0 Sync 1026550784
253:0 Async 76294752768
253:0 Total 77321303552
Total 77321303552
cat /sys/fs/cgroup/blkio/usertest/blkio.throttle.io_service_bytes
253:0 Read 32768
253:0 Write 9468928
253:0 Sync 9444352
253:0 Async 57344
253:0 Total 9501696
Total 9501696

Группы /sys/fs/cgroup/blkio/usertest/blkio.throttle.io_service_bytes увеличьте только 2048 байт, в то время как родительская группа /sys/fs/cgroup/blkio/blkio.throttle.io_service_bytes увеличится примерно на 500 МБ, что должно быть записано в группу usertest.

Почему происходит утечка в родительскую группу?

Но, если я уменьшу количество bs (например: dd if=/dev/zero of=test bs=10M count=5 && sync) или добавлю oflag=direct к команде (например: dd if=/dev/zero of=test bs=100M count=5 oflag=direct) утечка не произойдет, и все выглядит нормально, увеличение /sys/fs/cgroup/blkio/usertest/blkio.throttle.io_service_bytes составит ровно 500 МБ.

Проблемы, связанные с:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...