Admin Guides | Сисадмин
11.5K subscribers
1.34K photos
20 videos
34 files
565 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
fstrim: освобождение места на SSD

SSD не всегда «понимает», что файлы были удалены — блоки могут оставаться помеченными как занятые.

Из-за этого диск со временем теряет скорость записи.


Команда fstrim помогает сообщить диску, какие блоки можно реально очистить.

Проверка вручную:

sudo fstrim -v /


Выведет, сколько байт освободилось на корневом разделе.

Чтобы не делать это руками, есть встроенный systemd-таймер. Достаточно один раз включить:

sudo systemctl enable fstrim.timer
sudo systemctl start fstrim.timer


Теперь очистка будет выполняться автоматически раз в неделю.

Это безопасный и простой способ поддерживать SSD в нормальной форме без лишних ухищрений.
👍224
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое SoftIRQ в Linux и зачем он используется?

Ответ: SoftIRQ (Software Interrupt Request) — это механизм в ядре Linux для обработки отложенных задач, которые нельзя выполнить в контексте аппаратного прерывания (IRQ), но и запускать как обычные процессы слишком дорого.

SoftIRQ используется, например, в сетевом стеке (обработка пакетов), планировщике задач и таймерах. Он позволяет разгрузить обработчики прерываний, обеспечивая баланс между низкими задержками и производительностью.
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4
lsns: кто держит namespace?

Linux активно использует namespaces — они изолируют процессы по сетям, PID, пользователям, монтам и прочим ресурсам. 


В обычной работе это не видно, но как только в системе появляются контейнеры, systemd-изоляторы или «подозрительные» процессы, namespaces становятся критически важны для отладки.

Инструмент lsns позволяет быстро посмотреть, какие процессы «сидят» в каких пространствах имён.

Простейший запуск:

lsns


На выходе будет таблица: PID, тип namespace, время создания и т.д.

Это помогает понять, например, кто держит лишний mount namespace или почему сетевой стек не совпадает с основным.

Можно фильтровать по типу:

lsns -t net


Покажет все сетевые namespaces — полезно для диагностики контейнеров.

А если нужно конкретно узнать, кто держит PID namespace:

lsns -t pid
👍137
В crontab записано:

0 2 * * * /usr/local/bin/backup.sh Когда будет выполняться скрипт?
Anonymous Quiz
11%
Каждое воскресенье в 2 ночи
78%
Каждый день в 2 ночи
7%
Каждую минуту в 2 ночи
4%
Каждый час
😁14🤪6👍53
Swap-файл vs swap-раздел: как влияет на SSD и работу в системах с малым ОЗУ

На слабых серверах и миниатюрных VPS наличие подкачки решает всё. Даже базовая установка apt без swap может закончиться «убийством» процессов через OOM-killer.

Но что выбрать: swap-файл или swap-раздел? И главное — как сделать, чтобы не угробить SSD и не словить тормоза?


Что выбрать — swap-файл или swap-раздел?

Swap-раздел исторически считался более «надёжным» вариантом: он выделяется на физическом уровне и не фрагментируется. Но в реальности:
менять его размер сложно (особенно без LVM);
требует переформатирования или изменения разметки;
неудобен в облаках и на VPS.

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
🔥159👍3👏1
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое Writeback в Linux и как он влияет на производительность системы?

Ответ: Writeback — это процесс записи изменённых (dirty) страниц памяти обратно на диск. Когда приложение изменяет данные в памяти, они сначала остаются в RAM для ускорения работы, а ядро периодически переносит их на постоянное хранилище.

Система управляет writeback через параметры vm.dirty_ratio и vm.dirty_background_ratio, а также через демоны pdflush или flush. Правильная настройка writeback снижает задержки при записи, предотвращает перегрузку диска и балансирует использование оперативной памяти и I/O.
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍11
capsh и Linux capabilities

В 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
17👍11
Multikernel: несколько ядер Linux на одном хосте

Проект Multikernel позволяет запускать на одной машине сразу несколько независимых экземпляров ядра Linux — без гипервизора и накладных расходов виртуализации.

Каждый экземпляр ядра получает прямой доступ к CPU и ресурсам, изоляция выше, чем у контейнеров, а производительность близка к «железу».

Запуск через улучшенный kexec, управление и отладка — через /proc/multikernel.
Для обмена сообщениями используется собственный IPI-фреймворк.
Поддерживается динамическое выделение ресурсов и изоляция отказов.
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2🔥1🤔1
Профилирование CPU с perf и Flamegraph

Когда сервер «тормозит» или высокая загрузка 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


-F 99 — частота выборки 99 Гц
-a — профилируем все CPU
-g — сохраняем стеки вызовов
-- sleep 10 — профилируем 10 секунд

После этого создаётся файл perf.data, содержащий информацию о нагрузке CPU.

perf script + Flamegraph — визуализация горячих функций

Flamegraph позволяет видеть «горячие» участки кода:

perf script | stackcollapse-perf.pl | flamegraph.pl > out.svg


stackcollapse-perf.pl — склеивает одинаковые стеки
flamegraph.pl — генерирует интерактивный SVG

Открыв out.svg в браузере, можно увидеть, какие функции съедают процессорное время. Чем выше «полоса», тем дольше выполняется функция.
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍6
Для обнаружения медленных процессов и аномальной активности на нескольких Linux-серверах лучше использовать:
Anonymous Quiz
20%
top на каждом сервере
72%
Централизованное логирование через rsyslog + SIEM
2%
cron
6%
systemctl
4👍1
Dstat и его наследники: удобный мониторинг в реальном времени

