1 votes

Performances du multithreading 32 cœurs pour ASP.NET 4.0 et MS SQL 2008 Web Edition

Récemment, le nombre de mes utilisateurs a augmenté et mon serveur actuel a commencé à devenir insuffisant. J'envisage d'acheter 4 x 8 = 32 cœurs AMD CPUs en utilisant un serveur dédié. Je me demande si ASP.NET 4.0 et MS SQL 2008 Web Server sont performants en matière de multithreading.

Peuvent-ils utiliser 32 cœurs avec une capacité de 100 %, ou dois-je acheter un maximum de 24 cœurs ou de 16 cœurs ?

(Cette machine fonctionnera sous Windows Server 2008 Standard Edition).

3voto

joast Points 858

La réponse : techniquement, une capacité de 100 % est un rêve en raison des frais généraux liés à la gestion d'un plus grand nombre de tâches, mais MS SQL Server 2008 est assez performant en matière de mise à l'échelle des cœurs/processeurs... Voici le tableau des capacités : http://msdn.microsoft.com/en-us/library/ms143760.aspx

Je m'aventurerais à dire que vous serez à la recherche de goulots d'étranglement lorsque vous renforcerez un système de type grosse boîte unique et il est tout à fait possible que les ajouts de CPU ne fassent rien du tout si votre goulot d'étranglement actuel est la mémoire ou les entrées/sorties de disque.

L'argent dépensé en CPU (et les coûts de licence SQL correspondants) sera probablement mieux utilisé s'il est d'abord dépensé pour maximiser toute la mémoire disponible. Ensuite, envisagez des disques plus rapides (SSD peut-être ?). Évidemment, assurez-vous que tous les problèmes de réseau sont traités, si ce n'est déjà fait. Mais la chose la plus importante à examiner est le code/la conception. Le temps consacré à l'optimisation du code existant vous permettra probablement d'en avoir plus pour votre argent.

Cependant, ma principale recommandation est de dépenser une somme relativement faible pour un audit réalisé par un professionnel du SQL. Laissez-le vous donner un aperçu de ce qui serait la meilleure solution à votre problème unique.

Bonne chance !

1voto

JaredCacurak Points 470

Je pense qu'à ce rythme de travail, d'autres parties du système vont commencer à se plaindre. Ce problème peut être résolu de manière plus économique en utilisant une ferme de serveurs plutôt qu'une seule bête.

0voto

giant1985 Points 11

Pouvez-vous fournir plus d'informations sur le nombre de demandes que vous recevez en une heure ou en une journée ? De quel matériel disposez-vous actuellement ? Où se situe le goulot d'étranglement ? Est-ce le CPU ou l'I/O ?

ASP.NET peut utiliser tous les cœurs. MS SQL 2008 peut utiliser tous les cœurs et toute la quantité de mémoire que vous lui permettez.

Le problème ne vient jamais du logiciel du serveur, mais plutôt du code que vous écrivez (c'est-à-dire votre application ASP.NET), de la façon dont vous avez conçu votre base de données (à la fois la base de données logique et physique), des requêtes que vous écrivez, etc.

D'après mon expérience de l'optimisation de grands sites Web de domaine public, je peux vous dire que votre serveur Web n'est pas à l'origine du ralentissement. Le problème réside généralement dans la façon dont l'application est conçue et codée et dans la façon dont la base de données a été conçue.

Vous devriez rassembler beaucoup de données sur l'utilisation de votre matériel actuel et profiler votre application asp.net et la base de données pour voir ce qui cause le plus de stress.

Une fois que vous savez ce qui cause le stress, la solution peut consister à nettoyer un peu votre code/base de données.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X