Middle
71
questionbank

Как узнать количество доступной оперативной памяти на Linux?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Есть несколько способов, как узнать количество доступной оперативной памяти на Linux.

1. Использование команды free

Это, наверное, самый распространенный и простой способ.

bash

Вывод команды free -h обычно выглядит так:

totalusedfreesharedbuff/cacheavailable
Mem:15Gi6.5Gi2.0Gi500Mi7.0Gi8.0Gi
Swap:2Gi0B2Gi
  • total: Общий объем физической оперативной памяти.
  • used: Используемый объем памяти.
  • free: Свободный объем памяти.
  • shared: Память, используемая несколькими процессами.
  • buff/cache: Память, используемая для буферизации и кеширования.
  • available: Оценка объема памяти, доступной для новых процессов, без свопинга. Это наиболее точный показатель фактически доступной памяти.

2. Просмотр файла /proc/meminfo

Этот файл содержит низкоуровневую информацию о подсистеме памяти ядра.

bash

Вывод команды cat /proc/meminfo будет более подробным и может содержать много строк. Наиболее интересные для нас:

  • MemTotal: Общий объем памяти в килобайтах.
  • MemFree: Свободный объем памяти в килобайтах.
  • MemAvailable: Объем памяти, доступный для новых процессов, в килобайтах.

3. Использование команды top или htop

Утилиты мониторинга системы, такие как top (стандартная) или htop (более интерактивная), также отображают информацию об использовании памяти.

bash

В top или htop информация о памяти часто представлена в виде строки, схожей с free, с указанием общего, использованного, свободного и буферизованного/кешированного объемов.

Для Python-разработчика понимание доступной памяти важно для:

  • Оценки производительности приложения.
  • Определения необходимости оптимизации потребления памяти.
  • Настройки параметров приложения (например, пула соединений базы данных, кеша).
  • Диагностики проблем с утечкой памяти.

Наиболее полезным для понимания фактического объема доступной памяти, который может быть использован новыми процессами, является значение available из команды free или /proc/meminfo.