Comment échelle bibliothèque parallèle de tâches sur un serveur terminal ou dans une application web?

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

Question

Je comprends que le TPL utilise des files d'attente de vol de travail pour ses tâches quand j'exécute des choses comme Parallel.For et constructions similaires.

Si je comprends bien, la construction tournera un certain nombre de tâches, où chacun des éléments de traitement de démarrage. Si l'une des tâches compléter leurs éléments attribués, il va commencer avoir volé des objets des autres tâches qui n'a pas encore terminé leur. Cela résout le problème où les articles 1-100 ne coûtent pas cher à traiter et des articles 101-200 sont coûteux, et l'une des deux tâches seraient tout simplement rester les bras croisés jusqu'à ce que l'autre terminé. (Je sais que c'est une exaplanation simplifiée.)

Cependant, comment cette échelle sur un serveur terminal ou dans une application Web (en supposant que nous utilisons TPL dans le code qui fonctionnerait dans l'application Web)? Peut-on risque de saturer les processeurs avec des tâches juste parce qu'il ya N instances de notre côté en cours d'exécution l'application à côte?

Y at-il des informations sur ce sujet que je devrais lire? Je n'ai pas encore trouver quelque chose en particulier, mais cela ne signifie pas qu'il n'y en a pas.

Était-ce utile?

La solution

Vous pourriez être en mesure d'utiliser le TPL pour améliorer les opérations liées E / S en passant à un modèle asynchrone. Vous pourriez également être en mesure d'améliorer la latence de la demande en faisant plus l'utilisation de la capacité de traitement inutilisée sur un serveur Web dans des situations de faible charge. Vous voulez penser à ce joli soin que sous des charges élevées où les processeurs sont déjà 100% utilisé en ajoutant plus de parallélisme réduit le débit sur le serveur.

Ceci est discuté sur l'équipe parallèle Extensions Blog:

Utiliser les extensions parallèles pour .NET 4 dans ASP.NET des applications

Je soupçonne que le même argument s'applique aux applications Terminal Server également.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top