Инго Молнар представил запланированные изменения для 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

Что проверить после установки

  1. Загрузку и графику.
  2. Сон и гибернацию.
  3. Сеть и Wi-Fi.
  4. Звук.
  5. Диски и файловые системы.
  6. Контейнеры и виртуальные машины.
  7. Сторонние модули.
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, поэтому для долгосрочных систем выбирайте ядро дистрибутива. Обновляйтесь штатным способом, сохраняйте старое ядро и проверяйте сеть, диски, драйверы и производительность.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте