что такое page scaling

Scaling Horizontally vs. Scaling Vertically

July 24, 2020

Capacity planning is a challenge that every engineering team faces when it comes to ensuring the right resources are in place to handle expected (and unexpected) traffic demands. When demand for your application or website is increasing and you need to expand its accessibility, storage power, and availability levels, is it better to scale horizontally or vertically?

That decision depends on a number of factors. Is request volume steadily growing and/or is the current growth experiencing spikes that lead to service degradation. These types of considerations, coupled with an application’s unique make-up, need to be evaluated when determining the optimal scaling approach.

What is scalability?

The scalability of an application can be measured by the number of requests it can effectively support simultaneously. The point at which an application can no longer handle additional requests effectively is the limit of its scalability. This limit is reached when a critical hardware resource runs out, requiring different or more machines. Scaling these resources can include any combination of adjustments to CPU and physical memory (different or more machines), hard disk (bigger hard drives, less “live” data, solid state drives), and/or the network bandwidth (multiple network interface controllers, bigger NICs, fiber, etc.).

Scaling horizontally and scaling vertically are similar in that they both involve adding computing resources to your infrastructure. There are distinct differences between the two in terms of implementation and performance.

What’s the main difference?

Horizontal scaling means scaling by adding more machines to your pool of resources (also described as “scaling out”), whereas vertical scaling refers to scaling by adding more power (e.g. CPU, RAM) to an existing machine (also described as “scaling up”).

One of the fundamental differences between the two is that horizontal scaling requires breaking a sequential piece of logic into smaller pieces so that they can be executed in parallel across multiple machines. In many respects, vertical scaling is easier because the logic really doesn’t need to change. Rather, you’re just running the same code on higher-spec machines. However, there are many other factors to consider when determining the appropriate approach.

что такое page scaling. Смотреть фото что такое page scaling. Смотреть картинку что такое page scaling. Картинка про что такое page scaling. Фото что такое page scaling

Horizontal Scaling
(scaling out)
Vertical Scaling
(scaling up)
DatabasesIn a database world, horizontal scaling is usually based on the partitioning of data (each node only contains part of the data).In vertical scaling, the data lives on a single node and scaling is done through multi-core, e.g. spreading the load between the CPU and RAM resources of the machine.
DowntimeIn theory, adding more machines to the existing pool means you are not limited to the capacity of a single unit, making it possible to scale with less downtime.Vertical scaling is limited to the capacity of one machine, scaling beyond that capacity can involve downtime and has an upper hard limit, i.e. the scale of the hardware on which you are currently running.
ConcurrencyAlso described as distributed programming, as it involves distributing jobs across machines over the network. Several patterns associated with this model: Master/Worker*, Tuple Spaces, Blackboard, MapReduce.Actor model: concurrent programming on multi-core machines is often performed via multi-threading and in-process message passing.
Message passingIn distributed computing, the lack of a shared address space makes data sharing more complex. It also makes the process of sharing, passing or updating data more costly since you have to pass copies of the data.In a multi-threaded scenario, you can assume the existence of a shared address space, so data sharing and message passing can be done by passing a reference.
ExamplesCassandra, MongoDB, Google Cloud SpannerMySQL, Amazon RDS

*See the ongoing discussion around the need to change the Master/Slave terminology, leading to its removal in 2018 from the Python Programming Language.

The decision to scale out or scale up

In choosing between the two, there are various factors to consider. These include:

In conclusion: a seamless transition between the two models?

It doesn’t always make sense to choose between horizontal and vertical scaling. Moving between the two models is often a better choice. For instance, in storage, we often want to switch between a single local disk to a distributed storage system.

Building flexibility into the system, where some layers of the application run on vertically scaled machines and other layers on horizontally scaled infrastructure remains a matter of designing for parallelization. To achieve this, (i) design it from the outset as a decoupled set of services, making the code easier to move, meaning you can add more resources when needed without breaking the ties between your code sets; (ii) partition your application and data model so the parallel units don’t share anything.

