Почему 12.04 удаляет ядро ​​-server?

13

Ubuntu удаляет аромат -server, как указано в примечаниях к выпуску от 12.04:

Как и в случае с Beta-1, ядро ​​Beta-2 больше не содержит отдельных вариантов ядра amd64 -server и -generic. Они были объединены в единый общий вариант ядра, чтобы помочь снизить нагрузку на обслуживание в течение срока службы этого выпуска LTS.

Различия между -generic и -server, по-видимому, связаны с вытеснением, прерыванием таймера и планировщиком ввода-вывода, как указано на: https://help.ubuntu.com/10.10/serverguide/C/preparing-to-install .html # интро-ядра-файлы изменения

Я прошу технические характеристики.

  1. Итак, что происходит сейчас?
  2. Будет ли серверная версия работать с ядром рабочего стола без снижения производительности?
  3. Это как-то оправдано?
  4. Что происходит с этими различиями?
  5. Могут ли они быть изменены в пользовательском пространстве?
  6. Там не применимо по состоянию на 12.04?
  7. Если ответ «да», это изменение повлечет за собой снижение производительности?

Все они - вопросы, на которые можно ответить. Я прошу конкретные изменения в пакете, а не что-нибудь еще.

gentakojima
источник

Ответы:

10

Как вы заметили в анонсах релиза, универсальные и серверные версии ядра были объединены в выпуск 12.04, чтобы уменьшить нагрузку на обслуживание в течение срока службы LTS. Два варианта ядра фактически отличались только в отношении двух основных параметров конфигурации ядра: планировщика ввода-вывода по умолчанию и модели вытеснения.

Это подробно обсуждалось в списке рассылки Ubuntu Kernel Team

Как отмечалось в этом потоке, планировщик ввода / вывода по умолчанию изменился с "дедлайна" на "cfq". Однако любой, кто хочет остаться с планировщиком ввода-вывода Deadline, может сделать это во время загрузки, установив elevator=deadline.

Модель вытеснения изменилась с CONFIG_PREEMPT_NONE на CONFIG_PREEMPT_VOLUNTARY. В настоящее время у меня, к сожалению, нет никаких ориентиров производительности, на которые можно было бы указать. Надеюсь, это поможет некоторым. Благодарю.

Линн Огасавара
источник
7

На ваш вопрос «почему» ответили в предложенной вами цитате - потому что так легче поддерживать. Функциональность ядра достаточно хорошо параметризована, вы можете изменять такие вещи, как планировщик во время выполнения, поэтому нет необходимости в компиляции различных значений по умолчанию.

Точные причины и обсуждение деталей вам нужно будет задать в списке рассылки Ubuntu KernelTeam - см. Контактную информацию на информационной странице KernelTeam Wiki .

syneticon-ди-джей
источник
2

Сейчас происходит только одно ядро ​​как для сервера, так и для рабочего стола. Планировщик ввода-вывода может быть изменен во время выполнения, если вы хотите, но CFQ является наиболее полным и активно поддерживаемым планировщиком, поэтому он является хорошим значением по умолчанию. Какой из них вы используете, не имеет большого значения для большинства рабочих нагрузок. Ядро сервера раньше отключало даже добровольное прерывание работы ядра, потому что теоретически оно могло дать немноголучшая пропускная способность, но я не знаю каких-либо измерений производительности, которые действительно показывают какую-либо выгоду, поэтому на практике серверы не будут затронуты переходом к модели настольных компьютеров. Ядро также не имеет отметки (CONFIG_NO_HZ), что означает, что оно планирует прерывания по таймеру только при необходимости на основе текущих таймеров приложения, а не с фиксированным интервалом, и я считаю, что это имело место в некоторых выпусках, несмотря на то, что говорится в руководстве сервера. ,

TL; DR: Поддерживать другое ядро ​​для серверов было бесполезно, поэтому практика прекратилась.

psusi
источник
Планировщик ввода / вывода делает действительно делает разницу , особенно для виртуализации рабочих нагрузок. Взгляните сюда: publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaat/… , он заключает: «В целом, рисунок показывает, что планировщик ввода-вывода Deadline превосходит планировщик ввода-вывода CFQ, особенно в многопоточные сценарии " .
Syneticon-DJ DJ