Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 2 из 12

Память, swap и OOM killer

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 9 · на машине · 6 мин

Занято и доступно

free показал у машины десятки свободных мебибайт и около 300 доступных. Узнай, какое из чисел — запас памяти.

free -h печатает память в удобных единицах: Mi — мебибайты, Gi — гибибайты. В строке Mem два похожих столбца — free и available, и в опыте они разошлись в несколько раз. Посмотри, как они меняются, когда машина читает с диска большой файл.

Упражнение · посмотреть

Прочитай большой файл

Посмотри память машины, затем прочитай журнал /var/log/lab-archive/access.log на 150 МиБ и посмотри память ещё раз.

Сначала предположи

Ты прочитаешь файл на 150 МиБ. Что станет со столбцом available?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа

Столбцы строки Mem:

Столбец Что в нём
total вся память, которой распоряжается ядро
used занято процессами и ядром
free не занято ничем
buff/cache кэш файлов: прочитанное и записанное недавно
available сколько можно отдать процессам без swap

Ядро не держит память пустой. Всё прочитанное с диска остаётся в кэше, чтобы следующее чтение того же файла не шло на диск. Поэтому free на работающем сервере мал, и это нормально: понадобится память процессу — ядро выбросит кэш. Ты прочитал файл на 150 МиБ, и free уменьшился на столько же, а available почти не изменился: кэш входит в доступную память.

Запас памяти показывает available — то же число, что строка MemAvailable в /proc/meminfo. У машины урока это около 300 МиБ из 458.

Проверь себя 1 вопрос

У сервера с 4 ГиБ free -h показывает: free 40Mi, buff/cache 2.1Gi, available 2.3Gi. Коллега хочет срочно добавить памяти. Что скажешь?

  • Малый free на работающем сервере нормален: прочитанные файлы лежат в кэше. Запас показывает available — 2,3 ГиБ.

  • free вырастет, но следующие чтения пойдут с диска и станут медленнее. available при этом почти не изменится — запаса не прибавится.

Запас памяти — available: в нём и свободная память, и кэш, который ядро выбросит, когда процессам понадобится память. 2,3 ГиБ из 4 — больше половины.

Ubuntu 24.04
Загрузка…