Управление нагрузкой Citrix Presentation Server — Часть 2: Смещение нагрузки

Опубликовано: 24 Апреля, 2023

  • Управление нагрузкой Citrix Presentation Server — часть 1

Вторая часть этой серии из трех частей раскроет скрытые секреты, связанные со смещением нагрузки на сервер и интеллектуальным смещением нагрузки. Мы поделимся несколькими советами по использованию и настройке этих функций, чтобы повысить эффективность вашей стратегии управления нагрузкой.

Введение

В первой части этой серии, состоящей из трех частей, мы начали с обзора компонентов подсистемы управления нагрузкой Citrix Presentation Server, а также подробного анализа нескольких аспектов процесса балансировки нагрузки. Во второй части серии мы рассмотрим смещение нагрузки на сервер, присутствующее в более ранних версиях MetaFrame, а также интеллектуальное смещение нагрузки (ILB), которое доступно для Presentation Server 4.0.

Что такое смещение нагрузки на сервер?

Одной из потенциальных проблем, упомянутых в предыдущей статье, был риск перегрузки определенного сервера из-за направления множества новых сеансов на этот сервер в течение очень короткого промежутка времени, обычно измеряемого от секунд до нескольких минут. Чтобы решить эту потенциальную ситуацию с перегрузкой сервера (иногда называемую « эффектом черной дыры »), Citrix внедрила « смещение нагрузки » . Смещение нагрузки — это просто метод компенсации потенциальной краткосрочной перегрузки того, что кажется недостаточно загруженным сервером, путем временной корректировки значения нагрузки или «оценки» этого сервера.

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

Сведения о смещении нагрузки на сервер

Смещение нагрузки на сервер действует на все серверы MetaFrame XP и Presentation Server по умолчанию; однако настроек по умолчанию обычно недостаточно для устранения эффекта черной дыры. В статье CTX103653 базы знаний Citrix дается краткое объяснение смещения нагрузки в системе управления нагрузкой. Есть два параметра реестра для смещения нагрузки; один для включения или выключения этой функции (включен по умолчанию) и один для настройки множителя смещения нагрузки.

На рис. 1 показано, что по умолчанию присутствует только одно из этих двух значений, значение LoadBias, и оно имеет значение по умолчанию 200 в десятичном формате или c8 в шестнадцатеричном формате.


фигура 1

Если вы хотите отключить смещение нагрузки, создайте значение REG_DWORD с именем « ForceRegBias » в разделе реестра « HKLMSoftwareCitrixIMALMS » и установите значение, равное «0». Если вы позже захотите снова включить эту функцию, просто установите это значение на «1». Чтобы повлиять на способ расчета значений смещения нагрузки, измените значение « LoadBias » REG_DWORD со значения по умолчанию 200. (Более высокое значение приведет к более быстрому ускорению значения временной нагрузки сервера) Значение смещения нагрузки используется для временной регулировки значения нагрузки каждого сервера презентаций в данной зоне; это значение нагрузки для каждого сервера в зоне, которое хранится в памяти сборщика данных для этой конкретной зоны. Сборщик данных применяет это значение смещения нагрузки к формуле для немедленного увеличения значения нагрузки серверов, поскольку сборщик данных направляет запросы на новые сеансы на эти конкретные серверы. Формула выглядит следующим образом:

Значение нагрузки на сервер (оценка) = Текущая нагрузка + ( количество одновременных входов в систему) X ( значение смещения нагрузки )

«Текущая нагрузка» — это оценка конкретного сервера в данный момент времени. Количество одновременных входов в систему — это количество входов в систему, которые в данный момент обрабатывает конкретный сервер, а значение смещения нагрузки — это значение, присутствующее в значении «LoadBias » в реестре конкретного сервера. Например, возьмем сервер (SERVER1), который был только что добавлен в ферму во время пикового периода входа в систему. Текущая нагрузка SERVER1 изначально будет равна или близка к нулю, что приведет к тому, что сборщик данных начнет отправлять новые сеансы на этот сервер. Если в этом примере сборщик данных отправил 10 новых сеансов на SERVER1 в течение очень короткого периода времени (секунд), сборщик данных скорректирует значение нагрузки SERVER1 следующим образом:

Значение нагрузки на сервер (оценка) = текущая нагрузка + ( количество одновременных входов в систему X значение смещения нагрузки )

2000 = 0 + ( 10 х 200 )

Как вы можете видеть, отправка 10 новых сеансов на SERVER1 приведет к тому, что значение нагрузки этого сервера будет скорректировано до 2000, что намного ниже потолка в 10 000 и, скорее всего, значительно ниже значений нагрузки других серверов в зоне. В худшем случае значение смещения нагрузки по умолчанию, равное 200, может позволить отправить до 50 новых одновременных входов в систему на SERVER1, прежде чем временное значение нагрузки достигнет максимального значения 10 000! Немногие, если какие-либо конфигурации серверов могли выдержать такой всплеск новых сессий.

Интеллектуальное смещение нагрузки

