Обо мне / Подготовка к assesment
Список озвученных вопросов на assesment
| Вопрос | Ответ |
|---|---|
| Ты узнал о проблеме, что страница какого‑то ресурса не открывается, как будешь дебажить? | Пошаговый план: 1. Проверить доступность с разных устройств/сетей (исключить локальную проблему). 2. ping и traceroute до домена — проверить сетевую связность.3. nslookup/dig — проверить DNS‑резолюцию.4. curl -I <URL> или wget — посмотреть HTTP‑статус и заголовки.5. Проверить логи веб‑сервера ( /var/log/nginx/access.log, /var/log/apache2/error.log).6. Проверить статус и логи бэкенда (приложение, БД). 7. Проверить балансировщики нагрузки, CDN, файрволы. 8. Проверить сертификаты SSL/TLS ( openssl s_client -connect <host>:<port>). |
| В каком случае выдаётся 502, а в каком 504? | * 502 Bad Gateway: прокси/балансировщик получил некорректный ответ от бэкенда (бэкенд упал, вернул невалидный HTTP, зависает). 504 Gateway Timeout:* прокси/балансировщик не получил ответа от бэкенда в течение таймаута (бэкенд слишком долго отвечает или недоступен). |
По какой причине при обращении к бэкенду получаем connection refused? |
Основные причины: сервис не запущен; слушает не на том порту/интерфейсе ( 0.0.0.0 vs 127.0.0.1)файрвол блокирует соединение; превышено максимальное число подключений (backlog); * процесс бэкенда аварийно завершился. |
Зачем нужен EXPOSE в Dockerfile и где он используется? |
EXPOSE <порт> — документационная метка, указывающая, какой порт использует контейнер.Не открывает порт автоматически. Информирует пользователя и системы оркестрации (Docker Compose, Kubernetes). * Порт нужно пробросить явно: -p <хост>:<контейнер> или -P (публиковать все EXPOSE‑порты). |
Чем отличается ENTRYPOINT от CMD в Dockerfile?** |
* ENTRYPOINT: определяет основную команду, которая всегда выполняется при запуске контейнера (не перезаписывается без флага --entrypoint). Подходит для фиксированного поведения (например, запуск веб‑сервера).CMD: задаёт аргументы по умолчанию* для ENTRYPOINT. Может быть легко переопределена при запуске (docker run <образ> <новые аргументы>).Если ENTRYPOINT не задан, CMD выполняет команду. |
| В каком случае процесс убивается по OOM? | Процесс убивается OOM Killer (Out Of Memory Killer), когда система исчерпала: оперативную память (RAM); swap. Ядро пытается освободить память, убивая процессы. |
| Как система понимает, кого убить по OOM? | OOM Killer вычисляет OOM score для каждого процесса: выше балл — выше шанс быть убитым; учитываются: потребление памяти, время жизни, приоритет ( nice), дочерние процессы;* можно повлиять: echo -1000 > /proc/<PID>/oom_score_adj (снизить шанс убийства). |
Как узнать, какое количество оперативки жрёт процесс не в процентах, а в абсолютном выражении? Что за память RES и VIRT в выводе команды top? |
* Абсолютное потребление: top, затем столбец RES (Resident Set Size).RES (Resident): физическая RAM, реально используемая процессом (в КБ/МБ). VIRT (Virtual): общий объём виртуальной памяти, запрошенной процессом (включая swap, shared libraries, mapped files). Не равно реальному потреблению. |
| Как посмотреть размер каталога? | Команды:du -sh <каталог> — общий размер в человекочитаемом формате (-h), суммировано (-s).du -h --max-depth=1 <каталог> — размер подкаталогов 1‑го уровня.* В файловых менеджерах (Nautilus, Dolphin) — ПКМ → «Свойства». |
| Какие знаешь команды из двух символов? | Примеры:ls — список файлов;cd — смена директории;cp — копирование;mv — перемещение/переименование;rm — удаление;ps — список процессов;df — свободное место на дисках;du — использование диска;* vi/ed — редакторы. |
| Какой шаблонизатор использует Helm? | Go templates (шаблонизатор языка Go). Helm использует его для генерации YAML‑манифестов Kubernetes из шаблонов с подстановкой значений из values.yaml. |
Какие типы systemd юнитов бывают и чем simple отличается от forking? |
Основные типы: .service, .socket, .timer, .mount, .target, .path и др.Отличия: Type=simple: systemd считает сервис запущенным сразу после запуска процесса. Процесс не должен демонизироваться (остаётся на переднем плане).Type=forking: процесс создаёт дочерний процесс и завершается. systemd отслеживает дочерний (демонизированный) процесс. Используется для классических демонов (например, sshd, nginx). |