Объясни вывод free
Вопрос
Тебе показывают вывод free -h. Объясни колонки и как понять, хватает ли памяти.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
`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 ошибок.