Was scheint das Problem zu sein? Langsamer Server

“Der Server war den ganzen Tag langsam. Beheben Sie das Problem.”

Früher oder später passiert es jedem. Vielleicht hat die neue Marketingkampagne Ihre Serverlast verdoppelt. Vielleicht ist eine neue Anwendung anspruchsvoller als Sie gedacht haben. Aus irgendeinem Grund ist der Server zu langsam und Sie müssen ihn reparieren.

Aber warten Sie eine Minute – bevor Sie Ihren Lieferanten anrufen, ein dreistündiges Engineering-Meeting abhalten oder das Internet nach Tipps zur Optimierung durchsuchen, nehmen Sie sich Zeit, um den Server zu überwachen, wenn er langsam ist. Sie sollten sehen können, wo der Engpass liegt: CPU, Speicher, Festplatte oder Netzwerk. Wenn Sie dies von Anfang an wissen, ist es einfacher, eine Lösung zu finden, und Sie verschwenden weniger Zeit damit, Engpässe zu suchen, die nicht vorhanden sind.

Der erste Schritt besteht darin, herauszufinden, wann der Server langsamer wird. Es macht keinen Sinn, nach einem Leck zu suchen, es sei denn, es regnet. Server neigen dazu, Spitzenlasten täglich zu sehen: Es gibt morgens viel Last, da sich alle zum ersten Mal anmelden, und nachmittags oder am frühen Abend eine weitere Spitzenlast. Andere Faktoren können dieses Muster jedoch beeinträchtigen: Möglicherweise wird Ihre Verlangsamung stattdessen durch einen monatlichen Bericht verursacht. Es kann ein Muster in den Benutzerbeschwerden geben, oder der Server ist immer langsam.

Den Engpass finden

Wenn Sie herausgefunden haben, wann der Server überwacht werden soll, sehen Sie sich jeweils ein Subsystem an. Beginnen wir damit, das Netzwerk auszuschließen.

Wenn sich Ihr Server im Internet befindet, haben Sie wahrscheinlich eine Pipe mit begrenzter Bandbreite von Ihrem Internetdienstanbieter oder eine gemessene Bandbreite von einer Webhosting-Umgebung. In jedem Fall sollten sie Ihnen eine Webseite geben, auf der Ihr Bandbreitenverbrauch für den letzten Tag, die vergangene Woche, den letzten Monat und das vergangene Jahr angezeigt wird. Werfen Sie einen Blick darauf und suchen Sie nach Trends und Spitzenwerten.

Stimmen Ihre Bandbreitenspitzen mit den Verlangsamungen Ihres Servers überein? Verwenden Sie regelmäßig Ihre gesamte verfügbare Bandbreite?

Wenn Ihr Server nur mit 10BaseT- und Fast Ethernet-Clients kommuniziert, ist es weniger wahrscheinlich, dass das Netzwerk einen Engpass darstellt. Es lohnt sich jedoch, einen Blick auf Ihre Netzwerkauslastung zu werfen – insbesondere, wenn Sie Ihre Leistungsprobleme nicht auf die CPU, den Speicher oder die Festplatte übertragen können.

Das Überprüfen der Speichernutzung ist ziemlich einfach. Verwenden Sie unter Windows NT oder 2000 Strg-Alt-Löschen, um den Task-Manager aufzurufen. Führen Sie unter Solaris oder Linux das Top-Programm aus (die Datei / proc / meminfo von Linux enthält auch nützliche Informationen).

Wie viel physisches Gedächtnis haben Sie und wie viel wird verwendet? Beachten Sie, dass die Menge an freiem Speicher unter Linux etwas trügerisch sein kann, da das System tendenziell den gesamten verfügbaren freien Speicher für das Caching verwendet: Es ist zuverlässiger, sich / proc / meminfo anzusehen, um die genaue Menge an verwendetem RAM anzuzeigen Zwischenspeicher.

Wenn der gesamte Speicher Ihres Servers in Spitzenzeiten verwendet wird, verbringt Ihr Server möglicherweise einen Großteil seiner Zeit damit, Daten zwischen Speicher und Swap (auch als virtueller Speicher bezeichnet) zu verschieben. Das Top-Programm zeigt die Swap-Zeit unter Solaris an, und unter Linux können Sie nach dem Programm kswapd suchen. Wenn viel Zeit für den Austausch aufgewendet wird, ist der Speicher wahrscheinlich Ihr Engpass.

Während wir uns im Task-Manager oder oben befinden, werfen wir einen Blick auf die CPU-Auslastung. Hat der Server Leerlaufzeit? Eine Leerlaufzeit von 10% oder weniger weist im Allgemeinen auf eine CPU-gebundene Anwendung hin. Wenn Sie nach oben schauen, notieren Sie sich auch den Lastdurchschnitt. Idealerweise sollte der Lastdurchschnitt kleiner oder gleich der Anzahl der CPUs sein.

