Wie viel VPS-RAM würde ich benötigen, um Wordpress, Apache, SVN & MySQL auszuführen?


20

Hat jemand einen Überblick darüber, wie viel VPS-RAM (ohne Burstable) ich für Apache mit WordPress und Subversion sowie für die MySQL-Instanz benötigen würde?

Apache würde ein paar Sites und SSL hosten. MySQL hätte nur die Wordpress-Datenbank. Diese Websites sind verkehrsarm, weniger als 1k Zugriffe pro Tag.

Antworten:


19

Bedenken Sie, dass jeder Apache-Worker ungefähr 20-25MB verbraucht. Wenn Ihre 1k-Treffer also innerhalb von 8 Stunden pro Tag gleichmäßig verteilt sind, können Sie sich vorstellen, nur 0,03 Anfragen pro Sekunde zu bearbeiten.

Angenommen, Sie haben Ihren gesamten Datenverkehr in nur 1 Stunde am Tag konzentriert (das ist natürlich nicht der Fall), sollten Sie ungefähr 0,28 Anfragen pro Sekunde bearbeiten müssen.

Ein weiteres Problem ist, wie viel Speicher Sie DB haben, es ist jedoch einfach zu wissen, und es ist ziemlich fixe Kosten.

Im schlimmsten Fall müssen Sie die gesamte DB übertragen (oh mein Gott !, refactor Sie SQL in diesem Fall! :)) .. also verdoppeln Sie die vorherige Nummer ..

Die kurze Antwort ist (IMHO) 128MB wird reichlich ausreichen. Ihr Server ist im Leerlauf und der Speicher bleibt bei dem von Ihnen erwarteten Datenverkehr für lange Zeit frei.

Ich habe seit 3 ​​Jahren 20 Domains in einem VPS mit 256 MB, die sind ok ... und die Gesamthits liegen bei 1500-2000 ...

OK, Speicher ist heutzutage billig, aber Leute ... ist dir bewusst, wie viel ein Gigabyte ist?

PS: Ich spreche natürlich von einem Linux-System, nicht davon, dass das Betriebssystem nur 4 GB für die GUI verbraucht :)


13

Für die von Ihnen beschriebene verkehrsarme Nutzung sollte ein kleiner Plan (256 MB - 384 MB) in Ordnung sein. Bei der Installation von Apache und MySQL wird in den Standardkonfigurationen davon ausgegangen, dass mehr RAM zur Verfügung steht, was zu Problemen führen kann. Verwenden Sie Folgendes als guten Ausgangspunkt und passen Sie es nach Bedarf an:

In Ihrer Apache 2-Konfigurationsdatei (normalerweise unter /etc/apache2/apache2.conf oder /etc/apache2/httpd.conf zu finden):

StartServers 1
MinSpareServers 3
MaxSpareServers 6
ServerLimit 24
MaxClients 24
MaxRequestsPerChild 3000

In Ihrer MySQL-Konfigurationsdatei (normalerweise in /etc/mysql/my.cnf zu finden):

key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 64K
table_cache = 4
sort_buffer = 64K
net_buffer_length = 2K

Wenn Sie keine InnoDB-Tabellen verwenden, sollten Sie die InnoDB-Unterstützung deaktivieren, indem Sie die folgende Zeile hinzufügen:

skip-innodb

Ich habe mehrere dieser Zeilen in erwähnt apache2.conf. sie alle ändern? sie sind beschriftet: prefork MPM, worker MPM,event MPM
Vsync

2

Ich habe Probleme mit, die Mine bei 512 MB RAM , bis ich auf FastCGI geschaltet. Dadurch hat sich die Leistung erheblich verbessert. Bis dahin waren 30 MB frei (Cache natürlich nicht mitgerechnet), und am Ende waren über 100 MB frei.

Ihr Kilometerstand kann natürlich abhängig vom Verkehr auf Ihrer Website variieren. Und sobald der Verkehr anfängt aufzutauchen, können Sie zu Nginx wechseln.

Um mir etwas Komfort zu verschaffen, habe ich auf 1 GB aufgestockt.

