J'ai une application serveur personnalisée qui s'exécute sur Windows 2008 R2. Il s'agit d'un service Windows maison écrit en .Net prenant en charge un certain nombre de terminaux personnalisés. J'ai une machine de test qui a une spécification similaire au serveur live et j'ai un ensemble de simulateurs clients que je peux utiliser pour produire une charge qui est une approximation raisonnable du système réel. Je dois pouvoir prendre en charge 12 000 d'entre eux et actuellement le serveur manque de mémoire (la pagination passe par le toit).
Mon plan était de démarrer seulement 100 des simulateurs, de mesurer l'utilisation de la mémoire, puis de recommencer 100 autres mesures de la mémoire et de répéter jusqu'à ce que la pagination commence à monter (en réalité, je prendrai plus de trois points de données.) Cela devrait me donner un chiffre pour la quantité de mémoire supplémentaire requise pour 100 simulateurs et me permet de projeter la quantité de mémoire requise. Je n'ai besoin que d'une idée approximative de +/- 30 Go pour éviter d'acheter la totalité des 2 To (150 000 $) que le serveur prendra. Ma question est de savoir s'il s'agit d'une méthode raisonnable à utiliser et, dans l'affirmative, quels compteurs de performances surveilleriez-vous pour donner la quantité de mémoire réellement utilisée?
Je parle spécifiquement de mémoire ici car la différence entre Working Set, Private Bytes, Committed, Shared, Virtual et tous les autres termes de mémoire me confond. Je pense que je peux gérer par moi-même le CPU, les E / S et les réseaux. L'autre chose que j'ai remarquée est que le cache .Net ajuste son utilisation de la mémoire en fonction de ce qui est disponible, ce qui rend la détection d'une tendance difficile à voir.