ww
Well-Known Member
Hallo zusammen, ein kleiner Erfahrungsbericht:
Über mehrere Ecken bin ich gebeten worden, als Co-Admin ein vBulletin-Forum, das bei Hetzner auf einer SuSE-Box lief, zu betreuen. Es handelt sich dabei um das zweitgrößtes Politikforum in Deutschland, zu erreichen unter www.politikforen.de
Die Performance war seinerzeit nicht optimal; bei etwas 200 Usern gleichzeitig und einem Load > 4 wurde der Server ziemlich langsam und fing an zu swappen. Der Load ging zu Stoßzeiten auch auf 15 hoch und dann war Schicht mit der Erreichbarkeit. Außerdem schien das Forum gelegentlichen Angriffen, die über den üblichen ssh-Schmutz hinausgehen, ausgesetzt zu sein.
Seinerzeitige Hardware: AMD XP 3000+, 1GB RAM; HD 40GB
Ich wurde dann irgendwann beauftragt, zukünftig das Forum zu hosten und habe ein entsprechendes System aufgesetzt.
Zur Hardware: Da es ein 1HE-System aus Standardkomponenten sein sollte und eine gute thermische Stabilität erforderlich war, wurde bei der CPU ein AMD XP 1800+ mit Thoroughbredkern gewählt. Bei guter Performance verbraucht der Chip unter Vollast nur 51 Watt.
Der Arbeitsspeicher wurde zunächst bei 1GB belassen und zwei Samsung-Platten mit je 80GB zu einem RAID1 (gmirror) zusammengefaßt.
Das Setup sollte vor allem schlank und sicher ausfallen.
Folgende Ports wurden also installiert:
cvsup-without-mirror
portupgrade
mysql41-server
apache2
php5
php5-extensions
Dazu noch ein paar kleine Tools wie portaudit, chkrootkit, bsdsar, freecolor usw.
Die Box hat zwei Intel NICs (fxp), eine für ein internes Netz (Backup und privater cvsup-Server), die andere für den Verkehr nach draußen.
Als Paketfilter wurde "pf" gewählt und relativ restriktiv konfiguriert. Außer Port 80 und 22 ist alles dicht. Ein Verlegen des ssh-Ports, um Scriptkiddies zu stoppen, wird für die Zukunft erwogen. Apache, PHP und MySQL wurden mit kurzem Timeout konfiguriert, um die Empfindlichkeit gegen DoS-Attacken etwas zu verringen. Das DB-Backup (ca. 1GB, bzipped ca. 250MB) wird nachts per cronjob erledigt.
Resultat:
Die MySQL-Laufzeit ist wegen der schwächeren CPU um etwa 20% langsamer, was aber keinen merklichen Unterschied ausmacht. Da für MySQL 512MB RAM reserviert sind, werden viele Queries direkt aus dem Arbeitsspeicher geholt. Unter Last ist die Performance deutlich besser als zuvor. Die besagten 200 User verursachen jetzt einen Load von etwa 1.5, einen CPU-Verbrauch von ca. 50% sowie etwa 300MB RAM-Nutzung. Kein Swappen weit und breit. Traffic wird etwa 100GB monatlich verursacht.
Die Performanceverbesserung liegt wohl hauptsächlich an der sehr schlanken Konfiguration des Servers (kein webmin, keine GUIs). Nicht auszuschließen, daß auch die OS-Wahl eine kleine Rolle gespielt hat.
Die Grenze für die o.g. Konfiguration dürfte wohl bei etwa 300 gleichzeitig zugreifenden Usern sein. Oberhalb dieses Wertes käme eine Trennung von Apache und der DB infrage. Bemerkenswert sind Empfehlungen, für ein Forum dieses Kalibers Dual-CPUs, schnelle SCSI-Platten und mindestens 2GB RAM einzuplanen. Das ist definitiv nicht erforderlich.
Gruß, ww
Über mehrere Ecken bin ich gebeten worden, als Co-Admin ein vBulletin-Forum, das bei Hetzner auf einer SuSE-Box lief, zu betreuen. Es handelt sich dabei um das zweitgrößtes Politikforum in Deutschland, zu erreichen unter www.politikforen.de
Die Performance war seinerzeit nicht optimal; bei etwas 200 Usern gleichzeitig und einem Load > 4 wurde der Server ziemlich langsam und fing an zu swappen. Der Load ging zu Stoßzeiten auch auf 15 hoch und dann war Schicht mit der Erreichbarkeit. Außerdem schien das Forum gelegentlichen Angriffen, die über den üblichen ssh-Schmutz hinausgehen, ausgesetzt zu sein.
Seinerzeitige Hardware: AMD XP 3000+, 1GB RAM; HD 40GB
Ich wurde dann irgendwann beauftragt, zukünftig das Forum zu hosten und habe ein entsprechendes System aufgesetzt.
Zur Hardware: Da es ein 1HE-System aus Standardkomponenten sein sollte und eine gute thermische Stabilität erforderlich war, wurde bei der CPU ein AMD XP 1800+ mit Thoroughbredkern gewählt. Bei guter Performance verbraucht der Chip unter Vollast nur 51 Watt.
Der Arbeitsspeicher wurde zunächst bei 1GB belassen und zwei Samsung-Platten mit je 80GB zu einem RAID1 (gmirror) zusammengefaßt.
Das Setup sollte vor allem schlank und sicher ausfallen.
Folgende Ports wurden also installiert:
cvsup-without-mirror
portupgrade
mysql41-server
apache2
php5
php5-extensions
Dazu noch ein paar kleine Tools wie portaudit, chkrootkit, bsdsar, freecolor usw.
Die Box hat zwei Intel NICs (fxp), eine für ein internes Netz (Backup und privater cvsup-Server), die andere für den Verkehr nach draußen.
Als Paketfilter wurde "pf" gewählt und relativ restriktiv konfiguriert. Außer Port 80 und 22 ist alles dicht. Ein Verlegen des ssh-Ports, um Scriptkiddies zu stoppen, wird für die Zukunft erwogen. Apache, PHP und MySQL wurden mit kurzem Timeout konfiguriert, um die Empfindlichkeit gegen DoS-Attacken etwas zu verringen. Das DB-Backup (ca. 1GB, bzipped ca. 250MB) wird nachts per cronjob erledigt.
Resultat:
Die MySQL-Laufzeit ist wegen der schwächeren CPU um etwa 20% langsamer, was aber keinen merklichen Unterschied ausmacht. Da für MySQL 512MB RAM reserviert sind, werden viele Queries direkt aus dem Arbeitsspeicher geholt. Unter Last ist die Performance deutlich besser als zuvor. Die besagten 200 User verursachen jetzt einen Load von etwa 1.5, einen CPU-Verbrauch von ca. 50% sowie etwa 300MB RAM-Nutzung. Kein Swappen weit und breit. Traffic wird etwa 100GB monatlich verursacht.
Die Performanceverbesserung liegt wohl hauptsächlich an der sehr schlanken Konfiguration des Servers (kein webmin, keine GUIs). Nicht auszuschließen, daß auch die OS-Wahl eine kleine Rolle gespielt hat.
Die Grenze für die o.g. Konfiguration dürfte wohl bei etwa 300 gleichzeitig zugreifenden Usern sein. Oberhalb dieses Wertes käme eine Trennung von Apache und der DB infrage. Bemerkenswert sind Empfehlungen, für ein Forum dieses Kalibers Dual-CPUs, schnelle SCSI-Platten und mindestens 2GB RAM einzuplanen. Das ist definitiv nicht erforderlich.
Gruß, ww