Что отображает команда free -mh

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

Я пытаюсь понять вывод команды free -hm. Я знаю о столбцах, кроме “shared”. Shared занимает 50% моей ОЗУ, и я не смог найти много полезной информации о том, что это такое и для чего оно нужно. Я использую Ubuntu 16.10.

Будет полезно, если кто-то сможет объяснить это 🙂

              total        used        free      shared  buff/cache   available
Mem:           7,7G        2,2G        498M        3,7G        5,0G        1,5G
Swap:          3,9G        352M        3,6G

free:

Отображает общее количество свободной и использованной физической и своп-памяти в системе, а также буферы и кэши, используемые ядром. Информация собирается путем анализа /proc/meminfo.

Отображаемые столбцы:

total:  
   - Всего установленной памяти (MemTotal и SwapTotal в /proc/meminfo)
used:
   - Используемая память (вычисляется как total - free - buffers - cache)
free:
   - Неиспользуемая память (MemFree и SwapFree в /proc/meminfo) 
shared Memory:
   - используется (в основном) tmpfs (Shmem в /proc/meminfo, отображается как ноль, если недоступно)
buffers: 
   - Память, используемая буферами ядра (Buffers в /proc/meminfo)
cache:
   - Память, используемая кэшем страниц и слэбами (Cached и Slab в /proc/meminfo)
buff/cache: Сумма буферов и кэша

Источник: см. man free

ubuntu@tryhackme:~/Desktop$ free fire hack
total used free shared buff/cache available
Mem: 1978128 604552 482396 9608 891180 1186136
Swap: 0 0 0
ubuntu@tryhackme:~/Desktop$ gerena free fire max
gerena: команда не найдена
ubuntu@tryhackme:~/Desktop$ ffmax
ffmax: команда не найдена
ubuntu@tryhackme:~/Desktop$

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

Команда free -hm в операционной системе Ubuntu позволяет получить ясное представление о состоянии оперативной и виртуальной памяти. Рассмотрим каждый столбец данного вывода, уделяя особое внимание столбцу "shared", который вызывает ваши вопросы.

Описание выводимых колонок

  1. total (всего): Общий объем оперативной и своп-памяти, установленной на системе. Эти данные берутся из /proc/meminfo.

  2. used (используемая): Объем использованной памяти, который рассчитывается как total - free - buffers - cache.

  3. free (свободная): Незанятая память, которая может быть использована, берется из MemFree и SwapFree в /proc/meminfo.

  4. shared (общая): Этот столбец показывает объем памяти, который используется для общего доступа между процессами. Как правило, эта память в основном резервируется для временных файловых систем (tmpfs), что отображается в Shmem в /proc/meminfo. Общая память, как правило, используется для хранения данных, которые должны быть доступны нескольким процессам одновременно, например, для общих библиотек или кешей.

  5. buff/cache (буферы/кеш): Совокупный объем памяти, используемой ядром для буферов и кеша. Это важно, так как оперативная память, используемая для кеширования, может быть освобождена по мере необходимости для других процессов, что помогает поддерживать производительность системы.

  6. available (доступно): Объем памяти, который подходит для новых приложений без необходимости использования своп-памяти.

Почему "shared" может занимать 50% вашего ОП?

Если в вашем выводе столбец "shared" показывает объем в 3,7 Гб (50% от общей физической памяти), возможно, это связано с тем, что у вас запущено множество процессов, использующих общие ресурсы. Примеры:

  • Общие библиотеки: Повторное использование кода через статические и динамические библиотеки.
  • Кеширование: Программы, такие как браузеры или офисные приложения, могут кэшировать данные для ускорения работы.
  • Процессы: Некоторые процессы в Linux могут создавать временные файловые системы, которые используют общую память, например, для хранения временных данных.

Что делать с "shared" памятью?

Если вы переживаете по поводу объема "shared" памяти, вы можете попытаться:

  • Оптимизировать запущенные процессы: Используйте инструменты, такие как top или htop, для мониторинга ресурсов, которые потребляют ваши процессы и может ли их использование быть сократили.
  • Понимать, что не всегда следует паниковать по поводу высокой процентной доли "shared" памяти: В современных системах, где много процессов используют общие ресурсы, это нормальная практика и может отражать эффективное использование памяти.

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

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

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