It’s likely that the industry will increasingly migrate towards a horizontally distributed approach to scaling architecture. This trend is driven by the demand for more reliability through a redundancy strategy, and the requirement for improved utilization through resource sharing as a result of migration to cloud/SaaS environments. However, combining this with a vertical scaling approach can allow us to benefit from both paradigms.

Источник

Как использовать Windows 10 Display Scaling

Сделайте отображаемый текст, значки и элементы навигации более понятными

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

Почему вы хотите использовать масштабирование дисплея

Система масштабирования экрана Windows 10 регулирует размер текста, значков и элементов навигации, чтобы людям было удобнее видеть и использовать компьютер.

Вы можете настроить масштаб отображения для вашего устройства с Windows 10, а также для любых внешних дисплеев. Например, корректировка масштабирования дисплея может преобразовать дисплей из текста с небольшим текстом, который трудно прочитать, в экран, который легче увидеть. Кроме того, масштабирование может также облегчить открытие, запуск и использование приложений на проецируемом дисплее.

Система масштабирования экрана Windows 10 выбирает размер на основе нескольких факторов, таких как собственное разрешение экрана, размеры экрана и предполагаемое расстояние от экрана. Например, расстояние от экрана предполагает, что дисплей ноутбука будет ближе к глазам зрителя, чем внешний монитор, и проецируемый дисплей будет просматриваться на еще большем расстоянии.

Разрешение экрана является отдельной настройкой от масштабирования. См. Как настроить разрешение экрана в Windows для этих шагов.

Как включить масштабирование экрана в Windows 10

Чтобы настроить масштабирование экрана Windows 10, необходимо выбрать процент масштабирования. Вот как.

Выберите опцию, например 125% или 150%, тогда ваш дисплей изменится.

Это оно! Теперь ваш дисплей должен быть масштабирован до выбранного вами размера.

Как настроить масштабирование для нескольких дисплеев или для пользовательских размеров

Вы можете настроить масштаб отображения для вашего основного дисплея и подключенных дисплеев. Поместите курсор и щелкните (или коснитесь) на прямоугольнике для дисплея, который вы хотите масштабировать, например, дисплей 1 или дисплей 2 и т. Д. Затем отрегулируйте масштабирование для выбранного дисплея. Это позволяет настроить масштабирование для каждого дисплея отдельно.

Расширенные настройки масштабирования также предоставляют вам доступ к дополнительному параметру, который будет «Позволить Windows пытаться исправить приложения, чтобы они не были размытыми». Однако эта настройка применяется только к главному экрану, а не к любому внешнему дисплеи.

Устранение неполадок масштабирования экрана в Windows 10

