%20das%20Laden%20der%20Seite%20verlangsamt.png)
Wir haben ein kleines Netzwerk (vielleicht 15 Benutzer während der Hauptgeschäftszeiten, ungefähr 30 Geräte), das die Internetverbindung und die Telefonleitungen verwaltet.
Der Hauptzweck des Netzwerks besteht darin, dass Benutzer auf die webbasierte, extern gehostete Datenbankschnittstelle zugreifen können, mit der sie das Geschäft verwalten (Kunden, Verkäufe, Rechnungen usw.). Diese webbasierte Datenbankschnittstelle ist eine PHP/MySQL-Anwendung, die in den letzten anderthalb Jahren entwickelt wurde. Als primärer (wenn nicht einziger) Programmierer habe ich Zugriff auf alles über diese Anwendung und unser Netzwerk, von unserer Hosting-Lösung über den Quellcode bis hin zur Auswahl der Technologien.
Vor einigen Monaten bemerkten wir eine wirklich starke Verlangsamung bei etwa 5 % der Klicks, die über die Datenbankschnittstelle getätigt wurden. Was ich meine ist, dass die meisten Klicks den Inhalt in ein bis zwei Sekunden liefern, aber manchmal dauert das Laden eines Klicks bis zu einer Minute.
Was mich blendet ist
- es scheint nichts mit dem Inhalt der Seite zu tun zu haben. Das wiederholte Laden derselben Seite funktioniert in 95 % der Fälle, wobei ein Klick manchmal 1000 % bis 2000 % mehr Ladezeit benötigt. Das wiederholte Laden verschiedener Seiten führt zu denselben Ergebnissen.
- die webbasierte Schnittstelle stehtkeine Verlangsamung beim Zugriff von außerhalb des Büros. das heißt, es wird nur langsamer, wenn es hinter unserem lokalen Netzwerk verwendet wird.
- andere Webseiten scheinen nicht verlangsamt zu sein, aber das Anhalten und Neuladen der Seite mit der Verzögerung funktioniert einwandfrei,was mich glauben lässt, dass es für ein paar Sekunden passiert und alle Klicks blockiert, die während dieser Zeitspanne gemacht werden, aber nicht die, die zwei Sekunden danach gemacht werden
- Die Website verwendet jQuery und jQuery-UI sowie einige andere Bibliotheken (jQuery Cookie Master, xdate). Die Verlangsamung tritt auf, wenn sie von unseren Servern oder direkt von jQuery und ajax.googleapis geladen werden.
Angesichts all dessen habe ich Netzwerkexperten konsultiert und schließlich haben wir unsere Netzwerkausrüstung geändert. Jetzt verwenden wir eine Cisco ASA-5505-Firewall und einen verwalteten Cisco Catalyst-Switch.
- zuvor haben wir festgestellt, dass Pings zu google.com manchmal eine Zeitüberschreitung aufweisen oder bis zu 13.000 ms zum Laden benötigen, während wir normalerweise einen Ping von 20-30 ms haben
- Wir haben außerdem bei unserem ISP nachgefragt, dass wir bis zu800 GBUploads pro Monat! Wir verwalten Fotos und große Dateien, aber 800 GB sind weit von einer normalen Nutzung entfernt. Eine Zeit lang dachten wir, dass hoher Upload-Verkehr im Netzwerk das Laden von Ressourcen auf der Seite verhindern könnte. Wir konnten anhand der Historie unseres ISPs sehen, dass die Verlangsamung und die massiven Uploads ungefähr zur gleichen Zeit auftraten. Ich kann nicht zweifelsfrei sagen, was zuerst passierte, es scheint, als ob beides in derselben Woche passierte.
- wir hatten offensichtlich zahlreiche Paketverlustfehler
- Ich kann nicht mit Sicherheit sagen, welche Protokolle von der Verlangsamung betroffen sind oder nicht. Ich habe keinen direkten Download-Fehler erlebt und habe auch keine Beschwerden von Benutzern erhalten, dass ihr Download fehlgeschlagen ist, aber das Hochladen von Dateien auf FTP über NetBeans wird betroffen sein. Benutzer übertragen jedoch normalerweise
transmit
Dateien zu unseren Clients und zurück, und ich habe keine Beschwerden darüber erhalten, dass Dateien nicht richtig hochgeladen wurden oder Clients beschädigte Dateien erhalten haben.
Leider bedeutet die Tatsache, dass ich keine Beschwerden erhalten habe, nicht, dass es nicht passiert ist, da die Kommunikation mit den Benutzern in diesen Zeiten etwas angespannt ist. Ich würde sagen, die Ursache liegt am langsamen Netzwerk [Wortspiel beabsichtigt].
Als die von uns beauftragten Experten kamen, um die neuen Teile im Netzwerk zu installieren, führten sie einige Konfigurations- und Überwachungsvorgänge durch, und jetzt ist unser Ping wieder normal, und die Paketverlustfehler treten viel seltener auf, so dass wir glauben, dass es sich nur um normale Paketverluste über das Internet handelt. Soweit wir sehen können (es sind erst ein paar Tage vergangen), haben auch die gigantischen Uploads aufgehört.
Das Laden von 5 % der Klicks dauert jedoch immer noch sehr lange.
Ich habe versucht, mit der Registerkarte „Net“ von Firebug zu debuggen, um zu sehen, welcher Teil der Website langsam geladen wurde. Der Server selbst antwortet je nach Komplexität der Seite zwischen 200 und 800 ms, was in Ordnung zu sein scheint. Die meisten Bilder werden ordnungsgemäß geladen, die Bibliotheken auch, aber wenn die Verlangsamung auftritt, warten eines oder mehrere dieser Bilder oder Bibliotheken ewig, bevor sie geladen werden.Es handelt sich nicht immer um dieselbe Bibliothek oder dasselbe Bild
Ich vermute, dass beim Laden von Bildern und Bibliotheken zur Anzeige der Seite die Netzwerklast irgendwie dazu führt, dass die Ressourcen ihr Ziel nicht richtig erreichen.
wie kann ich herausfinden, was das Laden einer bestimmten Ressource (sei es ein Bild oder eine JS-Bibliothek) verhindert?
Mir fehlen die technischen Fähigkeiten, um Wireshark oder andere (aus meiner bescheidenen Sicht) fortgeschrittene Netzwerktools zu verwenden, aber ich werde es lernen, wenn es sein muss. Abgesehen davon scheint mir die Überwachung an diesem Punkt irrelevant, ich möchte nicht sehen, dass es langsam ist, ich weiß, dass es langsam ist. Ich möchte wissenWas verhindert, dass Ressourcen ihre Zielcomputer in unserem lokalen Netzwerk erreichen?.
Antwort1
Ohne tatsächlich auf Ihr(e) Netzwerk(e) zuzugreifen und eine detaillierte Diagnose mit Ihnen durchzuführen, wird die Antwort hier wahrscheinlich eher lauten: „Ich weise Sie in eine Richtung und schaue, ob es funktioniert.“
Allerdings verfolge ich bei derartigen Dingen eine Art Ansatz nach dem Prinzip von Ockhams Rasiermesser.
Du hast gesagt:
„Bei der webbasierten Schnittstelle kommt es zu keiner Verlangsamung, wenn von außerhalb des Büros darauf zugegriffen wird. Das heißt, sie wird nur dann langsamer, wenn sie hinter unserem lokalen Netzwerk verwendet wird.“
Dies hier ist, wenn es wirklich zutrifft, das Stück, auf das man sich konzentrieren sollte.
Das Problem SOLLTE dann irgendwo in diesem „lokalen Netzwerk“ liegen. Es liegt NICHT am extern gehosteten Server/der extern gehosteten Anwendung, da sonst dieselben Probleme von einem anderen Standort aus reproduziert werden könnten.
Wo also? Sie haben bereits einige Netzwerkgeräte ausgetauscht, anscheinend ohne Erfolg.
Ich schlage Ihnen Folgendes vor. Es klingt vielleicht einfach, aber arbeiten Sie sich vom äußersten Punkt Ihres Netzwerks rückwärts vor:
- Nehmen Sie einen Laptop, der NIE im lokalen LAN war, nicht Teil einer Domäne ist usw., und schließen Sie ihn direkt an den ISP des lokalen Netzwerks an. Direkt ist der Schlüssel. Schließen Sie einen Laptop direkt an das Netzwerk des ISPs an, ohne eine Firewall oder ähnliches im Spiel zu haben, und sehen Sie, welche Reaktionen/Leistung Sie dann erhalten, und vergleichen Sie es mit Ihrem externen Setup, von dem Sie wissen, dass es gut funktioniert.
- Wenn Sie bei Schritt 1 keine Probleme feststellen, verschieben Sie den Laptop eine Ebene zurück, sodass er direkt an die ASA-Firewall angeschlossen ist, und führen Sie den Test dann erneut durch die Firewall durch.
- Wenn bei Nr. 2 keine Probleme auftreten, gehen Sie eine Ebene zurück, dieses Mal hinter den verwalteten Switch.
- Wenn bei Nr. 3 keine Probleme auftreten, wissen Sie, dass es sich nicht um ein Netzwerkproblem handelt.
Und so weiter und so fort (einen Client ausprobieren, der externe „Probleme“ hat usw.), bis Sie zumindest objektiv sagen können, was/wo das Problem auftritt, auch wenn Sie nicht wissen, warum oder was es auf einer bestimmten „Ebene“ genau verursacht. Dann beginnen Sie, sich, wenn Sie so wollen, tiefer mit dieser spezifischen „Ebene“ zu befassen.
Antwort2
Sie müssen wahrscheinlich nmap (oder beispielsweise wireshark) verwenden, um das lokale Netzwerk zu überprüfen. Dies kann Ihnen dabei helfen, einen Windows-Computer zu finden, der einen Virus hat und Tausende von Spam-ARP-Anfragen sendet, oder einen Benutzer, der einen BitTorrent-Client oder etwas anderes verwendet, das Ihr lokales Netzwerk oder Ihren Internet-Upload überlasten kann.
Die andere Möglichkeit ist, dass die meisten ISPs alles andere als perfekt sind. Vielleicht haben die ISPs manchmal Probleme mit Paketverlusten oder der Upload-Stabilität. Die Installation eines Überwachungstools wie smokeping und die Überwachung eines Ziels im Internet könnte Ihnen dabei helfen, dies zu erkennen (Paketverlust, langsamer Upload, langsamer Ping) und Ihnen auch ermöglichen, zu sehen, wann dies geschieht (jedes Mal, wenn John Doe im Büro ist und seinen Computer an das Netzwerk anschließt?).