fstrim: освобождение места на SSD
SSD не всегда «понимает», что файлы были удалены — блоки могут оставаться помеченными как занятые.
Команда fstrim помогает сообщить диску, какие блоки можно реально очистить.
Проверка вручную:
Выведет, сколько байт освободилось на корневом разделе.
Чтобы не делать это руками, есть встроенный systemd-таймер. Достаточно один раз включить:
Теперь очистка будет выполняться автоматически раз в неделю.
Это безопасный и простой способ поддерживать SSD в нормальной форме без лишних ухищрений.
SSD не всегда «понимает», что файлы были удалены — блоки могут оставаться помеченными как занятые.
Из-за этого диск со временем теряет скорость записи.
Команда fstrim помогает сообщить диску, какие блоки можно реально очистить.
Проверка вручную:
sudo fstrim -v /
Выведет, сколько байт освободилось на корневом разделе.
Чтобы не делать это руками, есть встроенный systemd-таймер. Достаточно один раз включить:
sudo systemctl enable fstrim.timer
sudo systemctl start fstrim.timer
Теперь очистка будет выполняться автоматически раз в неделю.
Это безопасный и простой способ поддерживать SSD в нормальной форме без лишних ухищрений.
👍16❤4
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
SoftIRQ используется, например, в сетевом стеке (обработка пакетов), планировщике задач и таймерах. Он позволяет разгрузить обработчики прерываний, обеспечивая баланс между низкими задержками и производительностью.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍3
lsns: кто держит namespace?
В обычной работе это не видно, но как только в системе появляются контейнеры, systemd-изоляторы или «подозрительные» процессы, namespaces становятся критически важны для отладки.
Инструмент lsns позволяет быстро посмотреть, какие процессы «сидят» в каких пространствах имён.
Простейший запуск:
На выходе будет таблица: PID, тип namespace, время создания и т.д.
Это помогает понять, например, кто держит лишний mount namespace или почему сетевой стек не совпадает с основным.
Можно фильтровать по типу:
Покажет все сетевые namespaces — полезно для диагностики контейнеров.
А если нужно конкретно узнать, кто держит PID namespace:
Linux активно использует namespaces — они изолируют процессы по сетям, PID, пользователям, монтам и прочим ресурсам.
В обычной работе это не видно, но как только в системе появляются контейнеры, systemd-изоляторы или «подозрительные» процессы, namespaces становятся критически важны для отладки.
Инструмент lsns позволяет быстро посмотреть, какие процессы «сидят» в каких пространствах имён.
Простейший запуск:
lsns
На выходе будет таблица: PID, тип namespace, время создания и т.д.
Это помогает понять, например, кто держит лишний mount namespace или почему сетевой стек не совпадает с основным.
Можно фильтровать по типу:
lsns -t net
Покажет все сетевые namespaces — полезно для диагностики контейнеров.
А если нужно конкретно узнать, кто держит PID namespace:
lsns -t pid
👍9❤7
Anonymous Quiz
11%
Каждое воскресенье в 2 ночи
78%
Каждый день в 2 ночи
7%
Каждую минуту в 2 ночи
4%
Каждый час
😁12🤪6👍5❤3
Swap-файл vs swap-раздел: как влияет на SSD и работу в системах с малым ОЗУ
На слабых серверах и миниатюрных VPS наличие подкачки решает всё. Даже базовая установка apt без swap может закончиться «убийством» процессов через OOM-killer.
Что выбрать — swap-файл или swap-раздел?
Swap-раздел исторически считался более «надёжным» вариантом: он выделяется на физическом уровне и не фрагментируется. Но в реальности:
⏺ менять его размер сложно (особенно без LVM);
⏺ требует переформатирования или изменения разметки;
⏺ неудобен в облаках и на VPS.
Swap-файл — более гибкий и удобный. Особенно если:
⏺ вы работаете на облаке с единственным диском;
⏺ у вас ограниченное место;
⏺ нужно быстро изменить размер или выключить swap.
На современных ядрах swap-файл работает почти так же эффективно, как и раздел, особенно если создать его правильно.
Как правильно создать swap-файл
Не используйте dd — он может создать фрагментированный файл:
Вместо этого:
В fstab:
Дополнительные улучшения: zswap и zram
Чтобы продлить срок службы SSD и ускорить работу на слабых системах:
Zswap — сжатая подкачка в RAM. Включается одной командой:
Zram — компрессированный swap в памяти. Особенно эффективен на embedded и ARM-устройствах:
Настройка поведения подкачки
Чтобы система не бросалась в swap при любой нагрузке:
10–20 — хороший баланс: сначала используется RAM, и только потом swap.
На слабых серверах и миниатюрных VPS наличие подкачки решает всё. Даже базовая установка apt без swap может закончиться «убийством» процессов через OOM-killer.
Но что выбрать: swap-файл или swap-раздел? И главное — как сделать, чтобы не угробить SSD и не словить тормоза?
Что выбрать — swap-файл или swap-раздел?
Swap-раздел исторически считался более «надёжным» вариантом: он выделяется на физическом уровне и не фрагментируется. Но в реальности:
Swap-файл — более гибкий и удобный. Особенно если:
На современных ядрах swap-файл работает почти так же эффективно, как и раздел, особенно если создать его правильно.
Как правильно создать swap-файл
Не используйте dd — он может создать фрагментированный файл:
# Плохо:
dd if=/dev/zero of=/swapfile bs=1M count=1024
Вместо этого:
# Хорошо:
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
В fstab:
/swapfile none swap sw 0 0
Дополнительные улучшения: zswap и zram
Чтобы продлить срок службы SSD и ускорить работу на слабых системах:
Zswap — сжатая подкачка в RAM. Включается одной командой:
echo 1 > /sys/module/zswap/parameters/enabled
Zram — компрессированный swap в памяти. Особенно эффективен на embedded и ARM-устройствах:
modprobe zram
echo lz4 > /sys/block/zram0/comp_algorithm
echo 512M > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0
Настройка поведения подкачки
Чтобы система не бросалась в swap при любой нагрузке:
sysctl vm.swappiness=10
10–20 — хороший баланс: сначала используется RAM, и только потом swap.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤7👍2
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Система управляет writeback через параметры vm.dirty_ratio и vm.dirty_background_ratio, а также через демоны pdflush или flush. Правильная настройка writeback снижает задержки при записи, предотвращает перегрузку диска и балансирует использование оперативной памяти и I/O.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7
capsh и Linux capabilities
В Linux root-аккаунт обладает полным набором прав, но далеко не всегда это нужно. Capabilities позволяют «разрезать» привилегии на части и выдавать только нужные.
Например, чтобы процесс слушал порты ниже 1024, достаточно capability CAP_NET_BIND_SERVICE. Полный root здесь избыточен.
Проверка текущих прав:
Запуск процесса только с нужной capability:
⚡️ Так можно запускать сервисы безопаснее, следуя принципу «минимально необходимых прав». Это актуально и для контейнеров, и для демонов в продакшене.
В Linux root-аккаунт обладает полным набором прав, но далеко не всегда это нужно. Capabilities позволяют «разрезать» привилегии на части и выдавать только нужные.
Это снижает риски: сервис не сможет сделать ничего лишнего, даже если его взломают.
Например, чтобы процесс слушал порты ниже 1024, достаточно capability CAP_NET_BIND_SERVICE. Полный root здесь избыточен.
Проверка текущих прав:
capsh --print
Запуск процесса только с нужной capability:
capsh --drop=all --add=cap_net_bind_service -- -c "./server"
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Внутри 20+ модулей: от установки Linux и работы с файлами до сетей, прав, дисков, процессов, автоматизации на Bash и многого другого. Всё сразу закрепляется на практике (200+ заданий с автопроверкой).
Материал подаётся понятным языком, шаг за шагом, на реальных примерах и с наглядными схемами.
После прохождения вы получите сертификат, который можно добавить в резюме.
Есть бесплатные демо-уроки для ознакомления. В ближайшие 48ч курс доступен со скидкой 20% по промокоду «
ADMGUIDES
»: открыть курс на StepikPlease open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥1
Multikernel: несколько ядер Linux на одном хосте
Проект Multikernel позволяет запускать на одной машине сразу несколько независимых экземпляров ядра Linux — без гипервизора и накладных расходов виртуализации.
Каждый экземпляр ядра получает прямой доступ к CPU и ресурсам, изоляция выше, чем у контейнеров, а производительность близка к «железу».
⏺ Запуск через улучшенный kexec, управление и отладка — через /proc/multikernel.
⏺ Для обмена сообщениями используется собственный IPI-фреймворк.
⏺ Поддерживается динамическое выделение ресурсов и изоляция отказов.
Проект Multikernel позволяет запускать на одной машине сразу несколько независимых экземпляров ядра Linux — без гипервизора и накладных расходов виртуализации.
Каждый экземпляр ядра получает прямой доступ к CPU и ресурсам, изоляция выше, чем у контейнеров, а производительность близка к «железу».
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥1
Один канал для решения трёх задач: сделать систему эффективной, стабильной и безопасной.
Без воды, только практика:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2❤1
Профилирование CPU с perf и Flamegraph
Они показывают только процессы, но не дают понимания, что именно внутри процесса грузит CPU.
Здесь на помощь приходит perf и Flamegraph.
perf — запись стека вызовов
Для начала нужно установить perf (apt install linux-tools-common linux-tools-$(uname -r) на Debian/Ubuntu).
Простейший пример:
⏺ -F 99 — частота выборки 99 Гц
⏺ -a — профилируем все CPU
⏺ -g — сохраняем стеки вызовов
⏺ -- sleep 10 — профилируем 10 секунд
После этого создаётся файл perf.data, содержащий информацию о нагрузке CPU.
perf script + Flamegraph — визуализация горячих функций
Flamegraph позволяет видеть «горячие» участки кода:
⏺ stackcollapse-perf.pl — склеивает одинаковые стеки
⏺ flamegraph.pl — генерирует интерактивный SVG
Открыв out.svg в браузере, можно увидеть, какие функции съедают процессорное время. Чем выше «полоса», тем дольше выполняется функция.
Когда сервер «тормозит» или высокая загрузка CPU не очевидна, стандартных инструментов вроде top часто недостаточно.
Они показывают только процессы, но не дают понимания, что именно внутри процесса грузит CPU.
Здесь на помощь приходит perf и Flamegraph.
perf — запись стека вызовов
Для начала нужно установить perf (apt install linux-tools-common linux-tools-$(uname -r) на Debian/Ubuntu).
Простейший пример:
sudo perf record -F 99 -a -g -- sleep 10
После этого создаётся файл perf.data, содержащий информацию о нагрузке CPU.
perf script + Flamegraph — визуализация горячих функций
Flamegraph позволяет видеть «горячие» участки кода:
perf script | stackcollapse-perf.pl | flamegraph.pl > out.svg
Открыв out.svg в браузере, можно увидеть, какие функции съедают процессорное время. Чем выше «полоса», тем дольше выполняется функция.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3