Consul: первое знакомство — service discovery и KV за пять команд

Consul от HashiCorp решает задачу, которая в небольшой инфраструктуре обычно закрыта руками — “какой адрес у сервиса X прямо сейчас” и “где лежит этот конфиг, пока он не доехал до всех нод”. Сам Consul — это распределённый каталог сервисов с health-check’ами плюс встроенное KV-хранилище, и оба механизма доступны уже в режиме для локального теста. ...

October 8, 2026 · llexa

dmidecode: что сервер знает сам о себе

dmidecode берёт информацию не через опрос устройств, а напрямую из таблиц DMI/SMBIOS, которые прошивка платы заполняет при старте и оставляет в памяти. Поэтому это не инвентаризация шин вроде lspci/lsusb — это то, что сама материнская плата знает о себе и о том, что в неё воткнуто, включая слоты, в которые ничего не вставлено. ...

October 8, 2026 · llexa

Архиваторы #9: brotli — сжатие, заточенное под веб

brotli Google делала не как ещё один универсальный архиватор, а конкретно под HTTP-ответы — отсюда главное отличие от zstd и gzip: встроенный статический словарь примерно на 122 КБ, порядка 13 с половиной тысяч слов и фраз из HTML, JS и нескольких живых языков (включая русский). zstd и gzip строят словарь с нуля по ходу сжатия конкретного файла, brotli же стартует с готовым набором типичных для веба последовательностей — на маленьких текстовых файлах это даёт заметную фору, которую окно скользящего сжатия само наверстать не успевает. ...

October 8, 2026 · llexa

DBA #12: логическая репликация — репликация на уровне строк

Обычная streaming-репликация в PostgreSQL копирует кластер байт-в-байт — WAL одинаковый на всех репликах, и реплика обязана быть той же мажорной версии, что и мастер. Логическая репликация работает иначе: она декодирует WAL в поток изменений строк (insert/update/delete) и применяет их через обычный SQL. Из-за этого можно реплицировать не весь кластер, а отдельные таблицы, и версии publisher/subscriber могут отличаться — это штатный способ мигрировать между мажорными релизами без pg_upgrade и почти без простоя. ...

October 7, 2026 · llexa

fuser: не смотреть, а убить

lsof хорош, когда нужно посмотреть, кто держит файл — вывод списком, дальше сам решаешь, что делать. fuser делает тот же поиск, но заточен сразу под действие: если устройство не размонтируется из-за “device is busy”, fuser не просто покажет PID, а по ключу тут же его прибьёт. # кто держит файл или точку монтирования — с подробностями fuser -v /mnt/data # то же самое, но по всей файловой системе fuser -vm /mnt/data # убить все процессы, держащие /mnt/data (SIGKILL по умолчанию) fuser -k /mnt/data # убить мягко, с подтверждением на каждый процесс fuser -ki -TERM /mnt/data -v добавляет колонки USER, PID, ACCESS, COMMAND вместо голого списка PID — без него fuser выводит почти нечитаемую строку из одних номеров. -k шлёт SIGKILL, если не указано иное через -SIGNAL (например -HUP или -TERM), а -i заставляет спрашивать подтверждение перед каждым убийством — полезная страховка, когда файловую систему делят несколько процессов и часть из них лучше не трогать. ...

October 7, 2026 · llexa

stat: метаданные файла без догадок

ls -l показывает права и размер, но часто нужно больше — номер inode, точное время в секундах с эпохи, или формат под парсинг в скрипте. Для этого в GNU coreutils есть stat. Голый вызов stat file.txt выдаёт сразу всё: inode, число хардлинков, права в символьном и восьмеричном виде (%a/%A), владельца и три времени. Разница между ними путает почти всех в первый раз: atime (%x/%X) — последнее чтение файла, mtime (%y/%Y) — последнее изменение содержимого, ctime (%z/%Z) — последнее изменение метаданных (прав, владельца, количества ссылок), и это не «creation time», как иногда думают по аналогии с Windows. ...

October 7, 2026 · llexa

nginx: ограничение числа соединений через limit_conn

limit_req режет частоту запросов в секунду, а limit_conn в nginx решает другую задачу — ограничивает, сколько соединений с одного ключа (обычно IP) может быть открыто одновременно. Это разные лимиты, и путать их не стоит: клиент может укладываться в лимит запросов в секунду и всё равно держать десятки параллельных закачек с одного адреса. http { limit_conn_zone $binary_remote_addr zone=addr:10m; server { location /download/ { limit_conn addr 1; } } } Здесь на один IP разрешено одно одновременное соединение с /download/ — типичный кейс для раздачи файлов, где важно не количество запросов в секунду, а то, сколько параллельных закачек тянет один клиент. При превышении лимита nginx по умолчанию отвечает 503, код меняется через limit_conn_status. ...

October 6, 2026 · llexa

pgBackRest: бэкапы PostgreSQL без самодельных скриптов вокруг pg_basebackup

pg_basebackup делает ровно одну вещь — снимает физическую копию кластера, а всё остальное (расписание, ретеншн, инкременты, сжатие в несколько потоков) приходится дописывать самому в обвязке на bash. pgBackRest с самого начала проектировался как отдельный инструмент именно под эти задачи, а не как обёртка вокруг pg_basebackup. ...

October 6, 2026 · llexa

snmp_exporter: как затащить метрики со свитчей и ИБП в Prometheus

У свитча или ИБП обычно нет /metrics, зато почти всегда есть SNMP-агент. snmp_exporter превращает SNMP-опрос в тот же текстовый формат, что отдают остальные Prometheus-экспортеры, и дальше устройство встраивается в общий мониторинг как любой другой таргет. ...

October 6, 2026 · llexa

iotop: кто жрёт диск прямо сейчас

iostat показывает суммарную загрузку диска по устройству, но не говорит, какой процесс в этом виноват. iotop закрывает этот пробел — тот же принцип, что у top, только вместо CPU и памяти в колонках дисковое чтение/запись по каждому процессу, обновляется вживую. Голый запуск заваливает список десятками процессов с нулевым I/O, которые просто существуют в системе. Флаг -o (--only) оставляет на экране только тех, кто реально что-то читает или пишет прямо сейчас: iotop -o По умолчанию iotop показывает мгновенную скорость за последний интервал — короткий всплеск активности легко проскочить между кадрами. Флаг -a (--accumulated) переключает на накопленный с момента запуска объём I/O, так проще поймать процесс, который написал гигабайты за пару секунд и затих: ...

October 5, 2026 · llexa