⚙️ Паровой сервер ROADIT

Справочник команд: 50 заклинаний для управления ядром 7.0

Добро пожаловать в котельную ROADIT. Здесь, среди шипящих паровых труб и мерцания латунных манометров, мы не гадаем на кофейной гуще — мы управляем ядром напрямую. Ядро Linux 7.0 — это не просто очередной апдейт, это новый котёл, в котором кипит производительность, безопасность и поддержка новейшего железа. И чтобы этот котёл не взорвался, нужно знать правильные вентили и заслонки. В этой статье мы собрали 50 заклинаний — команд, которые превратят вас из простого кочегара в главного инженера паровой машины под названием «сервер».



Паровой манометр: информация о ядре

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

uname — имя и версия паровой машины

uname -a          # Вся информация о системе
uname -r          # Версия ядра (например, 7.0.0-10-generic)
uname -m          # Архитектура (x86_64, aarch64)

В ядре 7.0 вы увидите что-то вроде 7.0.0-10-generic.

cat /proc/version — версия и компилятор

cat /proc/version

Показывает версию ядра, GCC и данные о сборке.

cat /proc/cmdline — параметры загрузки

cat /proc/cmdline

Какие параметры получило ядро при старте.

lsb_release -a — информация о дистрибутиве

lsb_release -a

Не команда ядра, но полезно знать, на какой платформе вы работаете.

uptime — время работы котла

uptime

Сколько работает система и средняя нагрузка.


Кованые шестерни: управление модулями ядра

Модули — это сменные шестерни в вашей паровой машине. Их можно подключать и отключать на лету.

lsmod — список установленных модулей

lsmod
lsmod | grep -i <keyword>   # Фильтр по ключевому слову

Показывает все загруженные модули, их размер и зависимости.

modinfo — подробности о модуле

modinfo <module_name>

Информация о модуле: автор, описание, параметры, зависимости.

modprobe — загрузка/выгрузка с зависимостями

sudo modprobe <module_name>   # Загрузить модуль
sudo modprobe -r <module_name> # Выгрузить модуль

modprobe умнее insmod — он автоматически подгружает зависимости.

insmod — ручная установка модуля

sudo insmod /path/to/module.ko

Требует полный путь к файлу модуля.

rmmod — ручное удаление модуля

sudo rmmod <module_name>

Простое удаление модуля из ядра.

depmod — генерация зависимостей

sudo depmod -a

Обновляет файл зависимостей модулей (modules.dep).


Регуляторы давления: sysctl и параметры ядра

sysctl — это ваш главный регулятор давления в паровой системе. Через него вы меняете поведение ядра на лету.

sysctl -a — показать все параметры

sysctl -a | less
sysctl -a | grep -i <keyword>

Выводит все параметры ядра (их тысячи).

sysctl <param> — показать конкретный параметр

sysctl kernel.hostname
sysctl net.ipv4.ip_forward

Чтение значения конкретного параметра.

sysctl -w <param>=<value> — установить параметр

sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w vm.swappiness=10

Изменение параметра в реальном времени.

sysctl -p — загрузить параметры из файла

sudo sysctl -p /etc/sysctl.conf

Применяет настройки из конфигурационного файла.

cat /proc/sys/<path> — альтернативный доступ

cat /proc/sys/vm/swappiness
echo 10 > /proc/sys/vm/swappiness

Параметры ядра доступны также через виртуальную файловую систему /proc/sys/.

ПараметрНазначениеТипичное значение
vm.swappinessСклонность к использованию swap10–60
vm.dirty_ratio% памяти для грязных страниц5–20
vm.dirty_background_ratioФоновый сброс2–10
vm.vfs_cache_pressureДавление на кэш inode50–100
net.ipv4.tcp_congestion_controlАлгоритм управления перегрузкамиbbr / cubic

В ядре 7.0 особенно актуален BBR и настройки dirty pages для высоких нагрузок.


Паровая турбина: производительность и планировщик

Ядро 7.0 приносит улучшения в планировщике задач и io_uring.

perf — универсальный анализатор производительности

perf top                          # Топ событий в реальном времени
perf record -a -g -- sleep 10     # Запись сэмплов
perf report                       # Отчёт
perf bench sched messaging -g 64  # Тест планировщика

perf — это ваш стетоскоп для прослушивания паровой турбины.

perf sched stats — статистика планировщика (новое в 7.0)

perf sched stats

Новая команда в ядре 7.0 для сбора статистики планировщика задач.

cpupower — управление частотами CPU

sudo cpupower frequency-info
sudo cpupower frequency-set -g performance
sudo cpupower idle-set --disable-by-latency 10

Управление частотами процессора для максимальной производительности.

