Ich habe eine benutzerdefinierte Serveranwendung, die unter Windows 2008 R2 ausgeführt wird. Es handelt sich um einen in .Net geschriebenen Windows-Dienst, der eine Reihe von benutzerdefinierten Terminals unterstützt. Ich habe eine Testmaschine, die eine ähnliche Spezifikation wie der Live-Server hat, und ich habe eine Reihe von Client-Simulatoren, mit denen ich eine Last erzeugen kann, die eine vernünftige Annäherung an das reale System darstellt. Ich muss in der Lage sein, 12.000 davon zu unterstützen, und derzeit geht dem Server der Speicher aus (Paging geht durch das Dach).
Mein Plan war es, nur 100 der Simulatoren zu starten, die Speichernutzung zu messen, dann 100 weitere Speicher zu messen und zu wiederholen, bis das Paging beginnt (in Wirklichkeit werde ich mehr als drei Datenpunkte nehmen.) Dies sollte mir eine Zahl für geben Die Menge an zusätzlichem Speicher, die für 100 Simulatoren benötigt wird, und die es mir ermöglichen, zu projizieren, wie viel Speicher benötigt wird. Ich brauche nur eine grobe Idee von +/- 30 GB, um nicht die vollen 2 TB (im Wert von 150.000 USD) zu kaufen, die der Server benötigt. Meine Frage ist, ob dies eine vernünftige Methode ist und wenn ja, welche Leistungsindikatoren würden Sie überwachen, um die tatsächlich verwendete Speichermenge anzugeben?
Ich spreche hier speziell vom Speicher, da mich der Unterschied zwischen Working Set, Private Bytes, Committed, Shared, Virtual und allen anderen Speicherbegriffen verwirrt. Ich denke, ich kann es schaffen, CPU, E / A und Netzwerk selbst zu überwachen. Die andere Sache, die mir aufgefallen ist, ist, dass der .Net-Cache seine Speichernutzung abhängig von der Verfügbarkeit anpasst, wodurch das Erkennen eines Trends schwer zu erkennen ist.