Блог MAATRIX
Практические статьи о VPS и выделенных серверах: выбор конфигурации, настройка приложений, перенос проектов, безопасность и резервные копии.
Антипаттерн: вся инфраструктура держится на одном человеке
Bus factor равным единице: вся инфраструктура компании держится на одном человеке. Разбираем риски отпуска, болезни, увольнения и как их снизить.
Антипаттерн: все бэкапы у одного провайдера
Антипаттерн «все бэкапы у одного провайдера»: почему сбой, блокировка аккаунта или банкротство хостера уничтожат прод и копии разом. Схема диверсификации.
Антипаттерн: тюнинг ядра по чужому конфигу с форума
Почему копировать sysctl.conf с форума на свой сервер опасно, и как менять параметры ядра осмысленно — по одному и с измерением эффекта.
Антипаттерн: токены и персональные данные в логах
Токены и персональные данные в логах — утечка мимо защиты БД. Маскирование полей, аудит и отдельный доступ к логам. Оплата из России картой или криптой.
Антипаттерн: SRE-процессы в команде из двух человек
Error budgets, SLO на каждый сервис, формальный post-mortem — SRE-процессы для сотен инженеров в команде из двух съедают время вместо экономии. Что оставить.
Антипаттерн: спрятать админку по секретному адресу
Почему перенос /admin на секретный URL вместо пароля не защищает сервер — сканеры находят такие пути за часы. Оплата из России картой или криптой.
Антипаттерн: состояние приложения внутри контейнера
Сессии, файлы и кэш внутри контейнера пропадают при пересоздании и ломают масштабирование. Разбираем, куда выносить состояние. Оплата из России картой или криптой.
Антипаттерн: скрипт вместо документации
Bash и Ansible фиксируют, что делает сервер, но не почему. Разбор антипаттерна и того, что стоит писать рядом с автоматизацией. Оплата из России картой или криптой.
Антипаттерн: брать сервер «с запасом на три года вперёд»
Почему покупка сервера с трёхлетним запасом мощности почти всегда переплата, а не забота о будущем. Разбор ошибки и альтернатива. Оплата из России картой или криптой.
Антипаттерн: собирать образ прямо на боевом сервере
Docker build на проде отнимает ресурсы у трафика и даёт несогласованные образы. Разбираем риски и переход на сборку в CI с деплоем неизменяемого артефакта. Оплата картой или криптой.
Антипаттерн: самоподписанный сертификат «для внутренних сервисов»
Самоподписанный сертификат приучает команду кликать «Продолжить» не глядя. Риски и бесплатная замена: ACME DNS-01 или свой CA. Оплата из России картой/криптой.
Антипаттерн: плейбук Ansible, который никто не запускал полгода
Антипаттерн: плейбук Ansible полгода лежит без прогона — при аварии выясняется, что он не работает. Разбор config drift и почему нужен idempotency check. Оплата из России картой или криптой.
Антипаттерн: писать в лог всё подряд на всякий случай
Антипаттерн избыточного логирования — когда в продакшн пишут каждый шаг и все входные данные "на всякий случай". Почему это вредит, а не помогает.
Антипаттерн: переезд в облако без смены архитектуры
Lift-and-shift переносит монолит в облако «как есть», не давая ни масштабируемости, ни экономии. Оплата из России картой или криптой.
Антипаттерн: одна база данных на все проекты компании
Одна СУБД на все проекты экономит на старте, но чужой плохой запрос кладёт и вас. Разбираем риски shared-инстанса и рабочий компромисс по изоляции.
Антипаттерн: один VPN-конфиг на всю команду
Общий VPN-конфиг на всю команду — удобно сначала и опасно потом. Разбираем, почему так делать нельзя, и как раздать индивидуальные ключи правильно.
Антипаттерн: очередь сообщений там, где хватило бы cron
RabbitMQ или Kafka под задачу «раз в час обработать новые записи» — это лишний сервис, а не надёжность. Разбираем, когда очередь нужна, а когда хватит cron.
Антипаттерн: общий root-пароль на всю команду
Общий root-пароль на команду — удобно поначалу и опасно потом. Разбираем, почему теряется аудит, как правильно настроить именные доступы через sudo и SSH-ключи.
Антипаттерн: обновлять всё разом раз в год
Антипаттерн «большого обновления» раз в год: разрыв версий, неразбираемые поломки, месяцы без патчей безопасности. Оплата из России картой или криптой.
Антипаттерн: нагрузочное тестирование на ноутбуке разработчика
Почему нагрузочный тест, запущенный с домашнего ноутбука, врёт о реальной производительности сервиса — сеть, CPU и близость к цели искажают цифры.
Антипаттерн: на сервере тот же дистрибутив, что на десктопе
Почему ставить на сервер тот же Linux, что стоит на рабочем ноутбуке — плохая идея: лишние пакеты, поверхность атаки, чужие настройки по умолчанию. Оплата из России картой или криптой.
Антипаттерн: мониторинг на том же сервере, что и продакшен
Мониторинг живёт на одном хосте с продом — и молчит именно в момент, когда сервер падает целиком. Разбор антипаттерна. Оплата из России картой или криптой.
Антипаттерн: масштабировать раньше, чем найдено узкое место
Почему добавление серверов при тормозах приложения часто не помогает, а лечит симптом вместо причины. Оплата из России картой или криптой.
Антипаттерн: кешировать персональные страницы целиком
Кеш CDN или reverse proxy отдаёт HTML личного кабинета одного пользователя другому. Разбираем причину, Cache-Control, fragment caching и тестирование.
Антипаттерн: кеш без стратегии инвалидации
Кеш без плана сброса устаревших данных — путь к stale data и неуловимым багам. Разбираем TTL, event-based инвалидацию и версионирование ключей. Оплата из России картой или криптой.
Антипаттерн: ИИ-агент с полным доступом к продакшену
Разбор антипаттерна "ИИ-агент с root-доступом к проду": непредсказуемость модели, деструктивные команды без ревью, prompt injection и как настроить безопасно.
Антипаттерн: хранить картинки и файлы в базе данных
Почему BLOB-поля с файлами раздувают базу, тормозят бэкапы и ломают кэширование — и как хранить файлы правильно. Оплата из России картой или криптой.
Антипаттерн: дообучать модель там, где хватило бы промпта
Fine-tuning без нужды съедает недели на датасет и обучение там, где закрыл бы вопрос обычный системный промпт. Разбираем иерархию: промпт → RAG → дообучение.
Антипаттерн: docker compose down при каждом обновлении
Docker compose down перед каждым up роняет сервисы, которые не менялись, и рискует данными в volumes. Правильный подход — docker compose up -d и --no-deps.
Антипаттерн: автообновления везде и без бэкапа
Автообновления без бэкапа перед ними и контроля после — это не автоматизация, а отложенный инцидент. Разбираем риски и рабочий баланс между security-патчами и стабильностью.
Антипаттерн: архитектура Netflix для проекта на 200 пользователей
Зачем проекту на 200 пользователей микросервисы, очередь сообщений и пять специализированных баз данных? Разбор антипаттерна и принципа соразмерности архитектуры.
Антипаттерн: алерт на каждый скачок нагрузки
Алерт на любое отклонение CPU от нормы рождает шум и усталость команды. Как настроить пороги по длительности и SLO. Оплата из России картой или криптой.
Ansible прогнали не на той группе хостов: 20 машин получили чужой конфиг
Разбор инцидента — как объединение ansible-инвентарей прод и стейджинга привело к тому, что 20 боевых серверов получили чужой конфиг. Оплата из России картой или криптой.
Ansible-плейбуки под отечественные ОС: что придётся переписать
Что в Ansible-плейбуках под Ubuntu ломается на Astra Linux, РЕД ОС и ALT Linux — пакетный менеджер, пути, пакеты, facts. Оплата из России картой или криптой.
Аналитик грузит выгрузку на 40 ГБ в Excel: сервер вместо мучений
Выгрузка на 40 ГБ не открывается в Excel: лимит строк, нехватка памяти. Обработка на сервере с pandas и DuckDB. Оплата из России картой или криптой.
Амортизация серверного железа: как считать срок жизни честно
Бухгалтерский срок амортизации сервера редко совпадает с реальным. Как честно оценить срок жизни железа и не ошибиться с бюджетом. Оплата картой или криптой.
ALTER TABLE на 200 миллионов строк заблокировал прод на сорок минут
Почему ALTER TABLE на большой таблице может сам по себе идти десятки минут под эксклюзивной блокировкой и как проверить это заранее. Оплата из России картой или криптой.
ALT Linux и apt-rpm: почему привычные команды ведут себя иначе
ALT Linux использует apt-rpm — apt поверх RPM, а не DEB. Почему привычные команды и флаги дают не тот результат и где искать документацию под ALT.
Как алгоритм Нейгла добавляет вашему API ровно 40 миллисекунд
Разбираем, как алгоритм Нейгла конфликтует с delayed ACK и добавляет фиксированную задержку запрос-ответным API. Что такое TCP_NODELAY и когда его включать.
Алерт ушёл в чат, который никто не открывал четыре месяца
Разбор инцидента про мониторинг, который честно отправлял алерты — но в мёртвый чат. Почему так бывает и как проверить, что уведомления реально доходят.
Аккаунт хостинга на личной почте сотрудника: чем это заканчивается
Хостинг компании зарегистрирован на личном email сотрудника — риски при увольнении, взломе почты и конфликте. Как оформлять инфраструктуру верно с начала.
Агрофирма: датчики в полях шлют данные в облако вендора — забираем поток себе
Датчики в полях шлют телеметрию в облако производителя — а не вам. Разбираем, как поставить свой сервер приёма данных. Оплата из России картой или криптой.
Агентство доросло до тридцати клиентских сайтов: пора съезжать с чужих хостингов
Когда агентству с 30+ клиентскими сайтами на разных хостингах пора на свою инфраструктуру: экономика, риски и план поэтапной миграции. Оплата из России.
Почему шифрование перестало нагружать процессор и что изменилось внутри него
Почему TLS почти не грузит CPU сервера — аппаратный AES-NI, лёгкие современные шифры и где реально уходит время запроса. Оплата из России картой или криптой.
Адвокатская тайна и облачный диск: почему это плохо кончается
Материалы дела в публичном облаке лежат на чужой инфраструктуре, а не в приватной папке. Разбираем, почему свой сервер — более защищаемая позиция. Оплата из России картой или криптой.
Админ уволился и унёс доступы: как вернуть контроль над своей инфраструктурой
Ключевой администратор ушёл и не отдаёт пароли. Как договориться, какие есть юридические основания и как больше не зависеть от одного человека.
Администратор ушёл и забрал доступы: возвращаем контроль над своей инфраструктурой
Единственный технарь ушёл, а пароли от хостинга, домена, репозиториев и платёжных аккаунтов остались только у него. Пошаговый план возврата контроля.
Админ ушёл со всеми паролями: план возврата контроля
Единственный админ уволился, а root, панель хостинга и домен были только у него. Пошаговый план восстановления доступа и как это не повторить.
ActivityWatch на своём сервере: учёт времени, который бьёт по доверию
ActivityWatch — открытый трекер активности без скриншотов и кейлоггера. Как поднять его на своём сервере и почему честный учёт всё равно может подорвать доверие в команде.
65 535 портов — миф о потолке: сколько исходящих соединений вы откроете на самом деле
65 535 — это диапазон портов на одном IP для исходящих соединений к одному адресу, а не потолок сервера. Считаем реальный лимит и как его раздвинуть.
Каждые 50 мс задержки: как выбор локации сервера отражается на заказах в магазине
Как задержка сервера связана с конверсией интернет-магазина и почему выбор локации дата-центра — архитектурное решение, а не мелочь. Оплата из России картой или криптой.
Загрузка 20%, а очередь на CPU росла: нашли лимит в cgroup
Мониторинг показывал CPU 20%, а запросы всё равно копились в очереди. Разбор инцидента с CFS quota в cgroup — почему усреднённый процент врёт.
База выросла вдвое за ночь: забытый слот репликации не давал чистить WAL
Разбор инцидента — за ночь диск под PostgreSQL заполнился вдвое из-за забытого слота репликации. Как нашли причину через pg_replication_slots и починили. Оплата из России картой или криптой.
Временные файлы сортировки заполнили диск базы за четыре минуты
Как один тяжёлый запрос без индекса и work_mem по умолчанию за четыре минуты забил диск PostgreSQL временными файлами сортировки. Оплата из России картой или криптой.
Внутренний CA протух через десять лет и остановил обмен между сервисами
Разбор инцидента с истёкшим корневым CA в mTLS-инфраструктуре: почему за 10 лет никто не заметил проблему и как настроить мониторинг сертификатов правильно. Оплата серверов из России картой или криптой.
VLAN повесили не туда, и прод два часа жил в тестовой сети
Разбор инцидента с изоляцией сетей: порт коммутатора назначили не на тот VLAN, и продакшн-сервер оказался в тестовом сегменте. Оплата из России картой или криптой.
Убрали промежуточный сертификат — и мобильное приложение отвалилось
Мобильное приложение перестало подключаться к API после планового обновления SSL. Разбираем, как пропавший промежуточный сертификат ломает TLS для мобильных клиентов.
У регистратора остались NS прошлого подрядчика: домен разъехался
Почему часть посетителей видела старый сайт, а часть — новый, после смены DNS-подрядчика. Разбор делегирования NS, лишних записей у регистратора и чек-лист миграции.
TTL 86400 превратил пятиминутный переезд в двухдневный
Разбор реального инцидента с DNS TTL при переезде на новый сервер — почему смена A-записи растянулась на двое суток и как готовить TTL заранее.
Три недели ловили тормоза, а мы просто стояли в очереди за чужим CPU
Задержки API не совпадали с нагрузкой внутри VPS. Разбираем инцидент со steal time — как понять, что сервер простаивает в очереди за чужим CPU, и что с этим делать.
Transparent Huge Pages удвоили задержки базы, и никто не понимал почему
Разбор инцидента — как Transparent Huge Pages удвоили p99-задержки PostgreSQL на новом сервере. Логи, гипотезы, реальная причина и фикс. Оплата из России картой или криптой.
tmpfs на /run вырос до 8 ГБ и положил сервер за сутки
Память кончалась сутки, ни один процесс не выглядел виновником, а причиной оказался tmpfs на /run. Разбор инцидента, мониторинг и защита от повтора.
Тег latest подтянул новую версию ночью, и API начал отдавать 500
Разбор инцидента — API упал в 3 ночи без единого деплоя. Как искали причину и почему виноват был тег latest в docker-compose. Оплата сервера из России картой или криптой.
Свободно 40%, а запись встала: фрагментация пула ZFS
ZFS показывает 40% свободного места, а запись всё равно тормозит. Разбираем фрагментацию пула, метрику zpool list и порог 80% заполнения.
Старые Android перестали открывать сайт после смены корневого центра
Старые Android перестали открывать сайт после обновления сертификата — разбор цепочки доверия и корневых CA. Оплата из России картой или криптой.
Снапшоты делали каждый час — через месяц пул перестал принимать запись
Настроили автоматические снапшоты ZFS каждый час, но забыли ротацию — через месяц пул заполнился и отказал в записи. Разбор причины. Оплата картой или криптой.
Сменили collation — и уникальные индексы перестали быть уникальными
Разбор инцидента с PostgreSQL — после планового обновления ОС уникальный индекс перестал ловить дубли из-за смены сортировки glibc. Оплата из России картой или криптой.
Скопировали 2 ТБ и потеряли права доступа: rsync без одного флага
rsync перенёс 2 ТБ файлов без ошибок, но приложение перестало их читать — разбор причины: владелец и группа не сохранились. Оплата из России картой или криптой.
Скачки задержки ровно в 03:15: бэкап соседа забивал общий аплинк
Сеть каждую ночь проседала ровно в 03:15 без видимой причины. Разбираем, как бэкап соседа по узлу забивал общий канал VPS. Оплата картой или криптой из России.
Сервер замирал на 12 секунд каждые шесть часов: сборка мусора JVM
Java-сервис зависал на 12 секунд каждые шесть часов, а CPU и диск молчали. Разбираем, как нашли Full GC по логам и почему куча не справлялась с нагрузкой.
Сервер с 64 ГБ ушёл в своп из-за одного лимита в systemd
Сервис активно уходил в своп при полусвободных 64 ГБ RAM. Разбор инцидента — как cgroups и MemoryMax в systemd режут память отдельному юниту. Оплата из России картой или криптой.
Сертификат обновлялся, а nginx не перечитывал его 60 дней
Certbot продлевал сертификат исправно, но nginx отдавал старый файл. Разбираем инцидент по логам и находим неисполняемый deploy-hook. Оплата сервера картой или криптой из России.
Счётчик автоинкремента упёрся в потолок и заказы перестали создаваться
Разбор реального инцидента с INT-переполнением id в MySQL: как заказы перестали создаваться, что проверяли и как перевели таблицу на BIGINT без долгого простоя.
Сборка прошла, тесты прошли, а на прод уехал прошлый коммит
Разбор гонки двух CI/CD пайплайнов: у нового коммита всё зелёное, а на проде — старый код. Почему так бывает и как это исправить. Оплата из России картой или криптой.
Сайт жил по IPv4 и молчал по IPv6: полгода теряли часть аудитории
Сайт полгода работал только по IPv4 — без AAAA-записи часть аудитории через CGNAT получала более медленный доступ. Оплата картой или криптой из России.
Ретрансмиты 8%: виновником оказался один патч-корд в стойке
Сервис тормозил без единой ошибки в логах, CPU и память были в норме. Разбор нашёл 8% ретрансмитов TCP — причина оказалась физической: битый патч-корд.
Реплика отстала на 6 часов из-за одной длинной транзакции на мастере
Реплика PostgreSQL молчала полдня, хотя сеть и слот были в порядке. Разбираем, как одна транзакция без батчей забила очередь WAL. Оплата картой или криптой.
Redis рос до самого перезапуска: забыли про maxmemory-policy
Redis рос без остановки, а ночной рестарт скрывал утечку месяцами. Разбираем инцидент: maxmemory-policy, потерянный лимит и как поймать это в метриках.
Приватный реестр протух, и кластер не поднял ни один под
Разбор инцидента: почему после планового рестарта нод ни один под не поднялся. Виноват просроченный robot-аккаунт Harbor. Оплата из России картой или криптой.
В момент деплоя два экземпляра приложения не влезли в лимит контейнера
Почему деплой валит сервис, а до и после всё работает: rolling update держит старую и новую версию разом, лимит памяти контейнера не выдерживает.
После переезда всё стало вдвое медленнее: у нового CPU отключили турбо
Разбор инцидента — миграция на более мощный по паспорту сервер удвоила задержки. Причина нашлась в BIOS, а не в коде. Оплата из России картой или криптой.
Половина клиентов не могла загрузить файл больше мегабайта
Разбор инцидента — часть клиентов не могла загрузить файл больше мегабайта, у остальных всё работало. Причина в MTU и заблокированном ICMP, а не в коде.
Письма уходили в спам только у клиентов Outlook: разбор одного заголовка
SPF, DKIM и DMARC проходили, но письма на Outlook.com и Microsoft 365 стабильно падали в «Спам». Разбор инцидента: виноват был один заголовок — Message-ID.
Пинг был 12 мс, а соединение вставало 3 секунды: виноват оказался IPv6
Разбор инцидента — ping 12 мс, но HTTP-соединение висло 3 секунды. Причина в Happy Eyeballs и битом IPv6. Оплата из России картой или криптой.
PID 1 не пересылал сигналы, и каждый деплой ронял запросы клиентов
Docker слал SIGTERM, а контейнер не реагировал — оболочка-PID1 не пересылала сигнал процессу. Разбор инцидента: почему деплой стабильно ронял запросы 10 секунд.
pgBouncer в режиме transaction сломал подготовленные запросы
Разбор реального инцидента с pgBouncer в transaction pooling и prepared statements в PostgreSQL. Причина, диагностика, рабочий фикс. Оплата из России картой или криптой.
Отключили TLS 1.0 и вместе с ботами потеряли платёжный шлюз
Разбор инцидента с логами nginx и tcpdump — почему после отключения TLS 1.0/1.1 перестали приходить колбэки от эквайера и как исправили без отката хардненинга.
Одна опечатка в SPF положила рассылку на неделю
Разбор реального инцидента - опечатка в одном include SPF-записи обрушила доставку почты на неделю. Логи, ложные версии и найденная причина.
Один запрос без LIMIT положил реплику, а вместе с ней все отчёты
Разбор реального инцидента с PostgreSQL: запрос без LIMIT забил диск реплики временными файлами и остановил все отчёты. Как нашли причину и защитились. Оплата из России картой или криптой.
Один клиент открыл 60 тысяч соединений и убил NAT на шлюзе
Разбор инцидента — как один клиент открыл 60 000 соединений, забил таблицу conntrack и оборвал сеть для всех остальных. Диагностика, фикс, защита на будущее.
OCSP-ответчик у центра сертификации лёг, и сайт открывался 9 секунд
Разбор инцидента — сайт грузился 9 секунд без нагрузки на сервер. Причина в упавшем OCSP-ответчике CA и в том, как проверить и настроить OCSP stapling в nginx.
Обрывы каждые десять минут: keepalive балансировщика был короче клиентского
Долгие соединения рвались строго по таймеру — разбираем инцидент с идентичным интервалом обрывов и находим рассинхрон idle timeout между звеньями цепи. Оплата из России картой или криптой.
Мониторинг показывал 30% диска, а приложение писало «нет места»
Разбор инцидента — df -h честно показывает свободное место, а сервис получает No space left on device. Как inode ломают привычный мониторинг диска.
Митигации Spectre съедали 30% производительности базы
Задержки PostgreSQL выросли на 30% после планового обновления ядра — разбираем, как retpoline и KPTI бьют по syscall-тяжёлым базам. Оплата из России картой или криптой.
Миграция добавила одну колонку и заблокировала таблицу на 11 минут
Разбор инцидента — ALTER TABLE ADD COLUMN заблокировал таблицу Postgres на 11 минут. Почему быстрая миграция встала в очередь блокировок и как это исправили.
Лимит в 512 МБ убивал контейнер ровно на пятый день работы
Контейнер с лимитом 512 МБ падал не от нагрузки, а от медленной утечки в коде — разбор по логам, метрикам и heap snapshot. Оплата из России картой или криптой.
latin1 в MySQL испортил 300 тысяч имён, и мы заметили только через год
Разбор инцидента — колонка name осталась в latin1, MySQL тихо превращал кириллицу в «?», данные исчезали до бэкапа. Оплата из России картой или криптой.
ksoftirqd на 100%: все прерывания сети сидели на одном ядре
Разбор инцидента: ksoftirqd съел ядро целиком из-за сетевых прерываний на одном CPU. Как нашли причину и распределили нагрузку по ядрам.
Кривой анонс BGP у аплинка увёл наш трафик в Бразилию
Разбор реального инцидента — опечатка в BGP-анонсе у транзитного оператора увела трафик части клиентов через другой континент. Оплата из России картой или криптой.
Кеш отрицательных ответов держал сайт мёртвым ещё час после починки
Разбор инцидента с DNS: сайт чинили за минуты, но часть посетителей видела NXDOMAIN ещё час — виноват был кеш отрицательных ответов. Оплата из России картой или криптой.
Каждую ночь падал не тот процесс: разбираемся с oom_score_adj
OOM killer каждую ночь убивал не самый прожорливый процесс, а важный сервис. Разбор инцидента: как oom_score_adj подставляет жертву вместо виновника.
Jumbo frames включили на половине пути: файлы копировались, база отваливалась
Разбор инцидента с MTU 9000 во внутренней сети — почему копирование файлов работало, а подключения к базе рвались. Оплата из России картой или криптой.
Индекс был, но планировщик его не брал: статистика устарела на два месяца
Разбор инцидента с PostgreSQL — планировщик игнорировал рабочий индекс и ушёл в Seq Scan из-за устаревшей статистики. Оплата из России картой или криптой.
Контейнер жил, а приложение внутри было мертво: healthcheck проверял не то
Docker показывал контейнер healthy, а API отдавал 504 по всем запросам: healthcheck проверял не то. Разбор инцидента и настройка readiness для VPS.
Headless Chrome съел 300 ГБ временными файлами за одну ночь
Headless Chrome копит профили в /tmp при каждом запуске и может забить весь диск за ночь. Разбор инцидента и защита. Оплата из России картой или криптой.
Governor стоял в powersave: полгода сервер работал на половине частоты
Governor CPU застрял в powersave, сервер полгода работал вдвое медленнее, а графики загрузки молчали. Разбираем поиск причины и фикс. Оплата картой или криптой.
Форма обратной связи стала открытым релеем: домен забанили за сутки
Необработанное поле email в форме обратной связи превратилось в инъекцию заголовков PHP mail() — и домен попал в чёрные списки меньше чем за сутки.
Два сервера писали в один NFS-раздел и получили битые файлы без ошибок
Разбор инцидента — два процесса писали в один файл на NFS, оба отчитались об успехе, а файл оказался испорчен. Почему NFS так делает и как проектировать иначе.
Два продукта слали с одного IP: жалобы на один убили доставку второго
Разбираем инцидент — рассылка одного продукта испортила IP-репутацию и увела в спам письма другого сервиса. Оплата из России картой или криптой.
Два автоответчика зациклились и сгенерировали 40 тысяч писем за ночь
Разбор инцидента с почтовой петлёй между автоответчиком Sieve и скриптом тикет-системы — что видели в логах Postfix, какие версии отбросили и как поставили заслон навсегда.
Docker переписал правила iptables и открыл базу в интернет
UFW показывал deny incoming, а PostgreSQL всё равно был доступен снаружи. Разбираем, как Docker обходит firewall через свои цепочки iptables. Оплата из России картой или криптой.
Резолверы уходили в таймаут: DNSSEC сломался после смены ключей
Разбор инцидента с DNSSEC — почему домен перестал открываться у части пользователей после ротации ключей и как избежать этой ошибки. Оплата из России картой или криптой.
DNS внутри кластера отвечал 5 секунд: виноват был параметр ndots
DNS-запросы к внешним доменам из подов Kubernetes иногда шли 5 секунд: виноват ndots в resolv.conf. Разбираем причину и фикс. Оплата картой или криптой.
DKIM подписывал письма ключом, которого уже не было в DNS
Разбор инцидента, где почтовый сервер честно подписывал письма DKIM, а публичного ключа в зоне уже не было. Как искали причину и что изменили после.
Диск был здоров по SMART, а данные бились: виновником оказался кабель
Разбор реального инцидента с тихой порчей данных: SMART диска показывал полное здоровье, а причина была в SATA-кабеле. Аренда сервера с оплатой из России картой или криптой.
Deadlock каждый вторник: два сервиса брали блокировки в разном порядке
Разбор реального инцидента с deadlock в PostgreSQL по вторникам — как искали причину по логам и pg_locks, и почему помог только единый порядок блокировок. Оплата сервера из России картой или криптой.
Данные исчезли после docker compose down: виноват анонимный volume
Разбираем инцидент — после обычного docker compose down база оказалась пустой. Причина в анонимном volume и как её найти и не повторить. Оплата из России картой или криптой.
ClickHouse съел всю память сервера на одном GROUP BY
Один GROUP BY по колонке высокой кардинальности положил сервер ClickHouse целиком. Разбираем причину OOM и лимиты памяти. Оплата из России картой или криптой.
База замирала на 15 секунд: разбор фонового TRIM на всём разделе
База данных зависала ровно на 15 секунд по расписанию — разбираем, как периодический TRIM всего раздела блокирует диск. Оплата из России картой или криптой.
Батарейка RAID-контроллера села, и запись стала в 20 раз медленнее
RAID-контроллер резко замедлил запись, чтение в норме. Причина — разряженная батарея BBU и авто-переход в write-through. Оплата картой и криптой.