Я считаю, что есть разница между буфером и кеш-памятью. В Ubuntu я вижу, как они забиты вместе. Ubuntu по-разному относится к буферу и кешу?
В моем случае доступная память очень мала, и я пытаюсь выяснить, что потребляет так много памяти. И поэтому я намерен различать буфер и кэш
free -h
total used free shared buff/cache available
Mem: 60G 35G 200K 9.8G 24G 200K
Swap: 0B 0B 0B
Неиспользованная память - потраченная впустую память; поэтому Ubuntu (обычно Linux) пытается использовать его наилучшим образом.
Как я знаю, всякий раз, когда вы открываете программу, после ее закрытия большое количество данных, связанных с ее процессом, все еще остается в памяти на случай, если вы запустите ее снова, поэтому Linux не нужно загружать все эти данные снова в ваш память, потому что она уже есть.
Пока у вас есть много данных в Buff/Cache
, вы в безопасности, потому что на самом деле эта часть будет немедленно освобождена в случае необходимости.
Вы можете использовать vmstat -S M
для просмотра буфера и кеша отдельно. сначала посмотрите, какое из них имеет более высокое значение, затем легче угадать, что происходит.
Обе нижеследующие цитаты взяты из здесь :
«Буферы» представляют, какая часть ОЗУ выделена для блока кеш-диска. «Cached» похож на «Buffers», только на этот раз он кэширует страницы из файла.
blockquote>Который цитирует себя из здесь . И более ясная цитата:
Буферы связаны с конкретным блочным устройством и охватывают кэширование метаданных файловой системы, а также отслеживание страниц в полете. Кеш содержит только данные припаркованного файла.
Буферы запоминают, что находится в каталогах, каковы права доступа к файлам, и отслеживают, из какой памяти производится запись или чтение для конкретного блочного устройства. Кеш содержит только содержимое самих файлов.
blockquote>В вашем случае, я думаю, большая часть этого
24G
связана сcache
, это может быть вызвано конкретный сервис, работающий в вашей системе.