Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к этой рекомендации по эффективности производительности платформы Azure Well-Architected Framework:
| PE:07 | Оптимизация кода и инфраструктуры. Используйте выполняемый код и убедитесь, что он выгрузит обязанности на платформу. Используйте код и инфраструктуру только для их основной цели и только при необходимости. |
|---|
В этом руководстве описаны рекомендации по оптимизации производительности кода и инфраструктуры. Чтобы оптимизировать код и инфраструктуру, следует использовать компоненты только для их основной цели и только при необходимости. При использовании кода и инфраструктуры он создает ненужные ресурсы, узкие места и медленные ответы. Чтобы компенсировать эти неэффективности, необходимо добавить дополнительные ресурсы для выполнения тех же задач.
Определения
| Срок | Definition |
|---|---|
| Concurrency | Если одновременно выполняются несколько задач или процессов, но не обязательно одновременно. |
| Архитектура ЦП | Компоненты и принципы, влияющие на работу компьютера. |
| Сжатие данных | Действие уменьшения размера файлов путем минимизации избыточных данных. |
| Куча | Область в памяти, используемая для выделения памяти среды выполнения. |
| Утечки памяти | Если рабочая нагрузка не может освободить выделенную память после того, как память больше не нужна. |
| Параллелизм | При одновременном выполнении нескольких задач или процессов. |
Оптимизация кода и инфраструктуры подразумевает точное настройка кода и вспомогательной инфраструктуры для повышения производительности. Для этого требуется выполняющийся код, который быстро выполняет задачи и не тратит ресурсы. Для этого требуется хорошо разработанная инфраструктура, которая упрощается, чтобы избежать ненужных сложностей. Рабочая нагрузка должна использовать встроенные возможности платформы. Это подход, который помогает обеспечить использование кода и инфраструктуры в первую очередь для их основных целей и только при необходимости.
Оптимизация производительности кода
Чтобы оптимизировать производительность кода, измените код для уменьшения использования ресурсов, минимизации времени выполнения и повышения производительности. Вы можете изменить код, чтобы повысить эффективность и скорость программы программного обеспечения. Не маскировка проблем с производительностью с применением подбора. Метод подбора означает добавление вычислительных ресурсов для компенсации производительности кода, например добавление дополнительной емкости вместо обращения к источнику. Необходимо устранить проблемы с производительностью при оптимизации. При оптимизации производительности кода она помогает максимизировать использование системных ресурсов, повысить время отклика, уменьшить задержку и повысить взаимодействие с пользователем.
Инструментирование кода
Инструментирование кода относится к практике добавления фрагментов кода или библиотек в код, который собирает данные и отслеживает производительность кода во время выполнения. Инструментирование кода позволяет разработчикам собирать сведения о ключевых метриках, таких как потребление ресурсов (ЦП, использование памяти) и время выполнения. Инструментируя код, разработчики могут получить аналитические сведения о горячих путях кода, определить узкие места производительности и оптимизировать код для повышения эффективности производительности.
В идеальной среде необходимо выполнить анализ кода в начале жизненного цикла разработки программного обеспечения. Чем раньше вы поймаете проблему с кодом, тем дешевле это исправить. Вы хотите автоматизировать как можно больше этого анализа кода. Используйте средства динамического и статического анализа кода, чтобы сократить усилия вручную. Однако имейте в виду, что это тестирование по-прежнему является имитацией рабочей среды. Рабочая среда обеспечивает наиболее четкое представление о оптимизации кода.
Компромисс: средства мониторинга кода, скорее всего, повышают затраты.
Определение горячих путей
Инструментируя код, можно измерять потребление ресурсов для различных путей кода. Эти измерения помогают определить горячие пути. Горячие пути оказывают значительное влияние на производительность и использование ресурсов. Они критически важны или часто выполняются в программах, требующих высокой производительности и низкой задержки. Чтобы определить горячие пути кода, выполните следующие действия.
Анализ данных среды выполнения: сбор данных среды выполнения и их анализ для выявления областей кода, которые используют значительные ресурсы, такие как ЦП, память или операции ввода-вывода. Найдите шаблоны или разделы кода, которые часто выполняются или занимают много времени.
Измерение производительности. Используйте средства профилирования или платформы тестирования производительности для измерения времени выполнения и потребления ресурсов различных путей кода. Это помогает выявить узкие места и области для улучшения.
Рассмотрим бизнес-логику и влияние пользователя: оцените важность различных путей кода на основе их релевантности к функциональным возможностям приложения или критически важным бизнес-операциям. Определите, какие пути кода имеют решающее значение для предоставления пользователям или требованиям к производительности.
Оптимизация логики кода
Оптимизация логики кода заключается в уточнении структуры и проектирования кода для выполнения задач с меньшим количеством ресурсов. Улучшенная логика сокращает ненужные операции. Он создает более быстрое выполнение с меньшим потреблением ресурсов. Необходимо удалить любые ненужные операции в пути кода, которые могут повлиять на производительность. Определите приоритеты оптимизации горячих путей, чтобы увидеть максимальную эффективность производительности. Чтобы оптимизировать логику кода, рассмотрите следующие стратегии.
Удалите ненужные вызовы функций: просмотрите код и определите какие-либо функции, которые не являются важными для требуемой функциональности и могут отрицательно повлиять на производительность. Например, если вызов функции выполняет проверку, выполненную ранее в коде, можно удалить ненужный вызов функции проверки.
Свести к минимуму операции ведения журнала: ведение журнала может оказаться полезным для отладки и анализа, но чрезмерное ведение журнала может повлиять на производительность. Оцените необходимость каждой операции ведения журнала и удалите ненужные вызовы ведения журнала, которые не являются критически важными для анализа производительности.
Оптимизация циклов и условных условий: анализ циклов и условных условий в коде и определение ненужных итераций или условий, которые можно устранить. Упрощение и оптимизация этих структур может повысить производительность кода. Свести к минимуму вызовы функций в циклах и исключить избыточные вычисления. Рассмотрите возможность перемещения вычислений за пределы цикла или с помощью разката цикла.
Уменьшение ненужных операций обработки данных: просмотрите код для любых ненужных операций обработки данных, таких как избыточные вычисления или преобразования. Удалите эти ненужные операции, чтобы повысить эффективность кода.
Оптимизация структур данных. Чтобы эффективно хранить и извлекать данные, выберите соответствующие структуры данных, такие как массивы, связанные списки, деревья и хэш-таблицы. Выберите лучшую структуру данных для конкретной проблемы. Подходящая структура данных повышает производительность приложения.
Свести к минимуму сетевые запросы: если код включает в себя выполнение сетевых запросов, свести к минимуму количество запросов и оптимизировать их использование. Пакетные запросы, когда это возможно, и избегайте ненужных обходных путей для повышения производительности.
Свести к минимуму выделение. Определите области, в которых происходит чрезмерное выделение памяти. Оптимизируйте код, уменьшая ненужные выделения и повторно используя существующие ресурсы, когда это возможно. Свести к минимуму выделение памяти можно повысить эффективность памяти и общую производительность. Используйте соответствующие стратегии управления памятью и сборки мусора для языка программирования.
Уменьшите размер структуры данных: оцените размер структур данных, таких как классы, и определите области, где это возможно. Просмотрите требования к данным и исключите ненужные поля или свойства. Оптимизация использования памяти путем эффективного выбора соответствующих типов данных и упаковки данных.
Используйте оптимизированные для производительности пакеты SDK и библиотеки. Используйте собственные пакеты SDK или библиотеки, оптимизированные для производительности. Собственные пакеты SDK предназначены для взаимодействия со службами и ресурсами на платформе или в рамках платформы. Например, облачные пакеты SDK лучше работают с плоскостями данных облачной службы, чем с пользовательским доступом к API. Пакеты SDK excel для обработки сетевых запросов и оптимизации взаимодействия. Оптимизированные для производительности библиотеки, такие как Math.NET, содержат оптимизированные для производительности функции. При правильном применении функций можно повысить производительность рабочей нагрузки.
Перекрестная реализация: рассмотрим последствия перекрестных реализаций, таких как по промежуточного слоя или проверки маркеров, и оцените, влияют ли они на производительность.
Просмотрите рекомендации по производительности, относящиеся к языку программирования, с которым вы работаете. Оцените код с помощью этих рекомендаций, чтобы определить области для улучшения.
Компромиссы:
- Для оптимизации кода и горячих путей требуется опыт разработчика в выявлении неэффективности кода является субъективным и может быть квалифицированным человеком, необходимым для других задач.
- Пакеты SDK обеспечивают удобство и устраняют сложности взаимодействия с API. Но пакеты SDK могут ограничить параметры управления и настройки для пользовательского кода.
Оптимизация управления памятью
Оптимизация управления памятью включает в себя уточнение способа использования рабочей нагрузки, выделения и выпуска ресурсов памяти для повышения эффективности. Правильное управление памятью повышает производительность кода, так как снижает затраты на операции с памятью. Эффективное использование памяти снижает задержку, предотвращает замедление работы системы или сбои и повышает пропускную способность вычислительных задач. Рассмотрим следующие стратегии оптимизации управления памятью.
Отладка проблем с памятью. Дампы памяти — это моментальные снимки памяти приложения. Они фиксируют состояние памяти приложения в определенный момент времени. Дампы памяти обеспечивают ретроспективный анализ проблем, связанных с памятью. Выберите подходящий тип дампа памяти на основе характера проблемы, которую вы пытаетесь диагностировать и доступные ресурсы. Для обычной отладки и полного дампа следует использовать миниатюрные дампы для сложных, критически важных проблем. Эта стратегия обеспечивает баланс между возможностями использования ресурсов и диагностики. Многие службы размещения кода поддерживают отладку памяти. Следует предпочитать службы, поддерживающие анализ памяти для тех служб, которые не поддерживают анализ памяти. Ниже приведены основные шаги по отладке проблем с памятью:
Сбор дампов памяти. Начните с настройки механизма записи дампов памяти во время выполнения приложения. Запись может быть активирована вручную, автоматически или при выполнении определенных условий (например, чрезмерного потребления памяти). Некоторые облачные службы уже могут предложить этот процесс.
Анализ дампов памяти. После сбора дампов памяти проанализируйте их. Многочисленные средства могут помочь вам в проверке этих дампов, таких как WinDbg для приложений Windows или GDB для систем под управлением Unix.
Определение утечек памяти: сосредоточьтесь на выявлении утечек памяти во время анализа. Утечки памяти возникают, когда приложение выделяет память, но не освобождает его, когда память больше не требуется. Поиск объектов или структур данных, которые остаются в памяти, даже если они должны быть освобождены.
Исправление и проверка. При определении проблемного кода сосредоточьтесь на устранении проблем с памятью. Решения могут включать правильное освобождение памяти, оптимизацию структур данных или повторное вычисление методов управления памятью. Убедитесь, что ваши решения проходят тщательное тестирование, чтобы обеспечить их эффективность.
Итерацию и мониторинг. Управление памятью — это непрерывный процесс. Регулярно отслеживайте использование памяти приложения и сохраняйте их при сборе дампов памяти в рабочей среде. Регулярно вернитесь к этапам анализа и оптимизации, чтобы убедиться, что проблемы с памятью не появляются повторно с последующими изменениями кода.
Включив анализ дампа памяти в жизненный цикл разработки программного обеспечения, вы можете повысить надежность и эффективность приложений. Это помогает снизить вероятность проблем, связанных с памятью в рабочей среде.
Уменьшите выделение памяти. Свести к минимуму выделение памяти, чтобы уменьшить общий объем памяти кода. Рабочая нагрузка может эффективно использовать доступную память. Сборщик мусора меньше нуждается в освобождении неиспользуемой памяти, а также снижает частоту и длительность циклов сборки мусора. Выделение памяти может быть дорогостоящим, особенно если они часто выполняются. Свести к минимуму выделение памяти, чтобы код можно было быстро и эффективно выполнять.
Кэши хранят часто доступ к данным близко к процессору, что повышает производительность. При минимизации выделения памяти для кэша меньше проблем, поэтому вы можете эффективно использовать кэш. Большое количество выделений памяти может снизить производительность приложения и создать ошибки. К другим способам минимизации выделения памяти относятся:
Локальные переменные: используйте локальные переменные вместо глобальных переменных для минимизации потребления памяти.
Отложенная инициализация: реализуйте отложенную инициализацию, чтобы отложить создание объектов или ресурсов до тех пор, пока они не потребуются.
Буферы: эффективное управление буферами, чтобы избежать выделения больших буферов памяти.
Пул объектов: рекомендуется использовать пул объектов для повторного использования больших объектов вместо выделения и освобождения их.
Дополнительные сведения см. в статье "Сокращение выделения памяти " и куча больших объектов в системах Windows.
Использование параллелизма и параллелизма
Использование параллелизма и параллелизма включает выполнение нескольких задач или процессов одновременно или в перекрывающихся способах эффективного использования вычислительных ресурсов. Эти методы повышают общую пропускную способность и количество задач, которые может обрабатывать рабочая нагрузка. При параллельном выполнении задач уменьшается время выполнения приложения и уменьшается задержка и увеличивается время отклика. Параллелизм и параллелизм позволяют эффективно использовать вычислительные ресурсы, такие как ядра ЦП или распределенные системы. Параллелизм и параллелизм эффективно распределяют рабочую нагрузку между вычислительными ресурсами.
Используйте параллелизм. Параллелизм — это способность системы одновременно запускать несколько задач или процессов на нескольких вычислительных ресурсах. Параллелизм делит рабочую нагрузку на небольшие задачи, выполняемые параллельно. Параллелизм можно достичь с помощью таких методов, как многопроцессорная обработка или распределенные вычисления. Распределяйте задачи между многоядерными процессорами для оптимизации управления рабочими нагрузками. Оптимизируйте код, чтобы воспользоваться преимуществами архитектуры ЦП, потоковых моделей и многоядерных процессоров. При параллельном выполнении кода производительность улучшается, так как рабочая нагрузка распределяется по нескольким ядрам.
Используйте параллелизм. Параллелизм — это способность системы выполнять несколько задач или процессов. Параллелизм позволяет различным частям программы самостоятельно выполнять ход выполнения, что может повысить общую производительность. Вы можете реализовать параллелизм с помощью таких методов, как многопоточность, в которой одновременно выполняется несколько потоков в рамках одного процесса. Вы также можете использовать асинхронное программирование, в котором задачи активируются одновременно.
Асинхронное программирование: асинхронное программирование — это подход к активации задач без блокировки основного потока. Асинхронное программирование позволяет программе запускать задачи, ожидая завершения длительных операций. С помощью асинхронного программирования программа может инициировать несколько задач и ждать их асинхронного выполнения. Программе не нужно ждать завершения каждой задачи, прежде чем перейти к следующей.
Существует множество асинхронных методов программирования и шаблонов в зависимости от языка программирования и платформы. Одним из распространенных подходов является использование асинхронных ключевых слов и конструкций, таких как И на языках, таких как
asyncawaitC#. С помощью этих ключевых слов можно определить асинхронные методы. Для трафика HTTP рекомендуется использовать шаблон асинхронного Request-Reply.Многие платформы и библиотеки обеспечивают встроенную поддержку асинхронного программирования. Например, на платформе .NET можно реализовать асинхронные операции с помощью таких шаблонов, как Task-Based асинхронный шаблон и Event-Based асинхронный шаблон. Конкретная реализация асинхронного программирования зависит от языка программирования, платформы и требований приложения.
Очереди: очередь — это буфер хранилища, расположенный между запрашивающим компонентом (производителем) и компонентом обработки (потребителем) рабочей нагрузки. Для одной очереди может быть несколько потребителей. По мере увеличения задач необходимо масштабировать потребителей для удовлетворения спроса. Производитель помещает задачи в очередь. Очередь сохраняет задачи до тех пор, пока потребитель не имеет емкости. Очередь часто является лучшим способом передачи работы в службу обработки, которая испытывает пики спроса. Дополнительные сведения см. в разделеQueue-Based шаблоне выравнивания нагрузки и очередях хранилища и очередях служебной шины.
Использование пула подключений
Пул подключений — это практика повторного использования установленных подключений к базе данных вместо создания нового подключения для каждого запроса. Это может быть дорого, чтобы установить подключение к базе данных. Необходимо создать подключение к удаленному серверу базы данных с проверкой подлинности. Подключения к базе данных особенно дороги для приложений, которые часто открывают новые подключения. Пул подключений повторно использует существующие подключения и устраняет расходы на открытие нового подключения для каждого запроса. Пул подключений снижает задержку подключения и обеспечивает высокую пропускную способность базы данных (транзакции в секунду) на сервере. Вы должны выбрать размер пула, который может обрабатывать больше подключений, чем у вас сейчас. Цель состоит в том, чтобы пул соединений быстро обрабатывал новые входящие запросы.
Общие сведения об ограничениях пула подключений. Некоторые службы ограничивают количество сетевых подключений. При превышении этого ограничения подключения могут замедляться или завершаться. С помощью пула подключений можно установить фиксированный набор подключений во время запуска, а затем сохранить эти подключения. Во многих случаях размер пула по умолчанию может состоять только из нескольких подключений, которые выполняются быстро в базовых сценариях тестирования. Приложение может исчерпать размер пула по умолчанию в масштабе и создать узкие места. Необходимо установить размер пула, который сопоставляется с числом параллельных транзакций, поддерживаемых в каждом экземпляре приложения.
Проверьте пул подключений. Каждая база данных и платформа приложений имеют немного разные требования к настройке и использованию пула. Проверьте пул подключений, чтобы обеспечить эффективную работу под нагрузкой.
Риск. Пул подключений может создавать фрагментацию пула и ухудшать производительность.
Оптимизация фоновых заданий
Во многих приложениях требуются фоновые задачи, которые выполняются независимо от пользовательского интерфейса. Приложение может запустить задание и продолжить обработку интерактивных запросов от пользователей. Примеры фоновых заданий включают пакетные задания, задачи с интенсивным процессором и длительные процессы, такие как рабочие процессы. Фоновые задачи не должны блокировать приложение или вызывать несоответствия из-за задержки операции при загрузке системы. Чтобы повысить производительность, можно масштабировать вычислительные экземпляры, в которых размещаются фоновые задачи. Дополнительные сведения см. в разделе "Фоновые задания " и "Масштабирование" и "Рекомендации по повышению производительности".
Оптимизация производительности инфраструктуры
Оптимизация производительности инфраструктуры означает повышение и настройку элементов инфраструктуры для обеспечения пиковых операций и оптимального использования ресурсов для рабочей нагрузки. Благодаря тонкой настройке инфраструктуры можно свести к минимуму затраты, сократить задержки и добиться большего количества доступных ресурсов. Это гарантирует, что рабочие нагрузки выполняются надежно и быстро, что приводит к улучшению взаимодействия пользователей и экономии затрат. Чтобы оптимизировать производительность инфраструктуры, рассмотрите следующие стратегии.
Добавьте ограничения использования. Вы можете реализовать ограничения использования для некоторых компонентов рабочей нагрузки. Например, чтобы удалить нестабильные модули pod, можно определить ограничения ЦП и памяти pod в службе Azure Kubernetes (AKS). Чтобы оптимизировать производительность, можно определить ограничения памяти на виртуальных машинах Java .
Упрощение инфраструктуры. Упростите рабочую нагрузку, чтобы снизить вероятность взаимодействия, зависимостей и проблем совместимости. При упрощении рабочей нагрузки вы оптимизируете использование ресурсов памяти, мощности обработки и хранилища.
Уменьшение нагрузки. Чтобы снизить нагрузку на рабочую нагрузку, сведите к минимуму спрос, размещенный в приложении, и включите ресурсы для выполнения своих основных задач. Например, часто рекомендуется избежать выполнения решений безопасности в коде или отдельных вычислительных экземплярах. Вместо этого веб-серверы должны обслуживать HTTP-запросы. Брандмауэры веб-приложения и ресурсы шлюза могут обрабатывать проверки безопасности. Следующие стратегии помогают снизить нагрузку на рабочую нагрузку:
Итоговая согласованность. Внедрение конечной модели согласованности для повышения производительности, позволяя данным немного датироваться. В конечном итоге согласованность снижает немедленный спрос на циклы ЦП и пропускную способность сети для постоянных обновлений данных.
Делегирование задач: делегирование задач сервера клиентам или посредникам, таким как индексы поиска и кэши. Делегируйте задачи, такие как сортировка данных, фильтрация данных или представления отрисовки. При отключении этих задач вы уменьшаете рабочую нагрузку на серверах и повышаете производительность.
Оптимизация сети. Чтобы оптимизировать сеть рабочей нагрузки для повышения производительности, настройте и настройте сетевую инфраструктуру. Убедитесь, что рабочая нагрузка может работать на самом высоком уровне эффективности.
Сетевые протоколы: обновление до современных протоколов, таких как HTTP/2, что позволяет отправлять несколько запросов по одному подключению. Современные протоколы снижают затраты на создание новых подключений.
Компромисс. Современные протоколы могут исключить старых клиентов.
Сетевой чат: пакетные сетевые запросы вместе, чтобы уменьшить количество запросов. Вместо того, чтобы сделать несколько небольших запросов, объединить их в более крупные запросы, чтобы сократить расходы на сеть.
Запросы к базе данных: убедитесь, что запросы базы данных получают только необходимые сведения. Избегайте получения больших объемов ненужных данных, что может привести к увеличению сетевого трафика и снижению производительности.
Статические данные: используйте сеть доставки содержимого для кэширования часто доступного статического содержимого, близкого к пользователям. При кэшировании данных он не должен перемещаться по длинным расстояниям. Кэширование повышает время отклика и уменьшает сетевой трафик.
Сбор журналов. Сбор и сохранение только данных журнала, необходимых для поддержки ваших требований. Настройте правила сбора данных и реализуйте рекомендации по проектированию для оптимизации затрат на Log Analytics.
Сжатие данных: сжатие и пакет содержимого HTTP и файлов, чтобы обеспечить быструю передачу между клиентами и серверами. Сжатие сжимает данные, возвращаемые страницей или API, и отправляет обратно в браузер или клиентское приложение. Сжатие оптимизирует сетевой трафик, который может ускорить взаимодействие с приложением.
Компромисс. Сжатие добавляет обработку на стороне сервера и на стороне клиента. Приложение должно сжимать, отправлять и распаковывать данные. Многоадресное взаимодействие или обмен данными с несколькими получателями может создавать затраты на распаковку. Необходимо протестировать и оценить вариации производительности до и после реализации сжатия данных, чтобы определить, подходит ли он для рабочей нагрузки. Дополнительные сведения см. в разделе "Сжатие ответов" в ASP.NET Core.
Упрощение функций Azure
Код инструментирования: Azure Monitor Application Insights поддерживает автоматическое инструментирование (автоинструментацию) и ручное инструментирование кода приложения. Автоинструментация позволяет собирать данные телеметрии без касания кода приложения. Инструментирование вручную требует изменения кода для реализации API Application Insights или OpenTelemetry. Вы можете использовать Application Insights Profiler для оптимизации горячих путей.
Оптимизация логики кода: Azure предлагает пакеты SDK и библиотеки для различных языков программирования для взаимодействия со службами Azure. Используйте пакеты SDK для упрощения взаимодействия между приложениями и ресурсами Azure. Пакеты SDK обеспечивают оптимальное взаимодействие со службами Azure, что снижает задержку и повышает эффективность.
Оптимизация управления памятью. Используйте функцию интеллектуального обнаружения Application Insights для анализа потребления памяти и устранения утечек памяти.
Служба приложений Azure имеет функцию профилировщика и дампа памяти и функции анализа. Функция автоматического прослушивания службы приложений может автоматически принимать дампы памяти и трассировки профилей приложений .NET и Java.
Использование параллелизма и параллелизма. Различные службы Azure обеспечивают уникальную поддержку параллелизма, например Azure Cosmos DB, Функций Azure и хранилища BLOB-объектов. Для параллелизма службы AKS поддерживают развертывание контейнерных приложений, что улучшает параллельную обработку.
Пакетная служба Azure — это облачная служба планирования заданий, которую можно использовать для включения параллельных и высокопроизводительных вычислений без необходимости настройки инфраструктуры. Дополнительные сведения см. в разделе "Фоновые задания".
Оптимизация производительности инфраструктуры. Реализация шаблонов Azure Resource Manager для определения и развертывания инфраструктуры с помощью кода. Используйте эти шаблоны для реализации эффективных, повторяемых и согласованных развертываний ресурсов. Политика Azure предоставляет возможности управления, чтобы обеспечить соответствие развертываний ресурсов рекомендациям организации и стандартам.
Для асинхронного программирования используйте масштабируемые службы очередей, такие как хранилище очередей Azure и служебная шина Azure, для упрощения асинхронного программирования. Вы можете ставить задачи в очередь и самостоятельно обрабатывать их. Для поддержки асинхронных операций Azure Marketplace предлагает сторонние очереди и средства, которые можно интегрировать со службами Azure.
Связанные ссылки
- AKS
- Функция интеллектуального обнаружения Application Insights
- Асинхронный шаблон Request-Reply
- Избегайте выделения памяти
- Пакетная служба Azure
- Политика Azure
- Шаблоны диспетчера ресурсов Azure
- Пакеты SDK Для Azure
- Фоновые задания
- Рекомендации по масштабированию и производительности фоновых заданий
- Сжатие данных файла
- Сжатие содержимого HTTP
- Определение ограничений ЦП и памяти pod
- асинхронный шаблонEvent-Based
- Виртуальные машины Java (виртуальные машины)
- Куча больших объектов
- Фрагментация пула
- шаблон выравнивания нагрузкиQueue-Based
- Сжатие ответов в ASP.NET Core
- Очереди хранилища и очереди служебной шины
- асинхронный шаблонTask-Based
Контрольный список по обеспечению эффективности процессов
Ознакомьтесь с полным набором рекомендаций.