Как получить реальное использование кэшированной / упреждающей памяти в Linux?

Я сталкиваются с теми же висит такой пост: https://askubuntu.com/questions/41778/computer-freezing-on-almost-full-ram-possibly-disk-cache-problem

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


Итак, я больше углубился в эту проблему и получил эту полезную команду :

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

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

Я заметил, что добавление этого к использованию prefetchless оперативной памяти играм топа используется RAM.

однако это не говорит мне, сколько" статической " предварительной выборки оперативной памяти я использую. И зная это, я дам достаточно времени выгрузке выгружаемого кэша Linux, чтобы выполнить свою работу, когда я собираюсь достичь общей оперативной памяти рассчитывать.

например: кэш был ~1000 MiB, затем добрался до ~700 MiB после выполнения "echo 3 / sudo tee/proc/sys/vm / drop_caches"; ~700 MiB являются "статической" частью предварительной выборки ОЗУ, которую мне нужно знать.

Итак, мой вопрос: Как вы получаете "реальную" статическую " часть использования предварительной выборки/кэширования / выгрузки ОЗУ ?


PS:

С другой стороны, есть ли способ вывести только общий объем оперативной памяти, используемый каждым процессом-даже корневым - (например, htop mem значение) ?

24
задан X.LINK
29.04.2023 21:47 Количество просмотров материала 2757
Распечатать страницу

1 ответ

вы можете найти оперативную память, используемую каждым процессом для всех пользователей со следующей командой:

ps -eo pid,command,rss,user

это дает, по порядку, идентификатор процесса, команду, используемую память и пользователя процесса.

Если вы хотите, чтобы общий объем оперативной памяти используется всеми процессами, следующая команда будет работать

free

Если вы хотите, чтобы сумма памяти используется каждым процессом, используйте следующий код:

ps -eo rss | awk '{sum+=} END {print sum}'

Это даст вам значение, представляющее собой общий объем памяти, используемой всеми процессами.

2
отвечен Nasir Riley 2023-05-01 05:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх