Als die Funktionalität der Website sowie der Datenverkehr zunahmen, gelang es mir, die Fähigkeiten des aktuellen VDS-Servers zu testen, den ich derzeit verwende. Ich möchte meine Erfahrungen mit VDS schildern, sowie zeigen, welche Belastung dieser VDS unter bestimmten Bedingungen und Projektgrößen aushält.
Ich habe mich entschieden, jetzt darüber zu sprechen, weil ich vor einer Woche die Kapazität des Servers durch den Kauf von zusätzlichem Speicher erweitert habe.
Alle weiteren Ausführungen sind subjektiv, aber ich hoffe, dass Sie sich ein Gesamtbild machen können, dank dem Anfänger navigieren können, welche Art von Server sie für ihre Bedürfnisse benötigen, und dies wird die Auswahl erleichtern Server.
Serverkonfiguration
Anfangs arbeitete die Site an der minimalen Konfiguration, die ich übernehmen konnte. Die Kosten des Tarifs betragen 260 Rubel / Monat. Übrigens hat mein Anbieter auch einen günstigeren Tarif (190 Rubel / Monat), aber er ist fest, während mein aktueller Tarif es mir ermöglicht, die Konfiguration zu konfigurieren, die ich benötige, und die Serverkapazität auf eine zu erhöhen, die bei festen Tarifen nicht bereitgestellt wird.
Aufbau:
- Prozessorkerne: 2 x 2,7 GHz
- Arbeitsspeicher: 512 MB
- SSD: 5 GB
- Betriebssystem: Ubuntu 16.04
- Internetzugang: 100 Mbit/s
Die gesamte Serverkonfiguration erfolgte ausschließlich über die Konsole, ohne Hilfstools wie den ISP Manager, der auch einen Teil des Arbeitsspeichers aufnimmt, sodass mir dieser bescheidene Arbeitsspeicher lange Zeit ausreichte
Django-Projekt
Das Projekt selbst ist bereits stark gewachsen, und es gibt viele Datenmodelle, die für Teile der Website verantwortlich sind, z
- Artikel und Kommentare
- Forumsthemen und Forumsantworten
- Tests, Fragen, Antworten
- Private Nachrichten
- Lesezeichen
- Vorlieben und Abneigungen
- usw.
Um den vollen Umfang zu verstehen, werde ich die aktuelle Struktur der Modelle der Site-Daten angeben.
Das heißt, die Seite ist schon etwas mehr als ein gewöhnlicher Blog, und ich bemühe mich, sie im Rahmen meiner Freizeit weiterzuentwickeln.
Als die Site wuchs und der Code zunahm, wurde die Abhängigkeit vom Anstieg des Speicherverbrauchs deutlich nachvollzogen. Übrigens ... das erzwungene Strecken der Arme des Programmierers durch einige Methoden mittelalterlicher Folter kann den Speicherverbrauch effektiv reduzieren. Im Ernst, in einigen Fällen reicht es aus, den Code des Projekts zu durchsuchen, wiederholte Codeteile zu finden und sie in separate Methoden oder Unterprojekte zu unterteilen, innerhalb von Django sind dies Anwendungen (die Django-Site-Struktur besteht aus Anwendungen). Daher ist regelmäßiges Refactoring für mich zu einem festen Bestandteil der Website-Entwicklung geworden.
Wenn man bedenkt, dass es in dieser Site-Konfiguration drei aktive gunicorn -Instanzen sowie weitere Sellerie-Instanzen für Benachrichtigungen gab, stieg der Speicherverbrauch bei einem solchen Projekt um As Infolgedessen wurden bis zu 450 MB gespeichert, und einige der Informationen wurden in der Swap-Partition gespeichert, unter der 1 GB der Festplatte zugewiesen wurden. Als Ergebnis betrug die Antwort der Website laut Alexa Traffic Rank 1,089 Sekunden. Nach dem Erhöhen des Speichers auf 1 GB und einigen Optimierungen der Basisvorlage verringerte sich die Antwort auf 0,857 Sekunden. Ich habe vor, an der Direktheit meiner Hände und der Reinheit des Codes zu arbeiten und trotzdem das Zwischenspeichern von Vorlagen zu aktivieren.
Website-Traffic
Im Dezember 2017 stieg der stabile Site-Traffic auf 1050-1150 Unique Visitors pro Tag, was sehr ermutigend ist, und ein neues Ziel für mich war (neben der Entwicklung der Funktionalität), die Site auf 2000 Unique Visitors zu steigern.
Der maximale Site-Traffic wurde am 14. Dezember 2017 aufgezeichnet und betrug 1169 Unique Visitors pro Tag.
Gleichzeitig ist die Belastung des Prozessors jedoch nicht so groß, wie Sie vielleicht denken. Die durchschnittliche tägliche Prozessorlast in dieser Konfiguration beträgt beispielsweise 7 Prozent.
Das heißt, es besteht keine grundsätzliche Notwendigkeit, die Anzahl der Prozessorkerne in dieser Serverkonfiguration zu erhöhen.
Ergebnisse
Tatsächlich kann Django auf der Mindestkonfiguration des VDS-Servers meiner subjektiven Meinung nach auf dem Niveau von 4000-5000 einzelnen Besuchern mit bescheidenerer Funktionalität (etwa dreimal weniger) arbeiten. Was für einen 5-Dollar-Server ziemlich gut ist.
Im Moment habe ich nur die Menge an RAM erhöht, die ich benötige.
Wenn sich jemand für den Hoster interessiert, bei dem ich VDS miete, dann ist das die Firma TIMEWEB , die ich empfehle. Während der Nutzung des VDS-Servers gab es keinen einzigen Ausfall, das Unternehmen warnt im Voraus vor allen vorbeugenden Arbeiten und führt sie nachts nach Moskauer Zeit durch.
Was ich definitiv nicht empfehlen würde, ist der Kauf von Shared Hosting. Für Django ist das Geld- und Zeitverschwendung. Früher oder später kann es sein, dass Sie anfangen zu wachsen und am Ende einen VDS benötigen, und dann gibt es Migrationsprobleme aufgrund von Unterschieden in der Verzeichnisstruktur usw.
Für Django empfehle ich Timeweb-Hoster VDS-Server .