Beachten Sie, dass beide Tools die Systemzeit (oder den Kernel) und die Benutzerzeit angeben. Dies ist wichtig: Ein Server, der seine gesamte Zeit mit Benutzeraufgaben verbringt, arbeitet für Benutzeranwendungen (wie Webserver, Java-Anwendungen, Mail-Engines usw.). Die für System- oder Kernelaufgaben aufgewendete Zeit ist eher Netzwerk-E / A, Festplatten-E / A, virtueller Speicher oder andere Kernserveraktivitäten. Eine CPU, die zu 100% mit Benutzeraufgaben beschäftigt ist, kann normalerweise durch Anwendungsoptimierung oder Codeänderungen unterstützt werden. Eine CPU, die zu 100% mit Systemaufgaben beschäftigt ist, kann von der Systemoptimierung profitieren oder auf einen Speicher-, Festplatten- oder Netzwerkengpass hinweisen.

Eine Möglichkeit, um festzustellen, ob Ihre Festplatte der Engpass ist, besteht darin, vor dem Server zu stehen, wenn dieser langsam läuft. Wenn die Festplattenanzeige wie der Vegas Strip aussieht oder Sie das Laufwerk ständig suchen hören, sind Sie möglicherweise an die Festplatte gebunden.

Für eine genauere Betrachtung können Sie den Windows Performance Monitor oder das Unix iostat-Programm verwenden. Beobachten Sie mit dem Systemmonitor das Perzentil “Festplatte belegt” und prüfen Sie, ob es 50% überschreitet. Probieren Sie mit iostat den Parameter -x aus und suchen Sie nach Zeiten mit hoher Auslastung. Zugriffszeiten von mehr als 50 ms zeigen auch an, dass die Festplatte zu langsam ist.

Behebung des Engpasses

Nachdem Sie nun wissen, welches Subsystem der Engpass ist, können Sie intelligentere Entscheidungen zur Behebung des Engpasses treffen. Speicherbeschränkungen können oft durch den Kauf von mehr RAM festgelegt werden, und RAM ist billig.

Sie können auch mehr Netzwerkbandbreite kaufen, obwohl dies teuer wird. Wenn der Engpass Ihre Ethernet-Schnittstelle ist, können Sie möglicherweise einen weiteren Port hinzufügen oder auf einen schnelleren aktualisieren.

Ein CPU-gebundenes System ist nicht einfach zu reparieren. Selbst wenn Sie physisch eine zweite, dritte oder vierte CPU hinzufügen können, zeigt Ihre Anwendung nach der zweiten CPU wahrscheinlich keinen großen Nutzen. Dies liegt daran, dass viele Anwendungen schwerwiegende Probleme mit Sperrenkonflikten haben. Durch das Hinzufügen von CPUs wird ein CPU-gebundener Server lediglich zu einem sperrengebundenen Server.

Es gibt Ausnahmen von dieser Regel: SSL ist eine davon, und gut geschriebene statische Webserver sind eine andere. Verlassen Sie sich jedoch nicht darauf, dass Ihr Server zusätzliche CPUs voll ausnutzt. Möglicherweise erhalten Sie einen 75% igen Boost von der zweiten CPU und eine darüber hinausgehende Verringerung der Rendite.

Wenn Ihr System festplattengebunden ist, fragen Sie sich, warum dies möglicherweise der Fall ist. Ein Webserver mit statischem Inhalt sollte die meisten seiner Dokumente zwischenspeichern, sodass nur in das Zugriffsprotokoll geschrieben wird (stellen Sie sicher, dass Sie ein gepuffertes Zugriffsprotokoll verwenden). Wenn auf Ihrem Server auch eine lokale Datenbank, E-Mail-Konten oder andere Anwendungen ausgeführt werden, die viele Lese- und Schreibvorgänge ausführen, müssen Sie wahrscheinlich Ihre Festplattenaktivität profilieren und auf mehrere physische Festplatten (und möglicherweise mehrere Festplattenbusse) aufteilen.

Systeme, die festplatten- oder CPU-gebunden sind, können ebenfalls Kandidaten für den Lastenausgleich sein. Dies bedeutet im Wesentlichen, dass zwei Server parallel ausgeführt werden und jeder Server die Hälfte der Benutzeranforderungen bearbeiten muss. Der Lastausgleich ist ein komplexes Thema: Ich werde in einem anderen Artikel mehr darüber sprechen.

Verweise

Alle Linux-Distributionen werden mit top geliefert. Das Handbuch für top ist auch online unter http://man-pages.net/linux/man1/top.1.html verfügbar.

Abhängig von der Version enthält Solaris möglicherweise kein Top. Sie können es jederzeit von herunterladen http://sunfreeware.com/.

Microsoft stellt Task Manager und Performance Manager mit Windows NT und 2000 zur Verfügung. Unterstützung finden Sie unter http://support.microsoft.com/.

Similar Posts

Leave a Reply