---
title: Linux и диагностика
questionDates:
  q-transfer-0408: '2026-10-01'
  q-transfer-0409: '2026-10-01'
  q-transfer-0410: '2026-10-01'
  q-transfer-0411: '2026-10-01'
  q-transfer-0412: '2026-10-01'
  q-transfer-0424: '2026-10-01'
  q-transfer-0425: '2026-10-01'
seo:
  description: >-
    Тема «Linux и диагностика» для собеседования DevOps. Как отличить
    заполненный диск от перегруженного I/O? Чем SIGTERM отличается от SIGKILL?
  title: Linux и диагностика — DevOps
---

[Все темы DevOps](/prep/devops)

## Как отличить заполненный диск от перегруженного I/O? [#q-transfer-0408]

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

:::note[Ссылки для изучения]

1. [df: доступное место в файловой системе и заполненность inode](https://manpages.debian.org/testing/manpages-ru/df.1.ru.html)
1. [iostat: задержки, очередь и ограничения %util на SSD, NVMe и СХД](https://habr.com/ru/companies/yadro/articles/737866/)
   :::

---

## Чем SIGTERM отличается от SIGKILL? [#q-transfer-0409]

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

:::note[Ссылки для изучения]

1. [Сигналы Linux: обработчики, SIGTERM и неперехватываемый SIGKILL](https://manpages.debian.org/testing/manpages-ru/signal.7.ru.html)
   :::

---

## Как диагностировать высокую загрузку CPU в Linux? [#q-transfer-0410]

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

:::note[Ссылки для изучения]

1. [Диагностика CPU: нагрузка по ядрам, процессы и профилирование perf](https://habr.com/ru/companies/ruvds/articles/1000218/)
   :::

---

## Как диагностировать нехватку памяти в Linux? [#q-transfer-0411]

`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 с помощью метрик приложения и профайлера.

:::note[Ссылки для изучения]

1. [Нехватка памяти: available, освобождаемый cache, активность swap и OOM](https://habr.com/ru/companies/ruvds/articles/1065526/)
   :::

---

## В каком порядке диагностировать сеть в Linux? [#q-transfer-0412]

Диагностику ведут снизу вверх. Проверяют 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` помогает локализовать, доходят ли пакеты и где исчезает ответ.

:::note[Ссылки для изучения]

1. [Сетевая диагностика: DNS, TCP-порт, TLS/HTTP, listener и firewall](https://habr.com/ru/companies/ruvds/articles/1065526/)
   :::

---

## Почему запись невозможна при свободном месте на диске? [#q-transfer-0424]

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

:::note[Ссылки для изучения]

1. [Свободные байты без возможности записи: исчерпание inode и открытые удалённые файлы](https://habr.com/ru/companies/ruvds/articles/1065526/)
   :::

---

## Как интерпретировать три значения Load Average? [#q-transfer-0425]

Три числа 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.

:::note[Ссылки для изучения]

1. [Load Average: интервалы 1/5/15 минут, runnable-задачи и непрерываемое ожидание](https://habr.com/ru/companies/vk/articles/335326/)
   :::