taskset — привязка процессов к ядрам

taskset -c 0-3 ./myapp   # Запустить на ядрах 0-3
taskset -p 1234          # Показать маску для PID 1234

nice / renice — приоритеты процессов

nice -n 10 ./myapp
renice -n 5 -p 1234

ioping — задержки дисковых операций

ioping -c 10 /dev/sda

Показывает задержки доступа к диску (не входит в стандартный набор, но крайне полезен).

fio — тестирование ввода-вывода

fio --name=test --rw=randread --bs=4k --size=1G

Генератор нагрузки для тестирования дисковых подсистем.


Кочегарный журнал: отладка и логи

Когда пар идёт не из того отверстия, вам нужны логи.

dmesg — кольцевой буфер ядра

dmesg | tail -20          # Последние 20 сообщений
dmesg | grep -i error     # Ошибки
dmesg -w                  # Следить в реальном времени

Главный источник сообщений от ядра и драйверов.

journalctl -k — логи ядра из systemd

sudo journalctl -k -f           # Логи ядра в реальном времени
sudo journalctl -k | grep error # Фильтр

В современных системах с systemd — альтернатива dmesg.

strace — слежка за системными вызовами

strace -p <pid>              # Трассировка процесса
strace -e trace=file ./app   # Только файловые операции

Отслеживает, какие системные вызовы делает процесс.

ss — статистика сокетов (паровой манометр сети)

ss -tuln    # Все слушающие порты
ss -tp      # Сокеты с процессами

Пришла на смену netstat, показывает сетевые подключения изнутри ядра.

ftrace — трассировка функций ядра

echo function > /sys/kernel/debug/tracing/current_tracer
cat /sys/kernel/debug/tracing/trace

В ядре 7.0 добавлена настройка bitmask-list для вывода битовых масок.

/proc — виртуальная файловая система

cat /proc/meminfo      # Память
cat /proc/cpuinfo      # Процессор
cat /proc/interrupts   # Прерывания
cat /proc/loadavg      # Средняя нагрузка

Кладезь информации о состоянии системы.


Предохранительные клапаны: безопасность

Ядро 7.0 усиливает безопасность: ML-DSA, улучшенная KVM.

sysctl — параметры безопасности

sysctl kernel.randomize_va_space   # ASLR (1 = включен)
sysctl net.ipv4.conf.all.rp_filter # Reverse Path Filtering

auditctl — управление аудитом

sudo auditctl -l           # Список правил
sudo auditctl -a task,always # Добавить правило

capsh — управление capabilities

capsh --print              # Показать текущие capabilities

sealert — анализ SELinux

sealert -a /var/log/audit/audit.log

Топливо и пар: управление памятью

free — использование памяти

free -h

vmstat — статистика виртуальной памяти

vmstat 2 10   # Каждые 2 секунды, 10 раз

hugeadm — управление огромными страницами

hugeadm --pool-pages-min 2M:1024

В ядре 7.0 улучшена поддержка huge pages для высокопроизводительных баз данных.

echo в /proc/sys/vm/ — ручная настройка

echo 3 > /proc/sys/vm/drop_caches   # Очистка кэшей

Рельсы и шпалы: файловые системы

Ядро 7.0 приносит самовосстанавливающийся XFS и новую псевдо-ФС nullfs.

xfs_scrub — проверка и восстановление XFS

sudo xfs_scrub -v /mountpoint

Новая возможность в ядре 7.0 — проверка целостности XFS на лету.

mount / umount — монтирование

mount -t xfs /dev/sda1 /mnt
umount /mnt

df — свободное место

df -h

blkid — идентификаторы блочных устройств

blkid

lsblk — дерево блочных устройств

lsblk

Котёл высокого давления: загрузка и сборка ядра

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

make menuconfig — настройка ядра

make menuconfig

Текстовый интерфейс для настройки параметров ядра.

make -j$(nproc) — сборка

make -j$(nproc)

Сборка ядра с использованием всех ядер процессора.

make modules_install — установка модулей

sudo make modules_install

make install — установка ядра

sudo make install

grubby — управление параметрами загрузки (RHEL)

sudo grubby --update-kernel=ALL --args="parameter=value"

mainline — установка новых ядер в Ubuntu

mainline list-installed
mainline install v7.0.4

Последние заклинания

powertop — энергопотребление

sudo powertop

turbostat — мониторинг CPU (новое в 7.0)

turbostat

В ядре 7.0 turbostat теперь показывает статистику L2-кэша для новых Intel CPU.



⚙️ Машинное отделение ROADIT благодарит за прочтение.
Больше команд, шпаргалок и обзоров — на roadit.ru и в нашем Телеграф-канале.
📋 Все команды


Оставьте комментарий