Назад | Перейти на главную страницу

Почему моя контрольная группа сообщает об использовании памяти, хотя в контрольной группе не запущены никакие процессы?

При беге systemd-cgtop, Я получаю следующий результат (показаны только первые несколько строк):

Control Group                                                                                                          Tasks   %CPU   Memory  Input/s Output/s
/                                                                                                                       1752   92.2    29.0G        -        -
/mycgroup                                                                                                                -      -     3.3M        -        -
/system.slice                                                                                                             98      -        -        -        -
/system.slice/ModemManager.service                                                                                         3      -        -        -        -
/system.slice/NetworkManager.service                                                                                       4      -        -        -        -
/system.slice/accounts-daemon.service                                                                                      3      -        -        -        -
/system.slice/acpid.service     

Обратите внимание, что моя контрольная группа, которая находится во втором ряду, использует около 3,3 МБ памяти. Действительно, когда я бегу, я получаю следующее

cat /var/cgroups/mycgroup/memory.usage_in_bytes 
3530752

Я не уверен, откуда взялось это использование памяти. Как я могу определить, кто использует эту память, и что я могу сделать, чтобы принудительно остановить использование памяти всеми процессами в этой контрольной группе без удаления контрольной группы?

Другие группы, которые у меня есть, не используют эту память.

Я считаю, что это показывает неиспользованную кеш-память. Скорее всего, у вас когда-то была задача, выполнявшаяся в контрольной группе, но затем она была остановлена. Кешированная память может остаться.

Если в cgroup не запущено ни одной задачи, у вас есть возможность принудительно очистить:

echo 0 >/sys/fs/cgroup/memory/mycgroup/memory.force_empty