Как можно устранить этот риск? Значение реестра LoadBias может быть увеличено до более высокого значения в надежде, что количество одновременных входов в систему на конкретном сервере будет ограничено более управляемым значением. Регулировка этого значения может быть жизнеспособным решением; однако лучшим решением было бы в первую очередь изменить способ расчета смещения нагрузки, используя более эффективный алгоритм. Citrix сделала именно это, когда представила Intelligent Load Biasing, или ILB, с исправлением Presentation Server 4.0 ( PSE400R01W2K010 для Windows 2000 и PSE400R01W2K3027 для Windows 2003). Это оперативное исправление также присутствует в доступном в настоящее время накопительном пакете обновлений 2 ( PSE400W2KR02 для Windows 2000 и PSE400W2K3R02 для Windows 2003). ILB представила алгоритм смещения нагрузки «медленный старт», который значительно изменил то, как подсистема управления нагрузкой распределяет новые сеансы. По сути, этот новый алгоритм создает временное значение нагрузки, назначая значение смещения, равное половине оставшейся емкости нагрузки (используя значение множителя ILB по умолчанию, равное 2). Новая формула выглядит так:

Значение нагрузки на сервер (оценка) = ( Максимальная нагрузкаТекущая нагрузка ) / Значение множителя ILB

В таблице 1 показано, как работает этот алгоритм для повышения значения временной нагрузки, эффективно ограничивая количество одновременных входов в систему на данном сервере. Показано сравнение соответствующих значений нагрузки с использованием значения множителя ILB по умолчанию, равного 2, и эффекта, который изменение множителя ILB на значение 4 оказало бы на временные значения нагрузки, назначенные ILB. Как вы можете видеть, предпосылкой этого нового алгоритма является очень быстрое увеличение значения нагрузки до довольно высокого значения, а затем постепенное увеличение его по мере того, как дополнительные входы в систему назначаются конкретному серверу. Это относится к двум конкретным пунктам; немедленное назначение временного значения нагрузки 5000 для первого входа в систему и увеличение значения нагрузки в обратном логарифмическом порядке по мере обработки дополнительных входов гарантирует, что серверу не будет предложено одновременно обрабатывать значительное количество новых входов в систему. Во-вторых, этот алгоритм никогда не позволит назначать серверу временное значение нагрузки 10 000, что, по сути, не позволяет этому методу смещения нагрузки сделать так, чтобы все серверы в данной зоне не могли принимать новые входы в систему. Как дополнительно показано в Таблице 1, значение временной нагрузки будет увеличено до 8750 всего лишь при трех одновременных входах в систему (с использованием множителя ILB по умолчанию, равного 2). Однако, если множитель ILB изменить с 2 на 4, три одновременных входа в систему приведут к временному значению загрузки только 5781, что намного меньше 8750. Это показывает очень важный факт; в отличие от предыдущего алгоритма, увеличение значения реестра, используемого ILB, фактически уменьшает значение временной загрузки, которое будет назначено.

Множитель ILB

Текущая нагрузка

# Параллельные входы в систему

Временное значение нагрузки на сервер

2

0

1

5000

2

5000

2

7500

2

7500

3

8750

2

8750

4

9375

4

0

1

2500

4

2500

2

4375

4

4375

3

5781

4

5781

4

6834

ТАБЛИЦА 1

Насколько существенно это изменение в смещении нагрузки? Что ж, в приведенном выше примере без ILB можно было направить до 50 новых сеансов на один сервер до того, как значение нагрузки этого сервера достигло максимального значения 10 000. Однако при реализации ILB с использованием значений по умолчанию количество одновременных входов в систему будет значительно меньше 50, обычно меньше 5. На первый взгляд это заставляет задуматься, не слишком ли Citrix исправила эту проблему. Расслабляться; имеются элементы управления, позволяющие настраивать этот процесс в соответствии с размером и конкретным использованием вашей конкретной среды. Вернуться к реестру мы идем!

Статья базы знаний Citrix, CTX111085, содержит краткое объяснение смещения нагрузки и регулирования нагрузки (также называемого смещением нагрузки «медленного старта»). Изменение значения множителя ILB со значения по умолчанию, равного 2, может обеспечить лучшие результаты для вашей конкретной среды. Действия по изменению этого значения должны включать тщательное планирование и тестирование перед внесением любых изменений в процесс ILB в производственной среде. На рис. 2 представлены новые значения реестра, действующие при активной ILB. Обратите внимание, что исходное значение «LoadBias» по-прежнему присутствует, даже если оно не используется, если не отключена ILB.


фигура 2

Значение ILB Multiplier находится в значении REG_DWORD « ILBMultiplier» в разделе HKLMSoftwareCitrixIMALMS. Чтобы полностью отключить ILB, измените значение REG_DWORD « UseILB » в том же разделе реестра на ноль.

Вывод

Intelligent Load Biasing — отличное дополнение к Presentation Server, обеспечивающее гораздо более эффективное распределение новых сеансов, чем это было возможно ранее. До ILB искусство балансировки нагрузки между серверами Presentation Server было труднодостижимым, особенно во время пиковых периодов входа в систему. Понимание того, как функционирует ILB, а также доступные параметры настройки, позволит разработать более эффективную стратегию управления нагрузкой и, в конечном итоге, повысить производительность для ваших пользователей. Заключительная статья в этой серии из трех частей завершит головоломку управления нагрузкой, разобрав оценщики нагрузки и обсудив варианты мониторинга. Следите за обновлениями!

  • Управление нагрузкой Citrix Presentation Server — часть 1