Webserver: Raspberry vs. Low-Budget-PC

  • Seit sehr langer Zeit benutze ich meinen Raspberry Pi 2 B als Webserver. Es gibt mehrere Domains und vHosts.

    Zur selben Zeit habe ich einen Low-Budget-PC im Einsatz als Voice-Server.
    Daten:
    - Intel Pentium G3260 2x 3.30GHz
    - 8GB 1600 MHz RAM
    - Gigabyte-Mainboard Z97P
    - 5400 RPM 2.5"-Festplatte
    - Debian Jeesie

    Internetzugang:
    - Download: 50.000 KBit
    - Upload: 10.000 KBit

    Ich stelle mir gerade die Frage, ob eine komplette Wordpress-Installation mit einigen Artikeln, Seiten und mehr ("Community-Webseite mit Profilen und Forum) auf diesem PC besser funktionieren würde als auf dem Raspberry.

    Ein Freund berichtet mir seit heute, dass er nur sperrlich auf meine Webseite kommt (es lädt wohl circa 4 Sekunden beim Absenden der URL im Browser).
    Ich weiß nicht, ob es seine Schuld ist oder nicht.

    Aber zur Grundfrage:
    - Raspberry Pi 2 B als Webserver oder der Low-Budget-PC als Webserver?

    Einmal editiert, zuletzt von rpi-noob (27. Februar 2016 um 21:42)

  • Ach das habe ich total vergessen!

    Ich benutze nginx auf Debian Jessie, müsste Version 1.6.X sein, php-fpm und mysql-server 5.5.
    w3-total-cache kommt nur für die Startseite in Frage, da die restlichen Seiten sich öfters ändern.

    Einmal editiert, zuletzt von rpi-noob (28. Februar 2016 um 10:29)

  • Der Raspberry Pi ist und bleibt "Spielerei". Zu nichts anderem wurde er geschaffen. Dass man damit soviel anfangen kann und auch anfängt, ist eher der euphorischen und großen Community zuzurechnen, als der Leistungsfähigkeit unseres kleinen Lieblings. Also Du fährst in Sachen Zuverlässigkeit, Geschwindigkeit und Einsetzbarkeit besser mit Deinem Rechner. Allein wenn man die Daten vergleicht fällt einem das ins Auge. Für einfache Seiten mag der RasPi noch geeignet sein, unschlagbar wird Dein low budget Rechner allerdings durch den Arbeitsspeicher, SATA-Festplatte(n) und Raid.

  • Naja, ich glaube nicht das der Pi überlastet ist - es spricht dann also nichts gegen den Pi.
    Lass einfach mal son Programm wie "htop" oder "nmon" länger laufen und beobachte die Kern und Ram Auslastung. Ich tippe mal das weder CPU noch RAM zu 50% ausgelastet sein werden. Die Ursache läge dann also wo anders, wie zum Beispiel die Netzwerkkonfiguration (zB das was in /etc/resolv.conf steht, oder wie der Pi ins Netzwerk eingebunden ist; LAN/WLAN; Static IP usw). Auch die Geschwindigkeit der SD kann eine Rolle spielen - nicht jede Class10 ist gleich schnell.

    Dein Low-Budget-PC frisst halt weitaus mehr Strom auch wenn dieser nichts zu tun hat - die Folgekosten sind dann also weitaus höher. Nur für Webseiten wäre dein PC oversized


  • Ich stelle mir gerade die Frage, ob eine komplette Wordpress-Installation mit einigen Artikeln, Seiten und mehr ("Community-Webseite mit Profilen und Forum) auf diesem PC besser funktionieren würde als auf dem Raspberry.

    Wenn es um die reine oben gestellte Frage geht, ist dies mit ja zu beantworten. Ich habe den Raspberry Pi auch lieb, aber deshalb ist er noch lange kein guter Webserver. Und Stromsparen war erst mal nicht das Ziel der Anfrage, zumal ein Motherboard evtl. mit SSD und ohne Grafikkarte auch nicht soviel verbraucht, wie man denken mag. Aber 20Watt sind natürlich immer noch 4xmehr als 5W. Bedenkt man jedoch, dass dann am RasPi noch ne Festplatte hängt ist das auch schon wieder nicht wahr.

  • Bei der oben genannten Konstellation sind 20 Watt völlig utopisch. Alleine der CPU hat eine TDP von 53 Watt, was zwar nur den Maximal Wert definiert aber im Idle wird der Verbrauch nicht wirklich sehr viel niedriger als 30 Watt liegen. Dazu kommt dann noch der Verbrauch des nackten Mainboards, plus RAM, plus Festplatte und nicht zu vergessen die Verlustleistung des Netzteils was vermutlich mind. 300Watt haben wird aber kein 80PLUS Zertifikat.
    Ob er USB Geräte am Pi verwendet ist zZt. unbekannt.

  • Mein Netzteil ist ein 80+ 400 Watt Netzteil.

    Ich habe mir die Datei /etc/resolv.conf mal angeguckt. Auf meinem Low-Budget-PC steht da nur drin

    Zitat

    domain fritz.box
    search fritz.box
    nameserver 192.168.0.1

    Was im Pi drin steht weiß ich gerade nicht, weil er schon seit sehr langer Zeit mit

    Code
    time echo "scale=10000; a(1)*4" | bc -l

    beschäftigt ist :P
    Der Low-Budget-PC war damit in 1 Minute und 42 Sekunden fertig.


    Edit: der Pi ist fertig: 10 Minuten und 16 Sekunden.

    Im Pi steht

    Zitat

    # Generated by resolvconf
    nameserver 192.168.0.1

    Beide Rechner haben eine feste IP und sind per LAN-Kabel angeschlossen.
    SD-Karte ist eine Class10 von SanDisk. Ein Internet-Speedtest ergibt 49,5 Mbit Download, 9,95 Mbit Upload.

    Ich wusste gar nicht, dass man mit dieser Datei die Netzwerkkonfiguration ändern kann.

    Zitat

    Ob er USB Geräte am Pi verwendet ist zZt. unbekannt.


    Keinerlei USB-Geräte hängen am Pi.


    ------------------------

    Edit:

    ich habe mir htop mal angeguckt. Wenn ich eine Wordpress-Seite aufrufe, welche auf dem pi liegt, schnellt die CPU-Auslastung von php-fpm kurzzeitig auf bis zu 60% hoch. Das wird wahrscheinlich dann irgendwann der Flaschenhals sein (und ja, der Pi ist nicht dafür vorgesehen ich weiß :P )
    Auf meinem Debian-Server läuft aktuell ein Spiele-Server und ein Voice-Server.

    "Idle":

    Low-Budget-PC:

    Code
    1  [|||                         4.7%]     Tasks: 28, 43 thr; 1 running
    2  [||                          3.8%]     Load average: 0.17 0.16 0.14
    Mem[|||||||||||||||||||||2655/7869MB]     Uptime: 30 days, 05:07:21
    Swp[|                      12/8056MB]

    Bedenkt: CPU-Auslastung ist logischerweise höher als beim Pi, weil gerade "geschufftet" wird.

    Raspberry:

    Code
    1  [                            0.0%]     Tasks: 38, 49 thr; 1 running
    2  [|                           0.5%]     Load average: 0.05 0.09 0.21
    3  [                            0.0%]     Uptime: 1 day, 04:35:44
    4  [||                          2.3%]
    Mem[|||||||||||||||||||||||128/925MB]
    Swp[                          0/99MB]

    Einmal editiert, zuletzt von rpi-noob (28. Februar 2016 um 17:39)

  • Naja solch eine Berechnung als Richtwert zu verwenden ist nicht das Gelbe vom Ei. Du kannst nicht einfach jeden X beliebigen CPU direkt miteinander vergleichen und durch solch eine Berechnung feststellen "der PC ist für Meinen Zweck besser geeignet weil er die Berechnung 10x schneller schaffte". Sowas hinkt genau so wie die letzte Aussage von raspiprojekt.
    bc ist zudem viel langsamer als echte Benchmark Programme und auch kein bisschen optimiert. Aber auch die verwendete Kernel Version spielt eine Rolle, insbesondere da beim Pi oft fatalerweise gedacht wird man müsse 'rpi-update' verwenden... Was aber oft nach hinten los geht da diese Firmware/Kernel nicht stable sind.
    Es gibt also schon ein paar mehr Stolpersteine die man beachten sollte.

    80PLUS ist in 6 verschiedene Kategorien unterteilt. Ein einfaches 80PLUS ist immer noch ein großer Unterschied zu einem 80PLUS-Titanium...
    Aber worauf ich hinaus wollte ist dass für den PC ein >300W Netzteil verwendet wird, dessen allgemeine Verlustleistung weitaus höher liegt als bei einem 10W Netzteil für einen Pi. Das sind Welten die da zwischen liegen - ein direkter Vergleich hinkt also genau so wie der CPU Vergleich... Das sollte man eigentlich ohne Erklärung bereits erkennen. Ein Porsche ist rein optisch schon etwas völlig anderes als ein VW Golf.


    Lösch mal den Inhalt deiner resolv.conf und trage dort stattdessen folgendes ein:

    Code
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    nameserver 208.67.220.220
    nameserver 208.67.222.222

    Das sind öffentliche Domain-Name-Server, von Google und OpenDNS, welche schneller reagieren sollten als dein Router. Das kann in manchen Fällen bereits Anfragen beschleunigen da man dann unabhängig eines Routers ist (welcher ebenfalls überlastet sein könnte)

    Und wie gesagt sind Class10 Karten nicht alle gleich schnell. Mit "SanDisk" lässt sich das nicht genauer feststellen - es gibt ca. 100 verschiedener SanDisk Class10 Modelle.

    Spekulativ stellte sich nun auch die Frage ob deine Dateien vielleicht auf einem externen Gerät liegen, also nicht direkt auf der SD des Pis?

    Und was ergibt deine Beobachtung besagter Programme?


    //EDIT: Hast du es denn auch mal mit einem anderen Webserver probiert? Oder einer optimierten php-fpm Konfiguration?
    Auch kann es eine Besserung mit einer anderen Webserver Software geben - weil nginx ist nicht in allem besser. Jede der am bekanntesten Webserver-Softwares haben ihre Vor- und Nachteile. apache2 ist nicht in allem langsamer nur weils der Traktor unter den Webservern ist; nginx ist nicht für alle Inhalte die beste Wahl; viele großen Webseiten wie Youtube, Facebook & Co nutzen nicht Grundlos eine Kombination aus apache2, nginx und lighttpd.
    Aber auch dessen Konfiguration spielt selbstverständlich eine Rolle - so bremst zB AllowOverride (.htaccess) den apache2 sehr stark aus...

  • Danke für deine ausführliche Antwort!
    Ja ich weiß, bc ist nicht soooo toll. Hatte aber gerade nichts anderes da :( War eher zum Spaß gemacht dieser Vergleich.

    Zitat

    Spekulativ stellte sich nun auch die Frage ob deine Dateien vielleicht auf einem externen Gerät liegen, also nicht direkt auf der SD des Pis?


    Doch. Alles liegt auf der SD-Karte. Am Pi hängt keinerlei andere Hardware dran.

    Zitat

    Und was ergibt deine Beobachtung besagter Programme?


    Ich musste mich erst einmal in htop reinarbeiten und durchblicken. Das Programm ist verdammt gut! Hatte vorher nur top benutzt.
    htop zeigt mir sehr deutlich, dass der Pi beim Aufruf von PHP-intensiven Webseiten (Wordpress) numerisch gesehen an sein Limit kommt (>60% Auslastung).

    Zitat

    //Edit


    Ich bin mir noch nicht einmal sicher, ob es am Pi liegt, weshalb das Laden bei meinem Freund so lange dauert, oder an seiner Internetverbindung.

    Ich habe mittlerweile aber schon mehrere Webseiten meine Webseite aufrufen und analysieren lassen.

    So z.B. auch ein GZIP-Test:

    Google PageSpeed meckert auch nicht rum und sagt, dass der Server schnell reagiert und antwortet (wäre bei 4 Sekunden ja nicht der Fall).
    Ich denke also, es liegt an ihm!


    Ich werde die von dir vorgeschlagenden Änderungen (DNS) übernehmen und gucken was passiert =)
    Muss ich den Pi danach neu starten?

    Einmal editiert, zuletzt von rpi-noob (28. Februar 2016 um 21:42)


  • htop zeigt mir sehr deutlich, dass der Pi beim Aufruf von PHP-intensiven Webseiten (Wordpress) numerisch gesehen an sein Limit kommt (>60% Auslastung).

    >60% ist etwas schwammig und nicht das Limit ;) Auch ist die Frage ob ALLE 4 Cores >60% haben oder nur einer? Wenn es nur einer is, der Pi2 aber vier hat, kann man ebenfalls nicht von "an sein Limit kommt" sprechen

    Ich denke also, es liegt an ihm!

    Gut möglich. Oder die Upload-Richtung deiner Leitung war zu dem Zeitpunkt ausgelastet... Deshalb versuchte ich erst mal zu ergründen ob wirklich der Pi zu langsam ist (wie raspiprojekt es zu pauschal sofort darstellte) oder die Ursache wo anders liegt...


    Ich werde die von dir vorgeschlagenden Änderungen (DNS) übernehmen und gucken was passiert =)
    Muss ich den Pi danach neu starten?

    Nein. Es wird sofort übernommen, sobald du die Datei verändert speicherst.

  • Ich glaube ich werde morgen aber eh alles auf den Low-Budget-PC packen und den Pi erst einmal ignorieren. Denn es ist schon wieder einmal vorgekommen, dass sich der mysql-Server nach einem Neustart einfach nicht starten lässt.
    sudo service mysql start.. "start" sei angeblich ein ungültiges Argument. Genau wie alle anderen Argumente. Das ist mir schon öfter passiert, obwohl ich nirgendwo rumgefummelt habe.

    Naja. Neuinstallieren von mysql oder gar dem OS bringt auch nix, denn das ist ein frisches Jessie-Lite-Image (ist auch schon vorher bei Wheezy passiert).


    Edit:
    habe nun folgendes gelesen und werde mir morgen mal eine neue SD-Karte kaufen.

    Einmal editiert, zuletzt von rpi-noob (29. Februar 2016 um 00:41)

  • Das liegt dann aber nicht am Pi selbst

    "service mysql start" macht eigentlich nichts anderes als das Script /etc/init.d/mysql auszuführen und als Parameter "start" zu übergeben... Du kannst dann also auch " sudo /etc/init.d/mysql start " auszuführen. Wenn das nicht funktioniert liegt das also an dem Script und wenn das plötzlich kaputt ist liegt das wiederum an der SD oder wie der Pi herunterfahren wurde (sofern überhaupt). Hierbei spielt dann auch eine mögliche Übertaktung eine Rolle, was viele nicht wissen kann nicht jede SD eine Erhöhung von "core_freq" verkraften da das auch den SD-Controller übertaktet.

    Für mich klingt das jedenfalls so als hättest du ein Problem mit der SD.
    Meine Pi's laufen problemlos, nicht zuletzt auch hier zu sehen wie lange einer schon läuft: http://RaspberryPi.roxxs.org => Uptime: 587 days
    Das kann dir auch mit einer nicht rund laufenden HDD passieren...

  • Das ist zwar mittlerweile OffTopic, aber das hier ist meine /boot/config.txt (werde mir aber gleich eine SD-Karte kaufen):

    Code
    arm_freq=1100
    sdram_freq=500
    core_freq=500
    over_voltage=2
    arm_freq_min=400
    sdram_freq_min=250
    core_freq_min=250
    initial_turbo=30
    temp_limit=80
  • Naja es ist halt immer wieder erstaunlich wie gedankenlos übertaktet wird - allgemein, nicht nur du ;)

    core_freq ist das einzige was sich tatsächlich um Faktor x 2 erhöhen lässt - alles andere steigt schon früher aus. Alleine das sollte einem zu denken geben.
    Ohne "initial_turbo" würde bei Dir vermutlich schon früher Probleme bemerkt werden, denn das sorgt dafür das die Übertaktung erst nach 30 Sekunden nach dem Einschalten aktiviert wird.
    Das tolle am Pi ist das man auf jedes einzelne Element in der SoC Einfluss nehmen kann, also sowohl Frequenz als auch Spannung kann man selbst für die Hardware-Beschleuniger-Codecs einstellen. Bei Dir stellt sich daher die Frage ob du wirklich eine core_freq von 500MHz benötigst da dein Pi doch eigentlich keine Grafische Ausgabe erzeugt?

    Aber allgemein ist es dann nicht weiter verwunderlich dass php-fpm am Anfang >60% CPU Last erzeugt da die arm_freq bei Dir ja im Idle nur 400MHz beträgt... Setz mal "force_turbo=1" und beobachte dann noch mal "htop".

  • Solong you dont know what you really need - yes!

    force_turbo=1 solltest du schon haben. Das sorgt dafür das der SoC sich nicht im Idle runter taktet und somit kommt es auch nicht zu Verzögerungen/Lagg wenn plötzlich eine Belastung auftritt. Das führt vermutlich u.A. dazu dass du anfangs >60% Auslastung beobachtest... Es ist halt oft eine Kombination von mehreren Sachen die Probleme bereiten.....
    Insbesondere wenn du den Pi als Server einsetzen willst sind solche Sachen wie Untertakten (runter) Quatsch - wozu runter takten? Sind 2 Watt noch nicht wenig genug? Ich mein, die Intention dieses Threads war, weil der Pi auf den Ersten Blick zu langsam erschien. Letztlich stellt sich dann aber heraus das es selbst verschuldet wurde......
    Dein Pi ist die ganze Zeit damit beschäftigt den Takt zu ändern. Wenn keiner was macht läuft er auf 400Mhz. Surft dann jemand rum taktet er auf 1100MHz, wenn die Auslastung zwischen 20 und 40% ist taktet er auf 600MHz und wenn er dann wieder idlet runter auf 400MHz. Das verballert auch Aufmerksamkeit und das ständige herumtakten sorgt für Verzögerungen.

  • Ich habe eine Idee. Ich werde gleich mal ein altes Image auf den Pi speichern, mysql komplett neu installieren, die config.txt so anpassen wie du es sich gehört und den Pi neu starten.. mal gucken, ob mysql dann noch immer "kaputt" geht.
    Ok Neuinstallation funktioniert nicht mehr. Die SD-Karte ist scheinbar irgendwo defekt. Eventuell genau an der Stelle wo mysql immer "liegt"?
    Werde mir wohl gleich doch eine neue kaufen müssen, dachte ich komme drum rum.


    Auf was muss man denn achten außer auf Class10?

    Einmal editiert, zuletzt von rpi-noob (29. Februar 2016 um 14:18)

  • [...]Ok Neuinstallation funktioniert nicht mehr. Die SD-Karte ist scheinbar irgendwo defekt. [...]

    Falls du eine Digitalkamera hast, versuch sie mal damit zu formatieren. Ich konnte bisher mit meiner Digital IXUS und dem Adapter, der praktisch jeder µSDHC Karte beiliegt, noch jede im Raspi "zerschrottete" µSD wieder zum Leben erwecken.

  • Die Idee gefällt mir. Werde ich gleich versuchen!
    Nur eine Frage.. formatiert eine Digitalkamera (in meinem Fall eine Sony Alpha 33) anders als SDFormatter?

    Auch interessant:
    ich hatte mein Image schon mehrmals neu auf die Karte gepackt und die Karte zuvor immer mit SDFormatter formatiert - der Fehler (mysql kaputt) trat immer wieder auf.

    Einmal editiert, zuletzt von rpi-noob (29. Februar 2016 um 14:33)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!