---
tags: [linux, cheatsheet, tooling]
verified: 2026-09-02
---

# Linux — справочник команд: память

[← Назад к обзору](./linux-perf-tools.md)

---

## vmstat

Классическая статистика виртуальной памяти: подкачка, свопинг, прерывания, переключения контекста.

```bash
# Обновление каждую секунду (первая строка — средние с загрузки, игнорировать)
vmstat 1

# С таймштампами
vmstat -t 1

# Статистика по slab/disk
vmstat -m    # slab info
vmstat -d    # disk stats

# Разовый снимок активной/неактивной памяти
vmstat -a -S M
```

Ключевые колонки: `si`/`so` (swap in/out — если > 0, памяти не хватает), `r` (runnable, аналог runqlen), `b` (blocked on I/O), `free`, `cs` (context switches).

---

## slabtop

Статистика slab-аллокатора ядра. Показывает, куда уходит ядерная память.

```bash
# Интерактивный режим, сортировка по размеру
slabtop -s c

# Разовый вывод (для скриптов)
slabtop -o | head -20

# Альтернатива: /proc/slabinfo напрямую
cat /proc/slabinfo | sort -k3 -rn | head -10
```

Типичный use-case: `dentry` или `inode_cache` разрослись — значит, огромное количество файлов/каталогов сканируется.

---

## free

Сводка использования памяти. Простейший инструмент, но важно правильно читать.

```bash
# В человекочитаемом формате
free -h

# С обновлением каждые 2 секунды
free -h -s 2

# Широкий формат (buffers и cache отдельно)
free -hw
```

Главное: `available` (не `free`) — реальный объём памяти, доступный приложениям. `buff/cache` — это не «занятая» память, ядро отдаст её при необходимости.

---

## numastat

Статистика распределения памяти по NUMA-узлам. Критично для многосокетных серверов.

```bash
# Общая статистика по всем узлам
numastat

# По конкретному процессу (с разбивкой по категориям)
numastat -p $(pgrep mysqld)

# Подробная статистика по узлам (в МБ)
numastat -m

# Компактная таблица без нулевых строк — для машин со многими узлами
numastat -c -z
```

Ключевые метрики: `local_node` vs `other_node` — если `other_node` велик, процесс читает память с удалённого NUMA-узла (штраф по задержке 40–100%). Решение: `numactl --membind` или `numactl --cpunodebind`.

---

## Связанные заметки

- [Linux — средства диагностики производительности](./linux-perf-tools.md) — обзорная карта инструментов
- [Linux — справочник команд: CPU и планировщик](./linux-tldr-cpu-scheduler.md) — смежный слой диагностики
- [Linux — справочник команд: файловые системы и хранение](./linux-tldr-storage.md) — page cache и обмен со swap
- [Страничная трансляция: таблицы, TLB, разрядность](./os-paging-and-tlb.md) — устройство механизма, статистику которого показывают эти команды
- [Карта памяти ядра: половины, прямое отображение, KASLR](./os-kernel-memory-map.md) — устройство карты ядра, наблюдаемые проявления которой перечислены здесь
- [Физическая память: от карты firmware до аллокатора](./os-physical-memory.md) — устройство аллокаторов, статистику которых показывают эти команды: зоны, порядки свободных блоков, кэши объектов