Übrigens, ich werde auf prgmr.com gehostet und ich habe noch niemanden gesehen, der seine Preise berührt hat.


1
Vielen Dank für die prgmr.com, ich liebe den Slogan "Wir gehen nicht davon aus, dass Sie dumm sind." :-)
Kyle Brandt

Ja, das, zusammen mit der Tatsache, dass Luke LOPSA-Mitgliedern Rabatte auf das Low-End-Zeug gibt, ist der Grund, warum ich mit ihnen ging
Matt Simmons

Ich weiß, es ist zu alt, aber jetzt denke ich, in Digitalocean können die Leute sagen, dass niemand sie schlagen kann :)
Ali

1

Ich verwende ein ähnliches Setup auf einem VPS mit 256 MB RAM, benutze aber lighttpd anstelle von Apache. Ich habe zuerst Apache ausprobiert, aber es war zu viel für die 256 MB VPS. Wenn Sie Apache verwenden möchten, können Sie nach eigenen Angaben mit 512 MB RAM auskommen.

Je nachdem, wen Sie für Ihr VPS-Hosting verwenden, können Sie mit einem kleineren VPS beginnen und bei Bedarf die Größe erhöhen, ohne den Server neu konfigurieren zu müssen.


0

Sie sollten mit 1 GB gut zurechtkommen, aber wenn möglich mit 2 GB. Dies ist ein wichtiger Leistungsschritt für die meisten modernen Betriebssysteme.


1
1 GB wäre ein gewaltiger Over- Kill für 1.000 Treffer pro Tag.
Ceejayoz

Sie gehen davon aus, dass er Linux ausführt. Was ist, wenn er Windows 2008 64-Bit ausführen möchte?
Chopper3

Beachten Sie, dass dies für einen Server gilt, auf dem Apache, MySQL und PHP ausgeführt werden. Insbesondere für Apache würde ich keinen Windows-Server verwenden wollen.
Thomasrutter

0

Ich verwende nginx + php-fastcgi anstelle von Apache, aber mit einer sehr ähnlichen Anwendungslast. Ich verwende svn + ssh für meinen Subversion-Zugriff, daher wird kein svnserve-Prozess ausgeführt, außer wenn ich auf das Repository zugreife. Dies alles läuft auf Ubuntu 8 LTS.

Im Moment arbeite ich mit 174 MB (256 MB) und die Website reagiert recht schnell (durchschnittliche Antwortzeit von 500 ms für Wordpress-Aufrufe).

             total       used       free     shared    buffers     cached
Mem:           256        252          3          0         22         56
-/+ buffers/cache:        174         81
Swap:          511         12        499

Ich würde empfehlen, einen leichtgewichtigen Frontend-Webserver wie nginx oder lighttpd anstelle von Apache + mod_php zu verwenden. Sogar Apache + mod_fastcgi als Proxy für PHP-Fastcgi würde weniger Speicher benötigen.

Wenn Sie die Apache-Route hinuntergehen, sagen Sie mir, dass 512 MB wahrscheinlich den Trick machen würden. 1 oder 2 GB Arbeitsspeicher scheinen ein erheblicher Overkill zu sein, insbesondere angesichts der Tatsache, dass die meisten VPS-Anbieter ihre Kosten erhöhen, wenn Sie größere Konfigurationen verwenden.


0

Ich habe eine Weile damit zu kämpfen.

Die Einstellung von AlbertT hat hervorragend funktioniert. Die Mysql-Einstellungen haben einen CLEAR-Unterschied gemacht und die Website-Browser sind jetzt großartig. http://laterboltz.com

In Ihrer MySQL-Konfigurationsdatei (normalerweise in /etc/mysql/my.cnf zu finden):

key_buffer = 16 KB max_allowed_packet = 1 MB thread_stack = 64 KB table_cache = 4 sort_buffer = 64 KB net_buffer_length = 2 KB

Wenn Sie keine InnoDB-Tabellen verwenden, sollten Sie die InnoDB-Unterstützung deaktivieren, indem Sie die folgende Zeile hinzufügen:

überspringen-innodb

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.