Ответ вслух Junior Память и OOM спрашивают часто обновлено

Объясни вывод free

Вопрос

Тебе показывают вывод free -h. Объясни колонки и как понять, хватает ли памяти.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

total это вся память, used занято процессами, free вообще ничем не занято. Новички пугаются маленького free, но это нормально: Linux отдаёт свободную память под page cache, это колонка buff/cache, и при нужде ядро вытеснит кеш.

Что должно прозвучать в ответе

  • `total`, `used`, `free`: всего, занято процессами, ничем не занято

  • `buff/cache`: page cache и буферы, большую часть ядро отдаст по требованию

  • `available`: главная цифра, сколько можно выделить без свопа

  • Маленький `free` это норма: Linux использует память под кеш

  • Своп: важен не объём занятого, а активность (`si`/`so` в vmstat)

  • Признаки нехватки: маленький available, активный своп, OOM в dmesg

Что могут спросить следом

  • Чем available отличается от free + cache?
  • Где взять эти числа без free?

Разбор

total это вся память, used занято процессами, free вообще ничем не занято. Новички пугаются маленького free, но это нормально: Linux отдаёт свободную память под page cache, это колонка buff/cache, и при нужде ядро вытеснит кеш. Поэтому главная колонка available: оценка, сколько можно выделить новым процессам без свопа. Она не равна free + cache, потому что часть кеша нельзя быстро освободить: грязные страницы, tmpfs, shared memory. Строка Swap: важно не то, что там занято сколько-то мегабайт, а идёт ли активный обмен, это видно по si и so в vmstat 1. Признаки реальной нехватки: available близко к нулю, постоянный своп и записи OOM killer в dmesg. Все эти числа берутся из /proc/meminfo.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме