У моего сервера высокий уровень использования памяти buff/cache?

Вопрос или проблема

Недавно я заметил, что моя сервер Ubuntu 18.04 LTS имеет высокое использование памяти buff/cache.

free -mh
              total        used        free      shared  buff/cache   available
Mem:           7.8G        1.5G        4.4G        109M        1.9G        5.9G
Swap:          8.0G          0B        8.0G

Это после перезагрузки сервера, до этого было 5GB.

top - 09:39:07 up 18 min,  1 user,  load average: 0.09, 0.28, 0.58
Tasks: 161 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.1 sy,  0.0 ni, 99.1 id,  0.5 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8153548 total,  4574140 free,  1534508 used,  2044900 buff/cache
KiB Swap:  8388604 total,  8388604 free,        0 used.  6202180 avail Mem 

После выполнения echo 3 > /proc/sys/vm/drop_caches, чтобы освободить его, он снова начал расти.

Как я могу определить, кто потребляет больше всего buff/cache и стоит ли мне беспокоиться, если он так высок?

Стоит ли мне беспокоиться, если он так высок?

Нет. В Linux кеширование имеет низкий приоритет и автоматически и легко освобождается. https://www.linuxatemyram.com/

На самом деле, если половина памяти свободна, это означает, что у вас в два раза больше ОПП, чем “необходимо” при этой нагрузке; половина не используется. Проведите планирование пропускной способности, чтобы проверить, увеличится ли нагрузка на этот хост. Если нет, вы можете уменьшить и перераспределить его память. Например, снизив выделение ОПП для ВМ до 6 или 4 ГБ.

После выполнения echo 3 > /proc/sys/vm/drop_caches, чтобы освободить его, он снова начал расти.

Не используйте drop_caches, это не имеет оперативной цели и замедляет вещи. Хорошие сценарии использования этого ограничены холодным запуском бенчмарков.

Добавляю больше легко усваиваемой информации, чтобы помочь новичкам в будущем:

Память buff/cache на сервере — это количество памяти, используемой ядром Linux для кеширования и буферизации дисков. Это не “используемая” память в традиционном понимании; это способ, которым система эффективно использует ОПП, кешируя часто запрашиваемые данные.

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

Надеюсь, это поможет.

Ответ или решение

Когда вы заметили высокое использование памяти buff/cache на вашем сервере под управлением Ubuntu 18.04 LTS, важно понять, что это не обязательно свидетельствует о проблемах. Давайте разберем это подробнее и предоставим важные рекомендации.

Что такое buff/cache память?

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

Ваши наблюдения

Из вывода команд free -mh и top видно следующее:

  • Общий объем памяти: 7.8 ГГц
  • Использование памяти: 1.5 ГГц
  • Сват: 0 Б
  • buff/cache: 1.9 ГГц
  • Свободная память: 4.4 ГГц

Это показывает, что почти 2 ГГц памяти используется под кеширование. Когда вы перезагрузили сервер и выполнили команду echo 3 > /proc/sys/vm/drop_caches, память снова была освобождена, но затем начала использоваться для кеширования. Данная ситуация нормальна и ожидаема.

Нужно ли беспокоиться о высоком использовании buff/cache?

Нет, в этом нет повода для беспокойства. Как уже упоминалось, память buff/cache имеет низкий приоритет и легко освобождается при необходимости. Фактически, если больше половины памяти свободно (как в вашем случае), это говорит о том, что сервер не загружен и у вас достаточно ресурсов.

Как обнаружить, что потребляет buff/cache память?

Чтобы узнать, какие процессы могут потреблять buff/cache память, вы можете использовать несколько инструментов, таких как:

  1. top или htop: Эти инструменты показывают потребление ресурсов в реальном времени и могут помочь выявить интенсивные по использованию памяти процессы.
  2. iotop: Если вас интересует, какие процессы потребляют много I/O, iotop может дать полезную информацию.
  3. vmstat: Этот инструмент также помогает отслеживать различные метрики производительности, включая кеширование. Чаще всего вам будет интересна колонка buff и cache.

Рекомендации по управлению памятью

  1. Не удаляйте кеш: Команда echo 3 > /proc/sys/vm/drop_caches не рекомендуется использовать в постоянной практике. Она имеет ограниченное применение, например, при проведении бенчмарков. Частое удаление кеша может привести к ухудшению производительности системы.

  2. Мониторинг загруженности: Проводите регулярный мониторинг работы вашей системы, чтобы отслеживать нагрузку и производительность. Используйте инструменты мониторинга, такие как Prometheus, Grafana или другие для построения графиков использования ресурсов.

  3. Планирование ёмкости: Если вы не предполагаете значительного увеличения рабочей нагрузки, возможно, имеет смысл рассмотреть возможность уменьшения объема выделенной памяти (например, до 6 или 4 ГГц). Это поможет освободить ресурсы для других виртуальных машин или приложений.

Заключение

В заключение, высокое использование памяти buff/cache на вашем сервере – это нормальное явление для Linux-систем. Это свидетельствует о том, что ваша операционная система эффективно использует доступные ресурсы. Главное – следить за производительностью и не беспокоиться о незначительных колебаниях в использовании памяти. При правильном управлении и мониторинге ваша система будет работать без сбоев и производительно.

Оцените материал
Добавить комментарий

Капча загружается...