
Lassen Sie mich Ihre Meinung zu Leistungsproblemen des Terminalservers hören. Der Server hostet durchschnittlich 25 Benutzer, die nach einigen Berechnungen im Durchschnitt 600 MB Speicher verwenden, während ihre Hauptanwendungen (Webbrowser, Adobe Reader, IP-Telefonclient) laufen. Alle Benutzer befinden sich im selben LAN wie der Server. Wir erleben ständig langsame Reaktionszeiten und kurze Sitzungsabstürze. Die kombinierte CPU-Auslastung beträgt im Durchschnitt 10 %. Was mir seltsam vorkommt, ist, dass das System 29 GB physischen Speicher anzeigt, von dem 25 GB frei sind. Die Auslastung der Auslagerungsdatei beträgt etwa 50 %, durchschnittlich werden 9 GB verwendet.
Einige Server-Spezifikationen
Betriebssystem: Server 2003 32-Bit Enterprise mit /PAE-Flag RAM: 32 GB CPU: 2 x Quad Core @ 2,27 GHz Festplatte: RAID5 1,2 GB
Nachdem ich mit dem Leistungsmonitor eine grundlegende Fehlerbehebung durchgeführt habe, komme ich zu der Annahme, dass die Leistungsprobleme durch die Beschränkung des 32-Bit-Betriebssystems verursacht werden, bei der nicht auf die vollen 32 GB des physischen Speichers zugegriffen werden kann, selbst wenn das Flag /PAE verwendet wird.
Kann jemand etwas vorschlagen oder Schritte zur Fehlerbehebung, die zu einer schlüssigeren Antwort führen können?
Danke
Antwort1
PAE in Windows ist ein wenig ärgerlich, allerdings ist dies nicht dokumentiert. Obwohl das Betriebssystem nun den gesamten RAM des Systems zuweisen kann, nutzen ihn manche Anwendungen immer noch nicht.
Wenn PAE aktiviert ist, ist jeder Prozess immer noch auf die Grenzen einer 32-Bit-Umgebung (4 GB) beschränkt, es sei denn, er wurde speziell für die Verwendung von AWE
Address Windowing Extensions erstellt.
Trotz all dieser „Informationen“ … glaube ich nicht, dass dies das Problem ist, auf das Sie stoßen. (Haben Sie Prozesse, die mehr als 4 GB RAM benötigen?) 9 GB Paging sind für mich ziemlich übertrieben. Das gilt doppelt, wenn man bedenkt, dass dies ein Terminalserver ist. So viel Disk-IO ist schlecht für die Leistung. Wie mfinni sagte, ist es wahrscheinlicher, dass Sie Probleme mit Ihrem Disk-IO haben als mit Speicherproblemen. Ich habe genau dieselben Symptome gesehen, die Sie beschreiben, nur um herauszufinden, dass meine Festplatten tatsächlich mit der Arbeitslast nicht Schritt halten konnten. Es gibt eine lange Liste von Gründen für übermäßigen Disk-IO und ebenso viele Lösungen für das Problem.
In meinem Fall habe ich festgestellt, dass der Druckerspooler-Dienst RIESIGE Mengen an RAM zuweist (die größtenteils in die Auslagerungsdatei übertragen wurden). Es stellt sich heraus, dass es im Druckerspooler ein seit langem bestehendes Problem gibt, wenn Drucker erstellt/gelöscht werden.
(Wenn Drucker erstellt werden, wird dem Treiber Speicher zugewiesen. Wenn sie gelöscht werden, wird der Speicher nicht freigegeben. Das Ergebnis auf einem Terminalserver, bei dem sich Benutzer den ganzen Tag lang an- und abmelden, ist ein Druckspoolerdienst mit über 2 GB zugewiesenem RAM ... und das meiste davon wird in die Auslagerungsdatei verschoben.) Verwenden Sie wenn möglich kein RDP zum Freigeben der Drucker.
Es gibt noch viele weitere versteckte Fallstricke, wenn es um Terminaldienste und Speicher geht.
Antwort2
Möglicherweise liegt es daran, dass nicht genügend Speicher für Benutzersitzungen vorhanden ist. Erklären Sie bitte, was Sie in Perfmon getan haben, das Sie zu dieser Schlussfolgerung geführt hat.
bearbeiten - OK, ich würde mir wegen der Auslagerungsdatei nicht so viele Gedanken machen. Sie unterscheidet sich von der Funktionsweise von VM auf alten Unix-Systemen; Windows lagert Dinge aggressiver aus, um mehr physischen Speicher freizuhalten.Wie kann die Nutzungsmetrik für Auslagerungsdateien auf Null gebracht werden?Wenn Sie sich wirklich Sorgen um das Paging machen, sehen Sie sich die E/A-Leserate der Seite an. Das ist die Rate der schwerwiegenden Fehler.
Ein zu häufig übersehenes Problem bei interaktiven Terminalservern ist die Festplatten-E/A, die ernsthafte Probleme bei der Benutzererfahrung verursacht, ohne dass dies sofort anhand der Leistungsdaten auffällt. Verfügt Ihre RAID-Karte über ein BBWC und verwenden Sie Schreibcache? Wenn nicht, treten mit ziemlicher Sicherheit Probleme auf. Überprüfen Sie mithilfe von PerfMon die Festplattenwarteschlangenlänge auf dem RAID-Volume. Als Faustregel (soweit ich mich erinnere) gilt, dass eine Zahl, die höher ist als die Anzahl der physischen Spindeln im Array, schlecht ist.
Antwort3
Windows 2003 x86 hat in Bezug auf den Kernelspeicher definitiv Leistungseinbußen. Standardmäßig hat es niedrigere maximale Auslagerungs- und Nichtauslagerungspoolwerte als Windows XP. Wir haben diese beiden Werte immer maximal ausgenutzt, aber selbst damit ist es ziemlich einfach, den Kernelspeicher zu erschöpfen.
Mehr Informationen hier: https://serverfault.com/a/389299/20701
29 GB sind auf einem x86-Terminalserver wirklich verschwendet.
Zu Ihrer Information: Ich würde das Netzwerk nicht ausschließen, auch wenn sie sich im selben LAN-Segment befinden.