Когда сервер «тормозит», хочется сразу понять: проблема в диске, CPU или сети? 


Стандартный набор (iostat, vmstat, ifstat) даёт нужные данные, но разрозненно — приходится открывать несколько окон и сводить всё в голове.

dstat решает эту проблему: он объединяет метрики CPU, IO, памяти, сети и процессов в одной таблице. Сразу видно картину происходящего. Например:

dstat -cdnm


CPU, диски, сеть и память — всё в одной строке, обновляется раз в секунду.

Из новых инструментов можно отметить atop (с ретроспективным просмотром) и лёгкие аналоги — duf, dstat-variants, которые удобнее для быстрых проверок.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144
И ведь не поспоришь…
👍23😁163
lshw – список железных компонентов сервера

Команда 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
👍134
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое Runqueue в Linux и как он влияет на производительность системы?

Ответ: Runqueue — это структура данных в ядре Linux, в которой хранятся все процессы, готовые к выполнению на CPU. У каждого процессора есть свой runqueue, а планировщик задач (CFS — Completely Fair Scheduler) распределяет время процессора между процессами из этой очереди.

Балансировка нагрузки между runqueue разных CPU — критически важная задача. Если один CPU перегружен, а другой простаивает, планировщик может переместить процессы между runqueue. Неправильная балансировка может привести к “CPU starvation” или падению производительности в многопроцессорных системах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍52
pigz вместо gzip

Обычный gzip работает в один поток, поэтому на современных серверах с несколькими ядрами он сжимает большие файлы медленно.


pigz (parallel implementation of gzip) решает эту проблему — он использует все доступные CPU и значительно ускоряет компрессию.

Пример:

pigz backup.sql


Архив будет создан в формате .gz, совместимом с gzip. Разница только в скорости: на сервере с 8 ядрами сжатие может ускориться в 5–7 раз.

Для распаковки можно использовать как pigz -d, так и обычный gzip -d.
👍215
Энтузиасты объединили двенадцать 56K модемов и установили рекорд скорости коммутируемого доступа

Команда The Serial Port объединила двенадцать 56K модемов (Courier V.Everything 56K) через Multilink PPP, чтобы достичь скорости загрузки 668 Кбит/с на ПК с Windows XP и парой PCI-карт с последовательными портами.

Это позволило проверить возможности старого оборудования для стриминга видео и демонстрирует потенциал MPPP для объединения нескольких модемов в один логический канал.


Ранее коммерческие решения использовали 2–4 модема, но массового применения не получили из-за сложности подключения и ограничений провайдеров.

Энтузиасты проверили работу MPPP на современном интернет-провайдере и смогли масштабировать систему до двенадцати модемов, обеспечив стабильную загрузку видео с минимальной задержкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁235👍1
SysRq Magic Key в Linux: экстренное управление системой

Иногда сервер или ноутбук может зависнуть так, что даже kill -9 не помогает.

В Linux для таких случаев есть «волшебная кнопка» — SysRq (System Request).

С её помощью можно отправлять ядру команды напрямую, минуя оболочку и процессы.

Включение SysRq

Обычно функция включена, но можно проверить:

cat /proc/sys/kernel/sysrq


0 — выключено
1 — включены все команды
или битовая маска (например, 16 = только sync).

Чтобы включить:

echo 1 > /proc/sys/kernel/sysrq


Постоянно (через sysctl):

echo "kernel.sysrq = 1" >> /etc/sysctl.conf
sysctl -p


Как пользоваться

Нужно зажать Alt + SysRq (Print Screen) и нажать нужную клавишу:
• r — вернуть управление клавиатуре (Raw → XLATE)
• e — завершить все процессы (SIGTERM)
• i — убить все процессы (SIGKILL)
• s — сбросить данные на диск (sync)
• u — перемонтировать файловые системы в read-only
• b — немедленная перезагрузка

«Безопасная последовательность» (REISUB)

Если система зависла:

Alt + SysRq + r
Alt + SysRq + e
Alt + SysRq + i
Alt + SysRq + s
Alt + SysRq + u
Alt + SysRq + b


Это поможет корректно завершить процессы, сохранить данные и только потом перезагрузиться.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍116
😁181😱1
Какой инструмент позволяет детально отследить утечки памяти в работающем процессе, включая используемые библиотеки?
Anonymous Quiz
9%
top
32%
valgrind
35%
htop
23%
ps aux
👎9👍8🔥1
tuned: профили оптимизации производительности Linux

tuned — это демон и набор профилей, которые позволяют автоматически подстраивать параметры ядра и драйверов под разные сценарии использования.

Вместо того чтобы вручную править sysctl, grub и конфиги драйверов, можно активировать готовый набор оптимизаций.

Например:
throughput-performance — максимум пропускной способности, полезно для серверов БД и высоконагруженных сервисов;
latency-performance — снижение задержек для realtime-задач и телеком-сервисов;
virtual-guest — оптимизация гостевых VM;
powersave — агрессивная экономия энергии.

Посмотреть список доступных профилей:

tuned-adm list


Включить нужный:

tuned-adm profile throughput-performance


Если стандартные профили не подходят, можно собрать свой — с настройкой CPU governor, IRQ affinity, параметров сети и дисков.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🔥2
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое Page Cache в Linux и почему он так важен для работы системы?

Ответ: Page Cache — это механизм ядра Linux, позволяющий хранить содержимое файлов и блоков диска в оперативной памяти для ускорения доступа. Когда процесс читает данные с диска, они попадают в Page Cache, и при повторном обращении к тем же данным система может отдать их напрямую из памяти, минуя медленный диск.
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍3😁1