Как задача параллельная библиотека масштабирует на сервере терминала или в веб -приложении?

StackOverflow https://stackoverflow.com/questions/2753273

Вопрос

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

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

Однако, как этот масштаб на сервере терминала или в веб -приложении (при условии, что мы используем TPL в коде, который будет работать в веб -приложении)? Можем ли мы рискнуть насыщать процессоры задачами только потому, что есть n экземпляров нашего приложения, работающего рядом?

Есть ли информация по этой теме, которую я должен прочитать? Я еще не нашел что -то конкретное, но это не значит, что их нет.

Это было полезно?

Решение

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

Это обсуждается в блоге команды параллельных расширений:

Использование параллельных расширений для .NET 4 в приложениях ASP.NET

Я подозреваю, что тот же аргумент относится и к приложениям сервера терминалов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top