Почему использование swapoff -a может привести к зависанию системы?
Anonymous Quiz
4%
Все процессы будут немедленно завершены
20%
Ядро начнёт принудительно освобождать кеш страниц
71%
Если в системе недостаточно RAM, процессы не смогут выгружать данные в swap
4%
Операционная система переключится в аварийный режим
👍6🔥1
Построение отказоустойчивого DHCP через Kea и HA-режим
Если вы всё ещё используете классический ISC DHCP, самое время обратить внимание на Kea от ISC.
Это DHCP-сервер нового поколения, который поддерживает как IPv4, так и IPv6, имеет полноценный REST API, масштабируется горизонтально и умеет работать в отказоустойчивом режиме.
В отличие от старого ISC DHCP, Kea может синхронизировать lease’ы между двумя серверами почти в реальном времени.
Поддерживаются разные режимы работы:
• Load-balancing (Active-Active) – оба сервера обслуживают клиентов
• Hot-standby (Active-Standby) – один сервер активен, второй в резерве
• Partner-down – сценарий, когда один сервер считается временно недоступным
Вот пример простой конфигурации HA-модуля (kea-ctrl-agent + ha-hooks):
В режиме load-balancing оба сервера делят пул между собой и сразу же переключаются в случае отказа одного из них. Всё это можно мониторить и управлять через HTTP-запросы.
Ключевые преимущества Kea:
• JSON-конфигурация, удобная для автоматизации
• Управление через curl или kea-shell
• Интеграция с MySQL/PostgreSQL
• Поддержка хуков, логирование, экспорт метрик в Prometheus
Примеры команд управления через API:
Проверить статус HA-кластера:
Перевести сервер в ручной режим:
Получить список lease’ов:
Если вы всё ещё используете классический ISC DHCP, самое время обратить внимание на Kea от ISC.
Это DHCP-сервер нового поколения, который поддерживает как IPv4, так и IPv6, имеет полноценный REST API, масштабируется горизонтально и умеет работать в отказоустойчивом режиме.
В отличие от старого ISC DHCP, Kea может синхронизировать lease’ы между двумя серверами почти в реальном времени.
Поддерживаются разные режимы работы:
• Load-balancing (Active-Active) – оба сервера обслуживают клиентов
• Hot-standby (Active-Standby) – один сервер активен, второй в резерве
• Partner-down – сценарий, когда один сервер считается временно недоступным
Вот пример простой конфигурации HA-модуля (kea-ctrl-agent + ha-hooks):
{
"ha-server": {
"mode": "load-balancing",
"this-server-name": "dhcp1",
"peers": [
{
"name": "dhcp1",
"url": "https://192.168.1.10:8000/",
"role": "primary"
},
{
"name": "dhcp2",
"url": "https://192.168.1.11:8000/",
"role": "secondary"
}
],
"auto-failover": true
}
}
В режиме load-balancing оба сервера делят пул между собой и сразу же переключаются в случае отказа одного из них. Всё это можно мониторить и управлять через HTTP-запросы.
Ключевые преимущества Kea:
• JSON-конфигурация, удобная для автоматизации
• Управление через curl или kea-shell
• Интеграция с MySQL/PostgreSQL
• Поддержка хуков, логирование, экспорт метрик в Prometheus
Примеры команд управления через API:
Проверить статус HA-кластера:
curl -X POST -H "Content-Type: application/json" \
-d '{ "command": "ha-heartbeat" }' \
https://127.0.0.1:8000/
Перевести сервер в ручной режим:
curl -X POST -H "Content-Type: application/json" \
-d '{ "command": "ha-maintenance-start" }' \
https://127.0.0.1:8000/
Получить список lease’ов:
curl -X POST -H "Content-Type: application/json" \
-d '{ "command": "lease4-get-all" }' \
https://127.0.0.1:8000/
👍16❤1
Хочешь прокачать навыки работы с Kubernetes®?
Тогда приходи 10 апреля в 12:00 (мск) на вебинар от Yandex Cloud и Rebrain.
В программе вебинара:
— Как облачные сервисы Yandex Cloud упрощают работу с Kubernetes®.
— Разбор реальных кейсов, типичных ошибок и решения сложных задач.
— Лайфхаки для быстрого погружения в контейнерную инфраструктуру.
— Как администрировать Managed Kubernetes®, не теряя времени и нервов.
💡 Бесплатный вебинар уже дает кучу полезной инфы. Представь, сколько всего будет на полном кастомном обучении Kubernetes: Yandex Cloud и Rebrain 👉 Регистрируйся и присоединяйся.
Тогда приходи 10 апреля в 12:00 (мск) на вебинар от Yandex Cloud и Rebrain.
В программе вебинара:
— Как облачные сервисы Yandex Cloud упрощают работу с Kubernetes®.
— Разбор реальных кейсов, типичных ошибок и решения сложных задач.
— Лайфхаки для быстрого погружения в контейнерную инфраструктуру.
— Как администрировать Managed Kubernetes®, не теряя времени и нервов.
💡 Бесплатный вебинар уже дает кучу полезной инфы. Представь, сколько всего будет на полном кастомном обучении Kubernetes: Yandex Cloud и Rebrain 👉 Регистрируйся и присоединяйся.
👍1
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Применение eBPF:
— Сетевой фильтр: ускоряет обработку пакетов, применяется в XDP и Cilium.
— Мониторинг и трассировка: инструменты вроде BCC и bpftrace используют eBPF для анализа работы ядра в реальном времени.
— Безопасность: используется в системе защиты, такой как Falco, для обнаружения аномалий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Вышел openHalo — прокси для миграции с MySQL на PostgreSQL без боли
В начале апреля вышел проект openHalo — открытый инструмент, помогающий мигрировать приложения с MySQL на PostgreSQL почти без переписывания кода.
Это прокси-решение, написанное на C и PLpgSQL, распространяется под GPLv3 и уже доступно на GitHub.
Как работает openHalo:
• Перехватывает SQL-запросы, написанные под MySQL
• Преобразует их под синтаксис PostgreSQL
• Отдаёт ответы обратно в формате, совместимом с MySQL-клиентами
Благодаря этому сохраняется поддержка существующих драйверов, утилит и привычного инструментария MySQL — от mysqldump до ORM-библиотек вроде SQLAlchemy.
Плюсы подхода:
• Не нужно массово переписывать SQL-запросы
• Быстрый переход на PostgreSQL с минимальными рисками
• Поддержка как SQL-диалекта, так и сетевого протокола MySQL
• Можно запускать в проде как прослойку между приложением и новой СУБД
В начале апреля вышел проект openHalo — открытый инструмент, помогающий мигрировать приложения с MySQL на PostgreSQL почти без переписывания кода.
Это прокси-решение, написанное на C и PLpgSQL, распространяется под GPLv3 и уже доступно на GitHub.
Как работает openHalo:
• Перехватывает SQL-запросы, написанные под MySQL
• Преобразует их под синтаксис PostgreSQL
• Отдаёт ответы обратно в формате, совместимом с MySQL-клиентами
Благодаря этому сохраняется поддержка существующих драйверов, утилит и привычного инструментария MySQL — от mysqldump до ORM-библиотек вроде SQLAlchemy.
Плюсы подхода:
• Не нужно массово переписывать SQL-запросы
• Быстрый переход на PostgreSQL с минимальными рисками
• Поддержка как SQL-диалекта, так и сетевого протокола MySQL
• Можно запускать в проде как прослойку между приложением и новой СУБД
👍5🔥1
Запускаем цикл вебинаров и открытых демонстраций – «Basisный интенсив с Merlion»!
В течение года мы разберем функциональные особенности экосистемы продуктов ведущего российского разработчика решений для оказания облачных услуг, платформы динамической инфраструктуры и виртуализации – Basis:
∙ Basis Dynamix Standard – гибкая платформа управления виртуализацией для контроля гипервизоров и виртуальных ЦОД на базе виртуальных машин.
∙ Basis Dynamix Enterprise – высокопроизводительная платформа на базе динамической инфраструктуры для управления виртуальными серверами и контейнерами.
∙ Basis Workplace – ПО для создания инфраструктуры виртуальных рабочих столов с возможностью выбора сценария использования.
Вы узнаете, как решения помогают управлять виртуальными серверами, обеспечивать контроль гипервизоров и создавать инфраструктуры виртуальных рабочих столов.
Регистрация (https://tglink.io/90473d4f6610?erid=2W5zFJHdLmW) осуществляется 1 раз – и вы получаете доступ ко всей серии вебинаров.
#реклама
О рекламодателе
В течение года мы разберем функциональные особенности экосистемы продуктов ведущего российского разработчика решений для оказания облачных услуг, платформы динамической инфраструктуры и виртуализации – Basis:
∙ Basis Dynamix Standard – гибкая платформа управления виртуализацией для контроля гипервизоров и виртуальных ЦОД на базе виртуальных машин.
∙ Basis Dynamix Enterprise – высокопроизводительная платформа на базе динамической инфраструктуры для управления виртуальными серверами и контейнерами.
∙ Basis Workplace – ПО для создания инфраструктуры виртуальных рабочих столов с возможностью выбора сценария использования.
Вы узнаете, как решения помогают управлять виртуальными серверами, обеспечивать контроль гипервизоров и создавать инфраструктуры виртуальных рабочих столов.
Регистрация (https://tglink.io/90473d4f6610?erid=2W5zFJHdLmW) осуществляется 1 раз – и вы получаете доступ ко всей серии вебинаров.
#реклама
О рекламодателе
👍2
Автообновление контейнеров по Git push
Автоматизация деплоя — один из способов сэкономить часы жизни и избавиться от рутины.
Если вы используете GitLab и Docker, можно настроить простую, но эффективную схему: пушим код — запускается GitLab CI, собирается и пушится образ — Watchtower на проде обновляет контейнер. Всё это без единого ручного действия.
1️⃣ GitLab CI собирает и пушит Docker-образ
Пример .gitlab-ci.yml:
Для продакшена рекомендуют использовать versioned теги:
2️⃣ Watchtower на сервере следит за обновлениями
Запускаем Watchtower с привязкой к сокету Docker:
Если у вас приватный реестр, авторизуйтесь на сервере:
Можно указать конкретный контейнер, за которым следить:
3️⃣ Запускаем основной контейнер из latest
Контейнер должен быть собран из обновляемого тега:
При обновлении latest Watchtower автоматически остановит и перезапустит контейнер с новым образом.
Автоматизация деплоя — один из способов сэкономить часы жизни и избавиться от рутины.
Если вы используете GitLab и Docker, можно настроить простую, но эффективную схему: пушим код — запускается GitLab CI, собирается и пушится образ — Watchtower на проде обновляет контейнер. Всё это без единого ручного действия.
Пример .gitlab-ci.yml:
stages:
- build
- deploy
variables:
IMAGE_TAG: registry.gitlab.com/yourgroup/yourapp:latest
build:
stage: build
script:
- docker build -t $IMAGE_TAG .
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
- docker push $IMAGE_TAG
Для продакшена рекомендуют использовать versioned теги:
IMAGE_TAG: registry.gitlab.com/yourgroup/yourapp:$CI_COMMIT_SHORT_SHA
Запускаем Watchtower с привязкой к сокету Docker:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-e WATCHTOWER_CLEANUP=true \
-e WATCHTOWER_POLL_INTERVAL=60 \
containrrr/watchtower
Если у вас приватный реестр, авторизуйтесь на сервере:
docker login registry.gitlab.com
Можно указать конкретный контейнер, за которым следить:
containrrr/watchtower yourapp_container
Контейнер должен быть собран из обновляемого тега:
docker run -d \
--name yourapp_container \
yourgroup/yourapp:latest
При обновлении latest Watchtower автоматически остановит и перезапустит контейнер с новым образом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
Какой побочный эффект может вызвать увеличение vm.max_map_count в Linux?
Anonymous Quiz
29%
Увеличение задержек в системных вызовах mmap
50%
Повышенное потребление оперативной памяти ядром
15%
Уменьшение производительности файловой системы
6%
Отключение механизма Copy-on-Write
👍5🔥1
Ускорение cold-start для systemd-сервисов
Если при загрузке системы или запуске демонов вы замечаете задержки, systemd даёт немало рычагов, чтобы cold-start прошёл быстрее.
Вот основные параметры, с которыми стоит поиграться:
⏺ IOSchedulingClass и IOSchedulingPriority
Позволяют задать класс и приоритет доступа к диску.
Пример:
Если сервис работает с базами или логами — можно установить класс realtime или поднять приоритет ближе к 0 (чем ниже — тем выше приоритет).
⏺ CPUSchedulingPolicy и CPUSchedulingPriority
Контроль приоритетов на уровне CPU-шедулера.
Для критичных задач — SCHED_FIFO или SCHED_RR.
⏺ StartLimitBurst и StartLimitInterval
Позволяют контролировать поведение при частых перезапусках. Иногда systemd из-за быстрых рестартов просто «глушит» сервис.
Можно дать больше попыток на старте — особенно если сервис зависит от сети или сторонних демонов.
⏺ TimeoutStartSec
Если cold-start занимает время, а systemd слишком рано считает запуск проваленным — увеличьте таймаут:
⏺ ExecStartPre и ReadyNotify
Иногда лучше запускать предварительную инициализацию отдельно, чтобы основная служба стартовала уже с готовым окружением.
⏺ Nice и OOMScoreAdjust
Если нужно приоритетное планирование и защита от OOM killer’а:
Если при загрузке системы или запуске демонов вы замечаете задержки, systemd даёт немало рычагов, чтобы cold-start прошёл быстрее.
Особенно это критично для сервисов, чувствительных к времени реакции (например, прокси, VPN, API-шлюзы).
Вот основные параметры, с которыми стоит поиграться:
Позволяют задать класс и приоритет доступа к диску.
Пример:
[Service]
IOSchedulingClass=best-effort
IOSchedulingPriority=2
Если сервис работает с базами или логами — можно установить класс realtime или поднять приоритет ближе к 0 (чем ниже — тем выше приоритет).
Контроль приоритетов на уровне CPU-шедулера.
Для критичных задач — SCHED_FIFO или SCHED_RR.
[Service]
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=50
Позволяют контролировать поведение при частых перезапусках. Иногда systemd из-за быстрых рестартов просто «глушит» сервис.
[Unit]
StartLimitBurst=10
StartLimitIntervalSec=30
Можно дать больше попыток на старте — особенно если сервис зависит от сети или сторонних демонов.
Если cold-start занимает время, а systemd слишком рано считает запуск проваленным — увеличьте таймаут:
[Service]
TimeoutStartSec=60s
Иногда лучше запускать предварительную инициализацию отдельно, чтобы основная служба стартовала уже с готовым окружением.
[Service]
ExecStartPre=/usr/local/bin/warmup.sh
Type=notify
Если нужно приоритетное планирование и защита от OOM killer’а:
[Service]
Nice=-5
OOMScoreAdjust=-500
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4
lshw – список железных компонентов сервера
Команда lshw помогает получить детальную информацию о “железе” сервера: процессоре, памяти, накопителях, сетевых интерфейсах, USB и аудио-устройствах.
Установка lshw
Если команда не исполняется, установите пакет:
CentOS
Debian/Ubuntu
Вывод информации о компонентах
Чтобы получить короткий список оборудования, используйте:
Пример вывода:
Другие полезные команды
Вывод в развернутом виде:
Сохранение в файл:
Информация только о CPU:
Команда lshw помогает получить детальную информацию о “железе” сервера: процессоре, памяти, накопителях, сетевых интерфейсах, USB и аудио-устройствах.
Установка lshw
Если команда не исполняется, установите пакет:
CentOS
sudo yum install lshw
Debian/Ubuntu
sudo apt install lshw
Вывод информации о компонентах
Чтобы получить короткий список оборудования, используйте:
lshw -short
Пример вывода:
H/W path Device Class Description
=====================================================
system Virtual Machine
/0 bus Virtual Machine
/0/5 processor Intel(R) Core(TM) i3-6100T CPU @ 3.20GHz
/0/51 memory 4GiB System Memory
/0/1 scsi2 storage
/0/1/0.0.0 /dev/sda disk 160GB SCSI Disk
/0/1/0.0.0/1 /dev/sda1 volume 500MiB EXT4 volume
/1 eth0 network Ethernet interface
Другие полезные команды
Вывод в развернутом виде:
lshw
Сохранение в файл:
lshw > hardware_info.txt
Информация только о CPU:
lshw -C CPU
👍15❤1
Ребята сделали крутейший канал, где на простых картинках и понятном языке обучают Python, делятся полезными фишками и инструментами
Подписывайтесь: @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Основные возможности:
— Наложение слоев: изменения записываются только в upperdir, а чтение происходит сначала из него, затем из lowerdir.
— Эффективность: экономия дискового пространства за счёт разделения слоёв и уменьшения количества копий.
— Применение: используется в Docker для организации copy-on-write хранилищ, а также в live-системах и сборках образов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
Готовитесь к собеседованию в IT-компанию? 👀
Скачайте курс-гайд «Алгоритмы: roadmap для работы и собеседований» бесплатно.
👉 Готовый план подготовки: алгоритмы, вопросы и советы от эксперта, практика и доп. литература.
Скачать курс-гайд бесплатно через бота ➡️ по ссылке
Скачайте курс-гайд «Алгоритмы: roadmap для работы и собеседований» бесплатно.
👉 Готовый план подготовки: алгоритмы, вопросы и советы от эксперта, практика и доп. литература.
Скачать курс-гайд бесплатно через бота ➡️ по ссылке
👍1
Изоляция окружения без root: Mount namespaces и unshare
Используя Linux namespaces и unshare, можно запускать процессы в изолированных файловых средах — удобно для тестов, CI, экспериментов с пакетами или конфигурациями.
Что такое mount namespace?
Это изоляция файловой системы: процесс видит только свои монтирования и не влияет на другие процессы.
Даже без root-прав можно поднять временное окружение и работать «внутри», не затрагивая хост-систему.
Пример:
Теперь вы внутри своего namespace, но пока общая файловая система. Добавим chroot-подобную изоляцию:
Что это даёт?
• Тест конфигураций без риска для системы
• Мини-среда без виртуализации
• Контейнеризация «на коленке» без Docker
• Повышенная безопасность: ограничение доступа к файловой системе
Нужна песочница без Docker и без прав root?
Используя Linux namespaces и unshare, можно запускать процессы в изолированных файловых средах — удобно для тестов, CI, экспериментов с пакетами или конфигурациями.
Что такое mount namespace?
Это изоляция файловой системы: процесс видит только свои монтирования и не влияет на другие процессы.
Даже без root-прав можно поднять временное окружение и работать «внутри», не затрагивая хост-систему.
Пример:
mkdir ~/sandbox
cp /bin/bash ~/sandbox/
unshare --mount --uts --ipc --net --pid --fork --user --map-root-user bash
Теперь вы внутри своего namespace, но пока общая файловая система. Добавим chroot-подобную изоляцию:
mount --bind ~/sandbox ~/sandbox
cd ~/sandbox
pivot_root . .
exec chroot . /bash
Что это даёт?
• Тест конфигураций без риска для системы
• Мини-среда без виртуализации
• Контейнеризация «на коленке» без Docker
• Повышенная безопасность: ограничение доступа к файловой системе
👍14❤2🤔1
✅ 21 курс по цене одного с подпиской на курсы Слёрма.
Kubernetes, Docker, Postgres, Gitlab, Terraform, Golang, Python и многое другое.
Экономия до 90%.
Гибкий график, обратная связь, поддержка от спикеров – всё, что нужно для интенсивного и эффективного обучения.
Выбрать тариф и узнать подробности ➡️ по ссылке
Kubernetes, Docker, Postgres, Gitlab, Terraform, Golang, Python и многое другое.
Экономия до 90%.
Гибкий график, обратная связь, поддержка от спикеров – всё, что нужно для интенсивного и эффективного обучения.
Выбрать тариф и узнать подробности ➡️ по ссылке
👍1