L'augmentation de max connexions simultanées pour le service web IIS7 (charge de test)
Je suis en train d'écrire un simple testeur de charge pour l'un de nos services web, qui est desservie par les IIS7. J'ai décidé de lancer une charge de threads (Tâches) que d'appeler le service web comme une Référence Web.
Malgré le fils toute de départ, à seulement 2 connexions simultanées à partir de l'app peuvent être traitées par le service web.
Je suis conscient que par la spécification connexions simultanées sont limités à 2 par utilisateur. Pour l'amour de cette charge testeur, qui je pense est un utilisateur, je voudrais ouvrir un grand nombre de connexions simultanées.
J'ai essayé d'ajouter les éléments suivants pour le web.config du service web.
<system.net>
<connectionManagement>
<add address="*" maxconnection="40"/>
</connectionManagement>
</system.net>
Ma configuration est comme suit:
Le service web est situé à http://devserver/MyWebServiceApp/MyWebService.asmx, où MyWebServiceApp est configuré comme une application.
La webmethod peut être considéré comme quelque chose de trivial qui attend simplement de, disons, 20 secondes avant de retourner une réponse (ce qui la rend facile de ne voir que 2 connexions sont ouvertes à tout moment).
La forme la plus simple de la charge testeur de code est le cul suit:
Imports System.Threading.Tasks
Module SuperBasicLoadTester
Sub Main()
ThreadLauncher(10)
End Sub
Sub ThreadLauncher(ByVal numberOfThreads As Integer)
Dim tasks(numberOfThreads - 1) As Task
For index As Integer = 0 To numberOfThreads - 1
tasks(index) = Task.Factory.StartNew(AddressOf SendRequest)
Next
Task.WaitAll(tasks)
End Sub
Sub SendRequest()
Dim myWebServiceCaller As New MyWebService.ServiceMethods
myWebServiceCaller.Url = "http://devserver/MyWebServiceApp/MyWebService.asmx"
Dim response As String = myWebServiceCaller.MyWebServiceMethod("Some string passed to the web service method")
End Sub
End Module
J'ai essayé de pointage d'autres tests de charge des logiciels (par ex. soapUI) au service web et ont observé le même problème.
Je serais reconnaissant pour toute idée de comment faire pour augmenter cette limite de connexion (à des fins de test).
Modifications:
- Je dois ajouter que le service web de la boîte est en cours d'exécution de Windows 2008 R2.
- Aussi, j'ai SoapUI et mon loadtester en même temps et chaque est
seulement en mesure de demander des 2 connexions (soit 4 au total).
Merci d'avance,
Ali
OriginalL'auteur alergy | 2012-03-29
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la réponse ici: Simultané de plusieurs WCF des appels de client unique pour Service de
Le problème était avec mon client, le service d'accueil. J'avais besoin de définir
System.Net.ServicePointManager.DefaultConnectionLimit
à l'initialisation du client.OriginalL'auteur alergy
Il y a un système à l'échelle de la connexion TCP limite, c'est essentiellement pour arrêter TCP en utilisant trop de ressources sur votre ordinateur.
Vérifier ici pour voir si cela aide, mais être prudent, car cela nécessite une certaine registre de peaufinage:
http://smallvoid.com/article/winnt-tcpip-max-limit.html
Le
TcpNumConnections
réglage ne fonctionne pas? (dans tous les honnête, je n'ai jamais essayé moi-même, ce serait bien si il y avait une INTERFACE utilisateur pour ça)J'ai trouvé la réponse qu'il avait à faire avec le client, le service d'accueil. Il doit
System.Net.ServicePointManager.DefaultConnectionLimit
à définir. Merci pour les commentaires - beaucoup apprécié.OriginalL'auteur Matthew Abbott