Этап 9 из 15 · ≈ 8 ч

Linux — диагностика сервера

Основа с Middle

Состояния процессов, load average, память и OOM killer, заполненный диск.

Что важно знать

  • Load average считает и ожидающих диска, а не только процессор.
  • Свободная память и доступная — разные числа: кэш освобождается.
  • Удалённый, но открытый файл занимает место, пока процесс жив.

Критерии освоения

Middle ≈ 8 ч

  • Оценивает загрузку сервера по load average с учётом числа ядер и ожидания ввода-вывода
  • Определяет реально доступную память, находит причину срабатывания OOM killer
  • Находит, куда делось место на диске, включая удалённые, но открытые файлы

Практика. На учебной машине воспроизвести заполнение диска удалённым открытым файлом и нехватку памяти, найти причины командами df, du, lsof, free, dmesg.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Какие состояния бывают у процесса в Linux и что такое зомби и сироты?Middle

В ps видно состояние: R — выполняется или ждёт CPU, S — спит в ожидании события (норма для большинства), D — непрерываемый сон в ожидании ввода-вывода (не реагирует даже на SIGKILL), T — остановлен, Z — зомби: процесс завершился, но родитель не забрал код…

Полный разбор
Что показывает load average и как понять, что сервер перегружен?Middle

Load average — среднее за 1, 5 и 15 минут число процессов, которые выполняются или ждут CPU, а в Linux ещё и ожидают ввод-вывод (состояние D). Сравнивать с числом ядер: load 8 на 16 ядрах — нормально, на 2 ядрах — очередь. Высокий load при свободном CPU …

Полный разбор
Как понять, сколько памяти реально свободно в Linux, и что такое OOM killer?Middle

Linux использует свободную память под кэш файлов (page cache), поэтому «free» почти всегда мал — смотреть надо на available: сколько можно выделить, вытеснив кэш. Когда память действительно закончилась, OOM killer убивает процесс с наибольшей оценкой (обычно…

Полный разбор
Диск заполнен, а du показывает, что места занято мало. В чём дело?Middle

Частая причина — удалённый файл, который ещё держит открытым процесс (например, лог после ротации): имя исчезло, du его не видит, а место не освободилось. Найти: lsof +L1 или lsof | grep deleted; освободить — перезапуск процесса или усечение через /proc…

Полный разбор

Разборы темы

← Вся карта «Backend-разработчик»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования