Перейти к содержимому
На этой странице

Linux и диагностика

Все темы DevOps

Как отличить заполненный диск от перегруженного I/O?

Заполненность проверяют через df -h, распределение по каталогам через du, а inode через df -i. Перегрузку I/O ищут в iostat -xz: растущие latency и очередь при высокой загрузке устройства указывают на насыщение. iotop или данные cgroup помогают найти процесс-источник. Один высокий %util не универсален для всех современных дисков и массивов, поэтому его сопоставляют с задержкой, IOPS, throughput и SLO приложения. Важно смотреть временной ряд: мгновенный снимок после всплеска может скрыть причину. Свободное место и производительность диска являются независимыми проблемами.


Чем SIGTERM отличается от SIGKILL?

SIGTERM процесс может перехватить и выполнить graceful shutdown: перестать принимать работу, дождаться активных операций, закрыть соединения и сбросить буферы. Обработчик должен уложиться в заданный timeout. SIGKILL перехватить, заблокировать или обработать нельзя; ядро прекращает процесс сразу, поэтому пользовательский cleanup не выполняется. Обычно оркестратор сначала посылает SIGTERM, затем после grace period применяет SIGKILL. Приложение должно выдерживать принудительное завершение за счёт транзакций, идемпотентности и восстановления, а не полагаться только на shutdown hook.


Как диагностировать высокую загрузку CPU в Linux?

Сначала смотрят тренд CPU и load, затем top или htop находят процесс, а режим потоков показывает горячий thread. mpstat -P ALL разделяет загрузку по ядрам и категории user, system, iowait, steal. Высокий load при свободном CPU может означать задачи в непрерываемом ожидании I/O, а не вычисления. Для процесса используют профилировщик, pidstat или perf по ситуации и сопоставляют всплеск с deploy, трафиком и логами. Причину подтверждают профилем или воспроизводимым изменением, а не завершают анализ на строке «CPU 100%».


Как диагностировать нехватку памяти в Linux?

free -h читают по available, а не по маленькому free: Linux использует память под reclaimable cache. В top, ps или smem ищут процессы по RSS/PSS и смотрят динамику, а не один снимок. vmstat показывает swap и page activity; постоянный swap-in/out вместе с задержкой указывает на давление памяти. Проверяют лимиты cgroup и журналы ядра на OOM kill, потому что контейнер может исчерпать свой лимит при свободной памяти хоста. Затем отделяют утечку heap, page cache и mmap с помощью метрик приложения и профайлера.


В каком порядке диагностировать сеть в Linux?

Диагностику ведут снизу вверх. Проверяют link, адрес и MTU через ip link и ip addr, затем маршрут и gateway через ip route. Отдельно проверяют DNS с dig или resolvectl, достижимость адреса и нужного TCP/UDP-порта, не полагаясь только на ping. На сервере ss -lntup показывает listener и bind-address. Затем смотрят firewall, security groups, NAT и proxy. Для HTTPS проверяют TLS handshake, имя сертификата и SNI через curl -v или openssl s_client. tcpdump помогает локализовать, доходят ли пакеты и где исчезает ответ.


Почему запись невозможна при свободном месте на диске?

Свободные байты не гарантируют возможность записи. Сначала проверяют inode через df -i: множество мелких файлов может исчерпать их раньше места. Затем смотрят quota пользователя или проекта, права на каталог и родительские директории, read-only mount и ошибки файловой системы в kernel log. На ext-файловых системах часть блоков может быть зарезервирована для root; контейнер также может иметь отдельный writable-layer или volume limit. df и du могут расходиться из-за удалённого, но ещё открытого файла. Причину подтверждают на том filesystem и под тем пользователем, который получает ошибку.


Как интерпретировать три значения Load Average?

Три числа Load Average описывают усреднённое число runnable задач и задач в непрерываемом ожидании примерно за 1, 5 и 15 минут. Их сравнивают с количеством доступных CPU. Load 8 на 8 CPU означает другую ситуацию, чем на 2 CPU. Рост последовательности 1/5/15 показывает недавний всплеск, обратное соотношение, снижение нагрузки. Load не является процентом CPU и может вырасти из-за дискового I/O. Поэтому его сопоставляют с mpstat, run queue, iowait, pressure и состоянием процессов, а в контейнере учитывают CPU quota.

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

Эти вопросы встречались нам на реальных собеседованиях в 2025 году. Мы регулярно проходим собеседования и пополняем подборку новыми вопросами. Основы профессии и ключевые технологии остаются востребованными годами, а детали конкретных инструментов и версий стоит сверять с текущей документацией.

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: DevOps-инженер, SRE-инженер. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

Гарантии нет: набор вопросов зависит от компании, задач команды, уровня вакансии и самого интервьюера. Эти вопросы уже встречались на реальных собеседованиях, но на твоём интервью ту же тему могут проверить другой формулировкой, практической задачей или обсуждением твоего опыта. Используй подборку, чтобы разобраться в теме: объясняй идею своими словами, приводи примеры и готовься обсудить ограничения и альтернативы решения. Так будет проще ответить и на знакомый вопрос, и на неожиданные уточнения.