Я не могу очистить память SWAP. Это из-за того, что у меня Linux отстает. Я пытаюсь очистить, но у меня есть выход: вы просто быть суперпользователем.
Я использовал ноутбук Jupyter для изучения свертки нейронной сети. В конце каждой эпохи мой своп увеличивается.
Бадум, ты пытался это сделать?
sync; echo 1 > /proc/sys/vm/drop_caches
sync; echo 2 > /proc/sys/vm/drop_caches
sync; echo 3 > /proc/sys/vm/drop_caches
Вы можете найти объяснение здесь . Кроме того, я получил команды с того же сайта.
Прежде всего вам необходимо понять, как работает подкачка - когда программы требуют больше памяти, чем физически доступно, ядро будет перемещать память, занятую незанятыми программами, для подкачки, чтобы очистить память для текущей активной программы.
Трудно сказать без подробностей, но может быть совершенно нормально, что вашей программе требуется больше памяти в конце каждой эпохи (что бы это ни значило), и это заставляет ядро использовать swap.
Не беспокойтесь о чистке. Он показывает использование свопа даже после его использования и ничего не замедляет в то время. И когда он используется , очистка не имеет смысла.
У вас есть два варианта - закрыть другие программы, которые вы не используете, или установить больше физической памяти. Это позволит избежать использования свопа.
Вы пытались выключить и снова включить его?
Как это ни смешно. Вы можете принудительно очистить своп, выключив и снова включив своп:
sudo swapoff -a
sudo swapon -a
Это пометит все разделы свопа как неиспользуемые свопом (затем пометит их как использованные). Обратите внимание , что это приведет к тому, что вся память будет перенесена в физическую память, то есть некоторые плохие вещи могут произойти, если у вас недостаточно физической памяти.
Если вы используете swap up, у вас может быть утечка памяти, как кто-то другой предложил.