Я сталкиваюсь с такими же зависаниями, как этот пост: https://askubuntu.com/questions/41778/computer-freezing-on-almost-full-ram-possbly-disk-cache-problem
Подводя итог: похоже на то, что предварительная загрузка / кэширование / подкачка ОЗУ занимает слишком много времени, поэтому я постоянно боюсь, что диск делает безумные показания диска до такой степени, что компьютер зависает и вынуждает меня перезагружаться.
Итак, я углубился в эту проблему и получил эту полезную команду:
sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
Которые действительно сбрасывают предварительно извлеченную память ... до некоторой степени, так как остается еще некоторая часть, которая кажется "статической" частью.
Я заметил , что добавление этого к использованию prefetchless RAM соответствует используемой оперативной памяти волчка.
Тем не менее, это не говорит мне, сколько "статической" предварительно загруженной оперативной памяти я использую. И зная это, я дам достаточно времени на разгрузку выгружаемого кэша Linux, чтобы выполнить свою работу, когда я собираюсь достичь общего количества оперативной памяти.
Например: кэш-память была ~ 1000 МБ, а затем выполнила ~ 700 МБ после выполнения команды "echo 3 | sudo tee /proc /sys /vm /drop_caches"; ~ 700 МБ - это "статическая" часть предварительно загруженной оперативной памяти, которую мне нужно знать.
Итак, мой вопрос: как вы получаете "реальную" "статическую" часть использования предварительно загруженной / кэшированной / выгружаемой памяти?
PS:
С другой стороны, есть ли способ вывести только общую оперативную память, используемую каждым процессом - даже корневым - (например, значение mem в htop)?