Не все приложения хорошо масштабируются, особенно на дисплеях с высоким разрешением, также известных как дисплеи с высоким разрешением (точек на дюйм). Выполните следующие действия, чтобы переопределить параметры масштабирования экрана Windows для определенного приложения. Не вносите эти корректировки или изменения без крайней необходимости. (См. Разрешение 4K Ultra HD (обзор, подробности и последствия для получения дополнительной помощи по настройке дисплея с высоким разрешением.)

Найдите свое приложение в списке установленных приложений, затем щелкните правой кнопкой мыши (или коснитесь двумя пальцами) в приложении.

Найдите приложение в списке файлов, затем щелкните правой кнопкой мыши (или коснитесь двумя пальцами) в приложении.

Найдите кнопку с надписью «Изменить настройки высокого DPI».

Измените параметры масштабирования по желанию или необходимости.

Ваши индивидуальные настройки масштабирования дисплея теперь будут применяться к этому приложению.

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

Более ранние версии Windows не всегда корректируют масштабирование так же плавно, как Windows 10. В некоторых версиях Windows требуется выполнить выход после настройки параметров масштабирования, а затем выполнить вход. Кроме того, при использовании старых программ вы можете обнаружьте, что некоторые приложения не поддерживают настройки масштабирования экрана Windows. В любом случае, возможно, пришло время обновить систему до Windows 10 или обратиться за помощью к разработчику приложения.

Источник

scaling

1 scaling

2 scaling

3 scaling

4 scaling

5 scaling

6 scaling

7 scaling

масштабирование
изменение масштаба


[Л.Г.Суменко. Англо-русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.]

Тематики

Синонимы

масштабирование
Процесс определения масштабов переменных в решаемой задаче, а также коэффициентов передачи или параметров пассивных элементов в блоках машины.
Примечание
Масштабом переменной в решаемой задаче называется число, являющееся отношением значения машинной переменной к соответствующему значению физической переменной.
[ Сборник рекомендуемых терминов. Выпуск 84. Аналоговая вычислительная техника. Академия наук СССР. Комитет научно-технической терминологии. 1972 г. ]

Тематики

Обобщающие термины

масштабирование
Увеличение или уменьшение всего изображения или его части.
Примечание
Масштабирование можно проводить необязательно с одним и тем же коэффициентом по всем направлениям.
[ ГОСТ 27459-87]

Тематики

Тематики

образование окалины
образование накипи

1. Формирование толстого слоя продуктов окисления на металлах при высокой температуре; отличается от ржавления, при котором образуются гидроксиды.
2. Осаждение нерастворимых в воде веществ на металлической поверхности, как в охлаждающих трубах, так и паровых котлах.
[ http://www.manual-steel.ru/eng-a.html ]

Тематики

Синонимы

окалинообразование
Образование продуктов окисления (окалины) на поверхности металла при нагреве в окислительной газовой среде.
[ http://metaltrade.ru/abc/a.htm]

Тематики

Тематики

Синонимы

Увеличение или уменьшение всего изображения или его части.

Примечание. Масштабирование можно проводить необязательно с одним и тем же коэффициентом по всем направлениям

8 scaling

9 scaling

10 scaling

11 scaling

12 scaling

13 scaling

14 scaling

15 scaling

16 scaling

17 scaling

18 scaling

19 scaling up

пропорциональное увеличение

[Л.Г.Суменко. Англо-русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.]

Тематики

увеличение масштаба

[Л.Г.Суменко. Англо-русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.]

Тематики

увеличение скорости счета

[Л.Г.Суменко. Англо-русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.]

Тематики

20 scaling

См. также в других словарях:

Scaling — may refer to: * Scaling (geometry), a linear transformation that enlarges or diminishes objects * Scaling (computer network), a network s ability to function as the number of people or computers on the network increases. Related to Scalability *… … Wikipedia

Scaling — Scal ing (sk[=a]l [i^]ng), a. 1. Adapted for removing scales, as from a fish; as, a scaling knife; adapted for removing scale, as from the interior of a steam boiler; as, a scaling hammer, bar, etc. [1913 Webster] 2. Serving as an aid in… … The Collaborative International Dictionary of English

scaling — scales, scaling A form of measurement technique based on the observation of supposed common cultural meanings or shared social interpretations. One common sociological use of this technique is the attempt to devise measures of social prestige or… … Dictionary of sociology

Scaling — Scale Scale, v. t. [imp. & p. p. ; p. pr. & vb. n. .] To weigh or measure according to a scale; to measure; also, to grade or vary according to a scale or system. [1913 Webster] Scaling his present bearing with his past. Shak.… … The Collaborative International Dictionary of English

Scaling — Sca|ling 〈[skɛılıŋ] n. 15; unz.〉 Veränderung des Größenmaßstabes von Druckvorlagen (z. B. Bilder, Grafiken) entsprechend der in Verwendung genommenen Druckmaterialien (z. B. Prospekte) [<engl. scale „Maßstab“] * * * Sca|ling [ skeɪlɪŋ], das; s … Universal-Lexikon

Scaling — Wärmetauscher in einem Dampfkraftwerk verschmutzt durch Makrofouling … Deutsch Wikipedia

Scaling — Sca|ling [ skeiliŋ] das; s <aus gleichbed. engl. scaling zu to scale »(nach Maßstab) abstufen«; vgl. ↑Skala> das Vergrößern od. Verkleinern von [Bild]vorlagen vor einer Verwendung in Prospekten od. Anzeigen … Das große Fremdwörterbuch

Scaling — Refer instead to Image scaling … International financial encyclopaedia

scaling up — A mechanical method of copying a small sculpture on a larger scale by increasing all the measurements proportionately, using such measuring devices as a scaling board, caliper, or pointing machine … Glossary of Art Terms

Источник

Автомасштабирование

Автомасштабированием называется процесс динамического выделения ресурсов в соответствии с требованиями к производительности. При увеличении объема работ приложению требуются дополнительные ресурсы, чтобы поддерживать необходимый уровень производительности и удовлетворять требования соглашений об уровне обслуживания (SLA). При снижении нагрузки исчезает и потребность в дополнительных ресурсах, а значит их можно освободить для экономии средств.

Автоматическое масштабирование использует преимущества эластичности облачной среды и сокращает издержки на управление, так как оператору не нужно отслеживать производительность системы и принимать решения о добавлении или удалении ресурсов.

Масштабировать приложение можно двумя способами:

Вертикальное масштабирование (увеличение или уменьшение масштаба), означает изменение производительности ресурса. Например, вы можете перенести приложение на виртуальную машину большего размера. Вертикальное масштабирование обычно сопряжено с временной неработоспособностью системы на период изменений в развертывании. По этой причине вертикальное масштабирование редко выполняется автоматически.

Горизонтальное масштабирование (развертывание и свертывание), означает добавление или удаление экземпляров ресурса. При подготовке новых ресурсов приложение будет работать без перерывов. Когда процесс подготовки завершится, решение будет развернуто на новых дополнительных ресурсах. Если нагрузка снижается, дополнительные ресурсы можно выключить и отключить штатным образом.

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

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

Компоненты автомасштабирования

Стратегия автомасштабирования обычно включает следующие компоненты:

Azure предлагает встроенные механизмы для автомасштабирования, разработанные для многих распространенных сценариев. Если какая-то служба или технология не имеет встроенных средств автомасштабирования или если ваши требования не соответствуют их возможностям, вы можете создать пользовательскую реализацию. Ваша система может собирать рабочие и системные метрики, анализировать их и выполнять масштабирование ресурсов соответствующим образом.

Автоматическое масштабирование в решении Azure

Azure поддерживает встроенное автомасштабирование для большинства вычислительных технологий.

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

Service Fabric также поддерживает автоматическое масштабирование с помощью масштабируемых наборов виртуальных машин. каждый тип узла в кластере Service Fabric настроен как отдельный масштабируемый набор виртуальных машин. Это позволяет свертывать и развертывать каждый тип узла независимо от других типов. см. раздел масштабирование Service Fabricного кластера с помощью правил автомасштабирования.

В службе приложений Azure реализован встроенный механизм автомасштабирования. Параметры автомасштабирования применяются ко всем приложениям в службе приложений. См. статью Масштабирование числа экземпляров вручную или автоматически.

В облачных службах Azure реализован встроенный механизм автомасштабирования на уровне роли. См. статью Как настроить автомасштабирование для облачной службы на портале.

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

И наконец, иногда есть смысл создать пользовательское решение для автомасштабирования. Например, вы можете использовать службы диагностики Azure и метрики приложений, чтобы в пользовательском коде отслеживать и экспортировать нужные метрики приложений. На основе этих метрик можно определять пользовательские правила, которые с помощью API REST диспетчера ресурсов будут запускать автомасштабирование. Однако пользовательское решение не так просто реализовать, и его следует рассматривать только в том случае, если ни один из предыдущих подходов вас не устраивает.

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

Использование автомасштабирования Azure Monitor

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

Увеличьте масштаб ресурсов при увеличении нагрузки, чтобы обеспечить доступность. Аналогично, в моменты низкой загрузки, можно уменьшить масштаб, чтобы оптимизировать затраты. Всегда используйте сочетание правил масштабирования и масштабирования. В противном случае Автомасштабирование выполняется только в одном направлении, пока не достигнет порогового значения (максимального или минимального количества экземпляров), установленного в профиле.

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

Список встроенных метрик см. в статье Общие метрики автомасштабирования Azure Monitor. Вы можете создать собственные метрики с помощью Application Insights.

Автомасштабирование можно настроить с помощью PowerShell, Azure CLI, шаблонов Azure Resource Manager или портала Azure. Для более точного управления используйте REST API Azure Resource Manager. Библиотека управления службами мониторинга Azure и библиотека аналитики Microsoft (в предварительной версии) — это пакеты SDK, которые позволяют собирать показатели различных ресурсов и выполнять автоматическое масштабирование, используя интерфейсы REST API. Для ресурсов, которые не поддерживают Azure Resource Manager, или при использовании облачных служб Azure для автоматического масштабирования можно воспользоваться REST API управления службами. Во всех остальных случаях для автоматического масштабирования рекомендуется применять Azure Resource Manager.

При использовании автомасштабирования учитывайте следующие аспекты.

Рассмотрите возможность точного прогнозирования нагрузки на приложение, чтобы использовать запланированное Автомасштабирование, добавлять и удалять экземпляры, чтобы удовлетворить ожидаемые пиковые значения спроса. Если это невозможно, используйте автомасштабирование на основе метрик среды выполнения, чтобы оперативно реагировать на непредсказуемые изменения спроса. Но обычно мы советуем объединить эти подходы. Например, создайте стратегию, которая добавляет ресурсы на основе расписания, когда известно, что приложение будет загружено. Так вы обеспечите достаточную производительность в нужный момент без задержек, связанных с запуском новых экземпляров. В дополнение к каждому запланированному правилу определите метрики для оперативного автомасштабирования на период действия этого правила, чтобы приложение могло обрабатывать длительные и непредсказуемые всплески нагрузки.

Зачастую сложно понять связь между метриками и требованиями к мощности, особенно в случае, если приложение изначально развернуто. Для начала выделите мощность с некоторым запасом, а затем наблюдайте и корректируйте работу правил автомасштабирования, чтобы выделяемая мощность как можно точнее соответствовала реальной нагрузке.

Настройте правила автомасштабирования, а затем отслеживайте изменения в производительности приложения. Используйте результаты такого отслеживания для настройки способа масштабирования системы при необходимости. Однако помните, что автоматическое масштабирование не выполняется мгновенно. Требуется время, чтобы среагировать на метрики, такие как средняя загрузка ЦП, превышающая указанное пороговое значение (или находящаяся ниже него).

Правила автоматического масштабирования, использующие механизм обнаружения на основе измеренного атрибута триггера (например, загрузка ЦП или длина очереди), применяют агрегированное значение по времени, а не конкретное значение, чтобы запустить действие автоматического масштабирования. По умолчанию агрегированное значение — это среднее значение. Это позволяет предотвратить слишком быстрое реагирование системы или появление быстрых колебаний. Кроме того, она позволяет создавать новые экземпляры, автоматически запускаемые для сопоставления в режиме выполнения, что предотвращает выполнение дополнительных действий автоматического масштабирования во время запуска новых экземпляров. Для облачных служб и виртуальных машин Azure период агрегирования по умолчанию составляет 45 минут, поэтому для запуска метрикой автоматического масштабирования в ответ на пиковую нагрузку может потребоваться как раз такое время. Период агрегирования можно изменить с помощью пакета SDK, но периоды менее 25 минут могут привести к непредсказуемым результатам. Для веб-приложений средний период намного меньше, благодаря чему новые экземпляры доступны приблизительно в течение пяти минут после изменения среднего показателя триггера.

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

Ручное масштабирование сбрасывается по максимальному и минимальному числу экземпляров, используемых для автоматического масштабирования. При ручном обновлении числа экземпляров до значения, превышающего максимальное значение, модуль автомасштабирования автоматически масштабируется до минимального (если он меньше) или максимума (если больше). Например, вы задаете диапазон от 3 до 6. При наличии одного запущенного экземпляра при следующем запуске параметр автомасштабирования развернет количество экземпляров до трех. Аналогичным образом, если вручную задать масштабирование до восьми экземпляров, при следующем запуске будет выполнено обратное автомасштабирование до шести экземпляров. Если не сбросить также правила автомасштабирования, то масштабирование вручную будет временным.

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

Дополнительные сведения о том, как Azure Monitor масштабируется, см. в разделе рекомендации по автомасштабированию.

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

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

С помощью портала вы можете связать ресурсы (такие как экземпляры базы данных SQL и очереди) с экземпляром облачной службы. Это позволяет упростить доступ к отдельным вариантам конфигурации масштабирования вручную и автоматически для всех связанных ресурсов. Дополнительные сведения см. в статье Управление облачными службами.

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

В Среда службы приложений для определения правил автомасштабирования можно использовать любой рабочий пул или метрики внешнего интерфейса. Дополнительные сведения см. в статье Автомасштабирование и среда службы приложений версии 1.

Рекомендации по проектированию приложений

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

Система должна поддерживать возможность горизонтального масштабирования. Избегайте делать предположения относительно определения экземпляра; не создавайте решения, которые требуют, чтобы код всегда выполнялся в конкретном экземпляре процесса. При масштабировании облачной службы или веб-сайта не следует предполагать, что последовательность запросов из одного и того же источника всегда будет направляться в один и тот же экземпляр. По этой же причине службы следует разрабатывать без сохранения состояния. Это позволит избежать того, чтобы серия запросов из приложения всегда направлялась в тот же экземпляр службы. При разработке службы, которая считывает сообщения из очереди и обрабатывает их, не делайте никаких предположений о том, какой экземпляр службы обрабатывает определенное сообщение. Функция автоматического масштабирования может запустить дополнительные экземпляры службы при увеличении длины очереди. Шаблон конкурирующих потребителей описывает, как справиться с этим сценарием.

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

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

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

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

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

Чтобы предотвратить попытки системы выполнить чрезмерное масштабирование и избежать затрат, связанных с выполнением тысяч экземпляров, рекомендуется ограничить максимальное количество экземпляров, которые можно добавлять автоматически. Большинство механизмов автоматического масштабирования позволяют указать минимальное и максимальное число экземпляров для правила. Кроме того, рекомендуется корректно снизить функциональные возможности системы, если развернуто максимальное количество экземпляров, но система по-прежнему перегружена.

Помните, что автоматическое масштабирование может оказаться не таким уж и полезным механизмом в случае внезапного резкого увеличения рабочей нагрузки. Для подготовки и запуска новых экземпляров службы или добавления ресурсов в систему требуется время, а к моменту, когда эти дополнительные ресурсы станут доступны, пик нагрузки может пройти. В этом случае лучше всего подходит регулирование службы. Дополнительные сведения см. в разделе шаблон регулирования.

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

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

Связанные шаблоны и рекомендации

При реализации автоматического масштабирования рекомендуется принять во внимание следующие шаблоны и рекомендации.

Шаблон регулирования. Этот шаблон описывает, каким образом приложение может продолжить работать и обеспечивать выполнение требований соглашений об уровне обслуживания по мере увеличения нагрузки на ресурсы. Регулирование можно использовать совместно с автоматическим масштабированием для предотвращения перегрузки системы во время ее масштабирования наружу.

Шаблон конкурирующих потребителей. Этот шаблон описывает то, как реализуется пул экземпляров службы, которые могут обрабатывать сообщения от любого экземпляра приложения. Автоматическое масштабирование можно использовать для запуска и остановки экземпляров службы в соответствии с ожидаемой рабочей нагрузкой. Такой подход позволяет обрабатывать несколько сообщений одновременно, чтобы оптимизировать пропускную способность для повышения масштабируемости и доступности, а также для распределения рабочей нагрузки в системе.

Мониторинг и диагностика. Инструментирование и телеметрия очень важны для сбора информации, которая требуется в процессе автоматического масштабирования.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *