swapfile в Linux: своп без переразметки диска

Своп-раздел готовится заранее, при разметке диска. Забыли — на живой системе без LVM его так просто не добавить. swapfile проще: обычный файл на смонтированной ФС, без переразметки, без остановки сервисов. # файл на 4G (fallocate быстрее dd, но не работает на всех ФС — тогда dd if=/dev/zero) fallocate -l 4G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile # постоянно — строка в /etc/fstab echo '/swapfile none swap sw 0 0' >> /etc/fstab # swappiness пониже для сервера с достаточным объёмом RAM — не уходить в своп раньше времени sysctl vm.swappiness=10 chmod 600 до mkswap — иначе любой локальный юзер прочитает файл свопа, а там может быть что угодно из памяти, вплоть до кусков секретов. На btrfs так не сработает: нужен chattr +C, отключение CoW, или отдельный раздел. ...

25 июля 2026 г. · llexa

Афоризмы Мёрфи #7: Пятое следствие

Продолжаем разбирать классику Артура Блоха. После четвёртого следствия (“предоставленные сами себе, события идут от плохого к худшему”) — пятое: «Природа всегда на стороне скрытого дефекта» Мониторинг настроен, тесты зелёные, чек-лист перед релизом пройден — и всё равно падает именно то, что никто не проверял, потому что не считал нужным. Alertmanager покрывает известные сценарии отказа; тот единственный edge case, который сломает прод в три часа ночи, по определению не в списке — иначе его бы уже поймали на review. ...

25 июля 2026 г. · llexa

П*хуй: русский мат как сжатие промпта эффективнее Caveman-режима

Для Claude Code есть skill’ы вроде Caveman — экономят токены, выкидывая артикли и служебные слова. Автор репозитория pohuy предлагает другой подход: русский мат — генеративная морфология, четыре корня плюс приставки и суффиксы дают больше смысла на слово, чем экономия артиклей. Одно «на*бнулось» — это “the service has unexpectedly crashed and requires investigation”, но сразу понятно. Что внутри: Словарь на 70+ идиом с инженерным маппингом (SKILL.md + references/slovar.md), часть — из народного словаря russian-swears (417 статей). Эталонные сцены в references/sceny.md: ревью гвнокода, флаки-тест, дока врёт, признание своего проба. Железные правила: код, коммиты, PR и доки — чисто, без мата. На security-предупреждениях и DROP TABLE — без шуток. https://github.com/smixs/pohuy ...

25 июля 2026 г. · llexa

mtr: traceroute и ping в одном инструменте

ping показывает, жив ли хост, traceroute — маршрут до него, но оба дают разовый снимок. mtr держит трассировку открытой непрерывно и на каждом хопе копит статистику потерь и задержки — сразу видно, где именно на маршруте начинаются проблемы. # интерактивный режим (обновление в реальном времени) mtr 8.8.8.8 # отчёт в текст, для логов/тикетов mtr --report -c 100 8.8.8.8 # только IPv4, без резолва имён (быстрее) mtr -4 -n 1.1.1.1 Полезно на перемежающихся проблемах “то работает, то нет”: обычный traceroute может попасть в момент, когда всё хорошо, а mtr за пару минут накопит статистику и покажет конкретный хоп с процентом потерь. ...

24 июля 2026 г. · llexa

netdata: мониторинг сервера за одну команду

Поднять Zabbix или связку Prometheus+Grafana ради разового взгляда на нагрузку сервера — избыточно. netdata ставится одной командой и сразу даёт веб-дашборд с сотнями метрик: CPU по ядрам, память, диски, сеть, процессы — всё с обновлением раз в секунду. # установка (собственный inline-скрипт, ставит как systemd-сервис) curl -Ss https://get.netdata.cloud/kickstart.sh | sh # дашборд доступен сразу # http://<server-ip>:19999 Из коробки — без настройки алертов, retention всего несколько часов и заметный расход CPU/RAM на самого агента при большом числе метрик. Для разовой диагностики “что жрёт сервер прямо сейчас” — быстрее, чем разворачивать полноценный стек. Для долгосрочной истории и алертинга на проде — всё равно Zabbix или Prometheus. ...

24 июля 2026 г. · llexa

siege и wrk: нагрузочное тестирование HTTP из терминала

Перед тем как отдавать сервис в прод, полезно прикинуть, сколько запросов в секунду он держит — без разворачивания JMeter или Gatling. siege и wrk — однобинарники, дают нагрузку из терминала за одну команду. # siege: 50 одновременных клиентов, 30 секунд siege -c 50 -t 30s http://localhost/ # wrk: 4 потока, 100 соединений, 30 секунд wrk -t4 -c100 -d30s http://localhost/ siege проще читается (concurrent users, availability, response time), wrk быстрее на высоких нагрузках за счёт своего event-loop на Lua-скриптах — можно писать кастомные сценарии запросов, не только GET на один URL. Для быстрой проверки “не упадёт ли nginx под пиковой нагрузкой” любой из двух хватает. ...

24 июля 2026 г. · llexa

age: современная замена gpg для шифрования файлов

gpg умеет всё — подписи, web-of-trust, keyserver’ы, десятки опций — но для простой задачи «зашифровать файл получателю» это избыточная сложность. age делает ровно одну вещь и без конфигов. age-keygen -o key.txt # Public key: age1qy... Шифрование по публичному ключу получателя, можно на нескольких сразу: age -r age1qy... -o secret.age file.txt age -r age1qy... -r age1zx... -o secret.age file.txt Расшифровка — своим приватным ключом: age -d -i key.txt secret.age > file.txt Если получателя нет и нужен просто пароль — симметричный режим без ключей вообще: ...

23 июля 2026 г. · llexa

nerdctl: docker-совместимый CLI поверх containerd

Если на сервере уже стоит containerd (например, как часть Kubernetes-ноды), ставить рядом полный Docker ради привычного CLI избыточно — nerdctl даёт те же команды, но работает прямо через containerd, без своего демона. nerdctl run -d -p 8080:80 nginx nerdctl ps nerdctl build -t myapp . docker-compose.yml тоже читается как есть: nerdctl compose up -d Отдельно стоит rootless-режим — контейнеры без root на хосте, без suid-бинарников и без выхода из namespace как единственной защиты: ...

23 июля 2026 г. · llexa

DBA на минималках #5: pg_stat_activity

pg_stat_activity — представление с одной строкой на каждое соединение к базе: кто подключён, что выполняет прямо сейчас и сколько это уже длится. SELECT pid, state, now() - query_start AS duration, query FROM pg_stat_activity WHERE state != 'idle' ORDER BY duration DESC; Колонка state — главное, на что смотреть: active — запрос реально выполняется; idle — соединение открыто, но ничего не делает; idle in transaction — самое опасное значение, транзакция открыта и висит, держит блокировки и мешает autovacuum чистить мёртвые строки. ...

22 июля 2026 г. · llexa

Современные ФС #6: ZFS — RAIDZ

Зеркало (mirror) — 50% полезного места на N дисков. raidz экономнее: чётность распределена по всем дискам, как в RAID5; raidz2 — двойная чётность, переживает потерю двух дисков разом (аналог RAID6). zpool create tank raidz sda sdb sdc zpool create tank raidz2 sda sdb sdc sdd Целостность проверяется не fsck, а scrub — ZFS перечитывает блоки, сверяет контрольные суммы и чинит найденное за счёт избыточности: zpool scrub tank zpool status tank # прогресс и найденные ошибки Замена упавшего диска — без остановки пула: ...

22 июля 2026 г. · llexa