При беге 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