Performance IIS + ASP.NET contre (NGINX + FastCGI + Mono ou XSP)?

Combien de demandes peuvent être traitées? Combien de béliers sont nécessaires?

Tant que je me souviens, FastCGI - Ce sont des processus initialisés ouverts, chacun peut gérer une demande.

Qu'en est-il de la multithreading?
Invité:

Dominique

Confirmation de:

Je développe activement comme dans PHP, Alors B. ASP.Net. Je ne peux pas admissible à une connaissance approfondie IIS ou NGINX, Mais je suis très familier avec Apache et Lighttpd.

ASP.Net Utilise une architecture multi-threadé, qui fait partie du serveur météo lui-même. Les variables statiques conservent leur valeur entre les demandes et entre les utilisateurs. Ici ASP.Net Obtient l'avantage maximum de la vitesse. La mémoire globale est stockée dans chaque processus individuel et entre les filets. Les processus distincts ne partagent pas la mémoire. Par conséquent, lors de la mise à l'échelle au-delà du même serveur, la plupart de cet avantage est perdu.

PHP Construit dans l'ancien style CGI, où chaque demande - Ceci est une feuille vierge. Cela signifie que toutes les informations générales doivent être obtenues à partir du stockage général ou complètement restaurées. PHP Pas lent, il est différent. La plupart des principales opérations dans PHP - C'est un défi de modules écrites sur C, Par conséquent, ils travaillent sur la foudre. Par lui-même PHP Ce n'est pas aussi rapide que la langue compilée, mais en aucun cas n'est pas plus lente. Exister (Très commun) Des modules pour PHP, quelle cache compilée (à l'esprit) version de code et peut augmenter la productivité de 4 avant que 10 temps.

PHP Il y a longtemps, il y a eu beaucoup de solutions pour son style. CGI. xcache Invite le référentiel de valeurs, très similaires aux variables statiques ASP.Net. Memcache offre un peu plus lentement, mais la meilleure solution pour la mise à l'échelle (entre serveurs physiques) Pour les variables communes permanentes.

ASP.Net Il offre beaucoup plus de formalisme et de structure. Mais les mauvais programmeurs peuvent gâcher n'importe quelle langue. Si tu choisis ASP.Net, Vous devriez explorer certaines des excellentes bibliothèques qui n'appartiennent pas. Microsoft, Pour le developpement. (par exemple, NHIbernate &
http://www.castleproject.org/
)

Ma préférence personnelle (Quand je ne paye pas pour un autre) - PHP. Malgré le fait qu'il nécessite une réduction de vitesse, il est plus facile de se développer et moins difficile à échelle. (Même si vous avez besoin de plus de serveurs pour cela. PHP, que .Net). Les serveurs sont beaucoup moins chers que les programmeurs.

En tout cas, toute application Web> 2.0 Il sera lié aux données et la configuration de la base de données aura un effet beaucoup plus fort sur la performance que le choix de la langue.

Agathe

Confirmation de:

J'ai passé un test Web simple asp.net mvc3, Travailler B. IIS7 sur Windows 7, et le même site travaillant sur centos 6.2 de mod_mono et mono 2.11.2. Ce sont des deux machines virtuelles sur un matériel fonctionnant dans une machine virtuelle. Voiture réelle - Core i5.

utilisant apache bench Sur l'autre machine Linux sur le même réseau (ab -n 1000 -c 100)

Centos 6.2 (default settings, no other sites running on 8088)
Server Software: Apache/2.2.15
Server Hostname: 192.168.1.208
Server Port: 8088

Document Path: /
Document Length: 24 bytes

Concurrency Level: 100
Time taken for tests: 3.401 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 354000 bytes
HTML transferred: 24000 bytes
Requests per second: 294.01 [#/sec] (mean)
Time per request: 340.124 [ms] (mean)
Time per request: 3.401 [ms] (mean, across all concurrent requests)
Transfer rate: 101.64 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 3 6.4 0 25
Processing: 14 321 71.1 325 483
Waiting: 14 321 71.1 325 483
Total: 39 324 67.8 326 483

Percentage of the requests served within a certain time (ms)
50% 326
66% 344
75% 358
80% 370
90% 408
95% 426
98% 441
99% 445
100% 483 (longest request)



(Again default settings, Windows 7 x64)
Server Software: Microsoft-IIS/7.5
Server Hostname: 192.168.1.115
Server Port: 8088

Document Path: /
Document Length: 27 bytes

Concurrency Level: 100
Time taken for tests: 0.469 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 294783 bytes
HTML transferred: 27351 bytes
Requests per second: 2131.09 [#/sec] (mean)
Time per request: 46.924 [ms] (mean)
Time per request: 0.469 [ms] (mean, across all concurrent requests)
Transfer rate: 613.48 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 4 17 4.6 17 27
Processing: 12 28 6.9 28 61
Waiting: 9 22 6.9 22 55
Total: 24 45 7.0 45 67

Percentage of the requests served within a certain time (ms)
50% 45
66% 48
75% 49
80% 50
90% 52
95% 55
98% 59
99% 62
100% 67 (longest request)

Je suis sûr que vous pouvez configurer les paramètres, etc. Mais si je manque quelque chose de simple, IIS, Il semble plusieurs fois plus vite fonctionnant avec asp.net mvc.

L'idée même était surtout vide, il n'y avait qu'un mot dedans.

Ce n'est pas le meilleur test, et certainement pas ce que je donnerais à mon patron. Je soupçonne que mono sera mieux exposé avec nginx ou lighttpd, Mais maintenant je n'ai pas.

Christine

Confirmation de:

Nous lançons l'application asp.net MVC Comment IIS, Alors B. XSP, et IIS dépasser XSP à la fois en termes de performance et de fiabilité.

Vous pouvez facilement effectuer des tests de performance, mais XSP Non destiné aux médias de production. Nous avons enregistré une erreur qui, de temps à autre, a entraîné une défaillance du processus XSP, qu'ils ne vont pas corriger (De toute évidence, cela est dû à des changements profonds dans l'architecture.). En fin de compte, nous venons d'envelopper et de redémarrer le processus lors de sa mort, mais vous devez savoir que ces deux (XSP et IIS) Animaux très différents.

Si vous travaillez dans Windows, Utilisation IIS. IIS7 pas si mal.

Catherine

Confirmation de:

Il ya environ un an Microsoft Test publié IIS + WCF intitulé
http://msdn.microsoft.com/en-u ... .aspx
. Pas tout à fait concentré sur le test de page Web. En tout cas, il a montré de très bonnes performances lorsqu'il est utilisé IIS, Flux de travail et code .NET.

7 ou 8 Il y a des années, le test de charge Web était plus actif. Mais à un moment donné, il semblait que la performance était si bonne que sur un serveur à grande échelle standard Intel As-tu utilisé Linux + ??? ou Windows + .NET, Vous obtiendrez une très bonne performance. (Sous réserve de conception de design raisonnable).

Cependant, je ne peux pas commenter PHP et FastCGI.

Et je ne connais personne qui comparerait Linux + Mono + XSP de Windows + .NET + ASPNET Sur le même équipement.

Alice

Confirmation de:

Il y a d'excellents tests pour IIS et nginx:

(et Apache, Cherokee, G-WAN, Lighttpd, Ulib etc.)

Sur

Linux

:

http://gwan.ch/en_linux.html
Sur

Windows

:

http://gwan.ch/en_windows.html
Par

PHP, Java et C #

:

http://gwan.ch/
Je n'ai jamais vu de telles comparaisons claires nulle part ailleurs. Code de la source de test (sur PHP, Java, C #) Aussi disponible ici:

http://gwan.ch/source/
J'espère que cela aidera.

Alice

Confirmation de:

J'ai une petite opinion: ces dernières années, j'ai travaillé avec .net C # de IIS sur un site Web à grande échelle que nous avons commencé avec IIS6, Et maintenant ils passaient à IIS7. 99% IIS très bien gonflé avec sa tâche avec .net (Caching, traitement de la requête, etc.)

Dans la mesure où Linux moins cher et j'aime bien centos, J'ai essayé d'aller à Mono avec un environnement de test et j'ai remarqué un changement de performance. Peut-être que je ne savais pas comment configurer l'environnement correctement.

Mon expérience personnelle est maintenant:

Si je veux créer un site web avec php, Je l'installe sur mon serveur Linux (Centos6, nginx, php-fpm, mariadb, apc cache)

Quand j'ai besoin de faire quelque chose sur C #, Je l'ai mis sur Windows Server 2008, Moins de maux de tête, plus de fiabilité et de soutien.

Le seul problème Microsoft Server - le prix. Si vous êtes un petit développeur, des exigences d'équipement minimum pour le système MS beaucoup plus bas que pour la voiture avec Linux.

Christine

Confirmation de:

Je ne recommanderais pas IIS. Tout d'abord, il manque de nombreuses fonctions très très importantes. (tel que dos_evasive), Deuxièmement, il utilise beaucoup de mémoire, troisièmement, configuration - Ceci est un cauchemar et différents pour chaque version. IIS (Écrire la documentation «a» - Écrivez 3 [iis 5,6,7]). Performance IIS Également faible, quatrième, vous rencontrerez les problèmes de segmentation de la mémoire (besoin de redémarrer le serveur chaque 20 minutes?), Et cinquième que le système d'exploitation le plus fatalement requis MS (Ram ot 1 avant que 2 GB uniquement pour lancer le système d'exploitation) . De plus, un bon pare-feu coûte un état entier.

je suis sorti Linux Et maintenant je travaille dans la société Windows.

Et je peux seulement vous dire que cette transition était la pire décision que j'ai jamais reçue.

Vous devrez non seulement travailler sur une plate-forme délibérément instable, mais aussi une difficulté à écrire les installateurs (Installateur Windows ne peut pas télécharger la chaîne ce que tout installer peut faire Linux, Les applications ne peuvent pas supprimer elles-mêmes, donc pas de vraies applications auto-renouvelables et vous devez écrire vous-même le programme de mise à jour, alors que dans Linux apt prendre soin de tout). Et vous passez également à la plate-forme où IE C'est un navigateur par défaut.

Je ne peux que vous dire que je passe les jours de création d'applications Web compatibles avec IE, où vous n'avez besoin que d'heures pour Linux, Parce que vous n'avez pas besoin de corriger toutes ces erreurs de base du navigateur IE avec votre code parce que IE Ne fonctionne pas B. Linux ( Eh bien, en général, c'est possible, mais ce n'est pas légal) ...

Pour répondre aux questions, connectez-vous ou registre