Ich habe eine videobasierte Website. Sie wird langsam, wenn etwa 1.000 Benutzer gleichzeitig ein Video ansehen/herunterladen.
Ich versuche, es zu debuggen, um herauszufinden, welche Ressource schwach ist, um sie zu erhöhen. Ich habe htop
einen Befehl ausgeführt, um die Ressourcennutzung anzuzeigen, aber der Server ist sowohl für CPU als auch RAM zu über 50 % frei, wenn das Laden der Seite zu langsam ist (in diesem Fall dauert das Laden einer einfachen Webseite über 40 Sekunden).
Deshalb dachte ich, es liege wahrscheinlich an einem Bandbreitenproblem. Jetzt möchte ich nur noch wissen, was passiert, wenn eine Videodatei von einem Client gestreamt/heruntergeladen wird?
Beachten Sie, dass ich alles auf demselben Server habe (Backend/Frontend/Datenbanken/Videodateien).
Antwort1
Ihre Logik ist falsch.
Wenn CPU und RAM noch in Ordnung sind, gibt es ZWEI mögliche einschränkende Probleme.
- Bandbreite
- IO
Und beides lässt sich vom Server aus ganz einfach überprüfen. Tun Sie es.
Jetzt möchte ich nur noch wissen, was passiert, wenn ein Client eine Videodatei streamt/herunterlädt?
Hängt davon ab, was Sie mit Streaming meinen, aber im Wesentlichen werden Daten von der Quelle abgerufen und an das Ziel weitergeleitet. Das ist im Wesentlichen kein CPU-Problem, da von vornherein nicht viel CPU verwendet wird. Sofern Sie nicht genügend Speicher für die Zwischenspeicherung (im RAM) konfiguriert und somit verwendet haben, kommen die Daten aus dem Speicher, egal welchen Sie haben. Im Allgemeinen ist dies der Bereich, von dem die Leute keine Ahnung haben und der ihnen egal ist – und oft der Engpass.
In diesem Fall dauert das Laden einer einfachen Webseite über 40 Sekunden
Das würde bedeuten, dass Sie entweder ein BRUTALES Netzwerklimit oder ein IO-Limit erreicht haben. Und da Sie lieber gar nicht über IO sprechen, wette ich, dass Ihr IO auf lächerliche Weise überlastet ist. Sofern Sie keinen SSD-Speicher verwenden – häufig in einer RAID-Konfiguration – ist Ihr IO-Budget für ein Netzwerk mit hoher Bandbreite lächerlich niedrig – genug, um es mit einem Stream zu sättigen, aber bei weitem nicht genug, wenn Ihre Festplattenköpfe bewegt werden müssen.