Инго Молнар представил запланированные изменения для Linux 6.0 — ветки, которая изначально хотела стать 5.20. Линус Торвальдс объяснил выбор: с большими номерами легко запутаться, поэтому он решил перейти к 6.x. Большая часть изменений касается планировщика и балансировки нагрузки.
Разберём, что готовится, как это повлияет на систему и как проверить нововведения.
Почему 6.0
Номер версии не означает масштаб изменений. 6.0 — такое же регулярное обновление с циклом в 9–10 недель, как и 5.19. Смена нумерации — вопрос удобства для мейнтейнеров и пользователей.
Ожидать «крупного перелома» из-за номера не стоит. Важно содержимое merge window.
# проверить текущую версию
uname -r
uname -a
# список доступных ядер
apt-cache search linux-image | grep generic | tail -5
Балансировка нагрузки
Планировщик ядра распределяет задачи между ядрами и узлами NUMA. В 6.0 ожидаются улучшения: доступ к настройкам NUMA-балансировки через sysfs, более точное перемещение задач, уменьшение лишних переходов.
На многопроцессорных серверах это снижает накладные расходы и улучшает производительность под параллельной нагрузкой. На ноутбуке с одним узлом эффект минимален.
# посмотреть параметры балансировки
cat /proc/sys/kernel/sched_migration_cost_ns 2>/dev/null
cat /proc/sys/kernel/sched_nr_migrate 2>/dev/null
# NUMA-топология
numactl --hardware
lscpu | grep -i numa
# топология ядер
lscpu -e=CPU,CORE,SOCKET,NODE | head -20
Память и планирование
Обновления касаются и подсистемы памяти: управления страницами, кэша и вытеснения. Совместно с планировщиком это влияет на то, как быстро система реагирует на нагрузку.
Изменения в памяти заметнее на больших машинах и при нехватке ресурсов. На десктопе разница обычно невелика.
# состояние памяти
free -h
cat /proc/pressure/memory 2>/dev/null
cat /proc/vmstat | head -20
# своп
swapon --show
# кэш страниц
grep -E "Cached|Dirty|Writeback" /proc/meminfo
Готовые и ожидаемые функции
В 6.0 ожидаются обновления драйверов, файловых систем и сетевого стека. Точный состав известен после merge window; до этого многое остаётся в статусе «планируется».
Не доверяйте обещаниям из новостей: проверяйте исходники и финальные заметки к выпуску.
# если собираете ядро сами
git log --oneline v5.19..v6.0 2>/dev/null | wc -l
# статистика по подсистемам
git log --oneline v5.19..v6.0 2>/dev/null | head -20
Стоит ли обновляться
6.0 не LTS: его поддержка продлится до выхода следующей ветки. Для серверов берите ядро дистрибутива. Для домашней машины обновление уместно, если нужно новое оборудование или функции.
# Ubuntu/Debian
sudo apt update && sudo apt full-upgrade
# Fedora
sudo dnf upgrade --refresh kernel
# Arch
sudo pacman -Syu linux
sudo reboot
uname -r
Перед обновлением сохраните предыдущее ядро и список модулей. Это поможет при регрессии.
dkms status > ~/dkms-before.txt
uname -r > ~/kernel-before.txt
ls /boot/vmlinuz-* > ~/kernels.txt
Что проверить после установки
- Загрузку и графику.
- Сон и гибернацию.
- Сеть и Wi-Fi.
- Звук.
- Диски и файловые системы.
- Контейнеры и виртуальные машины.
- Сторонние модули.
systemctl --failed
journalctl -k -b -p err | tail -40
ip -br a
df -h
dkms status
docker ps 2>/dev/null | head
Проверьте и производительность: если после обновления система стала медленнее, сравните до и после по своим сценариям.
# измерение
fio --name=test --rw=readwrite --size=512M --runtime=30 --time_based
sysbench cpu --threads=4 run 2>/dev/null | tail -5
Если возникла проблема
Вернитесь на предыдущее ядро через GRUB, сохраните журнал и откатите изменения. Не удаляйте старые пакеты, пока не убедитесь в стабильности.
journalctl -k -b -1 | tail -100
lsmod | grep -E "nvidia|vbox|zfs"
sudo apt-mark hold linux-image-$(uname -r) 2>/dev/null
Практический тест балансировки
Чтобы оценить изменения, запустите параллельную нагрузку и посмотрите, как распределяются задачи. Сравните до и после обновления на одинаковых настройках.
# распределение задач по ядрам
mpstat -P ALL 2 5
# нагрузка на NUMA-узлы
numastat -m 2>/dev/null | head -20
# параллельный запуск
sysbench cpu --threads=$(nproc) run 2>/dev/null | tail -5
Смотрите на разброс нагрузки между ядрами: сильные перекосы указывают на плохую балансировку или на неравномерность самой задачи.
Настройки, которые стоит знать
# время жизни задачи до миграции
cat /proc/sys/kernel/sched_migration_cost_ns
# сколько задач мигрировать за раз
cat /proc/sys/kernel/sched_nr_migrate
# частота проверки NUMA-балансировки
cat /proc/sys/kernel/numa_balancing 2>/dev/null
# доступные смещения планировщика
cat /sys/kernel/debug/sched/features 2>/dev/null | head -5
Не меняйте значения без необходимости: планировщик настроен так, чтобы работать в среднем хорошо. Нестандартные настройки оправданы только под конкретную нагрузку.
Отчёт о регрессии
Если после обновления производительность упала, зафиксируйте версию ядра, настройки и сценарий. Приложите вывод mpstat и perf stat, а не только ощущения.
uname -r > regression.txt
mpstat -P ALL 1 10 >> regression.txt
perf stat -e task-clock,context-switches,cpu-migrations -a sleep 10 >> regression.txt 2>/dev/null
Поддержка после релиза
Не-LTS-ветки живут недолго. Если вы не можете часто обновляться, держите ядро дистрибутива: вендор перенесёт нужные исправления сам.
# проверить, поддерживается ли установленная версия
cat /proc/version
# и какие версии доступны
apt-cache search linux-image | grep generic | tail -5
Итог
Linux 6.0 — регулярный выпуск с новым номером и улучшениями планировщика, включая NUMA-балансировку. Это не LTS, поэтому для долгосрочных систем выбирайте ядро дистрибутива. Обновляйтесь штатным способом, сохраняйте старое ядро и проверяйте сеть, диски, драйверы и производительность.