TimescaleDB: hypertable вместо ручного партиционирования по датам

Декларативное партиционирование в PostgreSQL требует, чтобы кто-то заранее создавал секции под будущие даты — вручную или крон-скриптом, иначе вставка в несуществующий диапазон просто упадёт с ошибкой. TimescaleDB — это расширение поверх PostgreSQL, которое берёт ровно эту рутину на себя: таблица превращается в hypertable, а партиции («чанки») создаются автоматически по мере поступления данных. CREATE TABLE metrics ( time TIMESTAMPTZ NOT NULL, host TEXT NOT NULL, cpu_percent DOUBLE PRECISION ); SELECT create_hypertable('metrics', 'time'); Снаружи metrics выглядит как обычная таблица — тот же INSERT, тот же SELECT — но физически строки лежат по чанкам фиксированного временного интервала (по умолчанию 7 дней, меняется через chunk_time_interval в create_hypertable или глобально через timescaledb.default_chunk_time_interval). Новый чанк создаётся сам, как только приходит строка с временем за пределами существующих — никакого аналога CREATE TABLE ... PARTITION OF под будущий месяц заранее. ...

October 20, 2026 · llexa

glances: один экран вместо top, iotop, iftop и df по очереди

Диагностировать внезапно загруженный сервер обычно означает открыть по очереди top, iotop, iftop, df -h — и в голове собирать из них общую картину. glances делает это за тебя: CPU по ядрам, память и swap, диски и их I/O, сетевые интерфейсы с текущей пропускной способностью, топ процессов по CPU/памяти — всё сразу на одном экране терминала, обновляется в реальном времени. Запускается без параметров: glances и сам решает, какие блоки показывать, в зависимости от того, что происходит на сервере — если диск начинает тормозить, блок I/O подсвечивается заметнее остальных. Полезная деталь: пороги предупреждений (careful/warning/critical) настраиваются в ~/.config/glances/glances.conf, так что «нормальная» загрузка CPU для конкретного сервера не обязана совпадать с дефолтной. ...

October 19, 2026 · llexa

irqbalance: кто разбирает аппаратные прерывания по ядрам

Без вмешательства ядро Linux по умолчанию склонно сажать обработку аппаратных прерываний (IRQ) от сетевой карты или диска на одно и то же ядро — обычно CPU0. На спокойном сервере это незаметно, но стоит сетевой карте начать принимать десятки тысяч пакетов в секунду, и это одно ядро упирается в потолок по %si (softirq) в top, пока остальные ядра простаивают. irqbalance — демон, который читает /proc/interrupts, смотрит на реальную загрузку по ядрам и перераспределяет назначения через /proc/irq/<N>/smp_affinity, не трогая при этом IRQ, явно забаненные через --banirq=<N>. ...

October 19, 2026 · llexa

Proxmox #15: кворум кластера — corosync, votequorum и QDevice

Кластер Proxmox VE держится не на доверии между нодами, а на голосовании. Каждая нода отдаёт один голос в corosync, и пока сумма голосов живых узлов больше половины от общего числа — кластер «quorate», решения принимать можно. Как только большинство пропадает (узлы упали, сеть между сегментами порвалась) — кластер теряет кворум, и это не абстрактная метрика для дашборда, а жёсткий замок на изменения. Смотрится это через pvecm status: в выводе есть блок Votequorum information с Expected votes, Total votes и собственно Quorum — минимальным числом голосов, после которого узел продолжает работать как часть кластера. Нода без кворума не может писать в /etc/pve — конфигурационная файловая система pmxcfs переходит в read-only, так что создать VM, поменять настройку HA или отредактировать corosync.conf через обычный путь не выйдет. Если на отрезанной ноде были активны HA-сервисы, pve-ha-lrm ждёт возврата кворума и не трогает их конфигурацию; не дождавшись в течение таймаута watchdog (по умолчанию 60 секунд), нода уходит в перезагрузку — это самозащита от ситуации, когда два изолированных сегмента кластера одновременно решат, что VM должна работать именно у них. ...

October 19, 2026 · llexa

IT-мем: почему тесты зелёные

— Все тесты зелёные третий спринт подряд. — Ого, стабильно. — Ага. @pytest.mark.skip(reason="временно"), апрель 2023 — никто с тех пор не трогал. #юмор

October 18, 2026 · llexa

Rust-утилиты #3: fd вместо find

Продолжаем серию про утилиты, переписанные на Rust: после ls и cat очередь find. fd ищет файлы, но с умолчаниями, настроенными под реальную работу, а не под совместимость с POSIX-стандартом тридцатилетней давности. ...

October 18, 2026 · llexa

Kitty #2: управляем окнами из скриптов через remote control

В прошлом выпуске про kitty разобрались с установкой и темами, а сегодня — remote control: возможность управлять окнами и вкладками снаружи, командами из скрипта, а не руками с клавиатуры. По умолчанию эта возможность выключена — нужно явно разрешить в kitty.conf: allow_remote_control yes Вариант yes разрешает команды от любого процесса в системе — для разовых экспериментов на своей машине нормально, но для более аккуратной настройки есть socket-only (команды принимаются только через явно указанный unix-сокет) и password (доступ по паролю, с возможностью ограничить конкретные команды через remote_control_password). После правки конфига kitty нужно перезапустить или сделать kitten @ load-config. ...

October 17, 2026 · llexa

Афоризмы Мёрфи #15: Тринадцатое следствие

После двенадцатого (“Мёрфи был оптимистом”) — первый закон Чизхолма, прямой родственник основного закона Мёрфи, и следствие к нему: «Всё, что может испортиться, портится. Следствие: всё, что не может испортиться, портится тоже» Первая часть — это просто Мёрфи другими словами: диск, который может отказать, отказывает. Вторая часть — то, ради чего вообще стоило процитировать Чизхолма отдельно: read-only том без единого write в логах, резервная нода, которая никогда не принимала трафик, сертификат, который “ещё год действителен” — именно они подводят в самый неподходящий момент, потому что на них никто не смотрел с тех пор, как настроил. ...

October 17, 2026 · llexa

FUSE #8: borgfs — смотрим внутрь бэкапа без полного восстановления

Классический сценарий: кто-то случайно удалил конфиг неделю назад, а бэкапится всё через Borg. Самый прямой путь — borg extract всего снапшота в отдельную директорию и выковыривать нужный файл руками, но для одного файла это избыточно, особенно если архив весит сотни гигабайт. У borg для этого есть mount — он поднимает FUSE-драйвер и отдаёт содержимое архива как обычную read-only файловую систему. ...

October 16, 2026 · llexa

WAL-G: бэкап PostgreSQL прямо в объектное хранилище

pgBackRest и barman одинаково умеют складывать WAL-архив и бэкапы в S3, но оба выросли из эпохи, когда основным хранилищем была локальная файловая система, а объектное хранилище — опциональный репозиторий поверх. WAL-G спроектирован наоборот: он написан на Go и с первого дня целится именно в object storage как основной репозиторий, без промежуточного слоя абстракций под POSIX-пути. ...

October 16, 2026 · llexa