Lohnt sich der Pi 4?

  • Hallo. :)

    Ich habe aktuell einen Pi 3 B+. Auf diesem ist Raspbian (ohne GUI) installiert und es läuft hauptsächlich Apache2 (PHP) und Inkscape darauf.

    Weil Inkscape teilweise träge läuft (er braucht für ein 2000x2000px großes Bild locker ~3 Sekunden zum konvertieren von SVG zu PNG), frage ich mich, ob das mit einem Pi 4 etwas besser (schneller) laufen würde?

    Ich dachte an einen Pi 4 mit 4GB SDRAM.

  • Der ist etwa 50% schneller. Ob nun 2 statt 3 Sekunden so entscheidend besser sind, musst du entscheiden.

  • Wieso sollten die nicht ankommen? Wenn das System sonst nicht mehr macht. Wovon bei dem hier beschriebenen headless System ja auszugehen ist. Da laufen ja nicht Unmengen anderer Dienste.

  • Nachdem ich den Beitrag geschrieben habe, bin ich auf die Idee gekommen, dass ganze mal über Windows (CMD) zu probieren. Ich habe es jetzt nicht Sekundengenau getestet, aber es fühlt sich nur unwesentlich schneller an.

    Mein Computer: 10900K mit 5.3GHz, 32GB DDR4 4600MHz CL17 und mehrere M.2 SSD Festplatten.

    In verwende zwei Server, die miteinander kommunizieren. Einen richtigen Webserver bei einem Anbieter und meinem Pi 3 B+. Wenn ich auf Start klicke, dann werden die Daten auf den ersten Server vorbereitet und zum zweiten Server geleitet, wo dann auch Inkscape drüber läuft. Danach werden die Daten wieder zum ersten Server umgeleitet. Vom klicken auf den Start-Button, bis zur BIldausgabe, dauert es in der Regel 2,3 Sekunden. In meinem Fall, liegt das eindeutig an Inkscape. Wenn ich auf Inkscape verzichte, ist das ganze in unter 0,1 Sekunden fertig.

    Problematisch wird es, wenn mehrere Benutzer gleichzeitig das Skript beanspruchen. Ich weiss noch nicht, ob und wie ich das angehen könnte, da ich auf Inkscape leider nicht verzichten kann.

    Könnte ein Pi 4 denn in dieser Hinsicht (mehrere Inkscape-Instanzen) etwas helfen?

  • Nachdem ich den Beitrag geschrieben habe, bin ich auf die Idee gekommen, dass ganze mal über Windows (CMD) zu probieren. Ich habe es jetzt nicht Sekundengenau getestet, aber es fühlt sich nur unwesentlich schneller an.

    Starte die Konvertierung auf dem Pi mal mit vorangestelltem "time". Also "time /usr/bin/inkscape ....." und gucke, wie viel der Ausführungszeit überhaupt auf die CPU entfällt.

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • Starte die Konvertierung auf dem Pi mal mit vorangestelltem "time". Also "time /usr/bin/inkscape ....." und gucke, wie viel der Ausführungszeit überhaupt auf die CPU entfällt.

    Ich habe zum testen eine etwas komplexere Grafik genommen.

    Laut PHP-Messung braucht das ganze rund 3,5 Sekunden (Mittelwert von 3 Runs).

    Wenn ich das ganze direkt über Putty (Terminal) mache, schaut es folgendermaßen aus.

    1. Run:

    real 0m3,321s

    user 0m3,875s

    sys 0m0,143s

    2. Run:

    real 0m3,203s

    user 0m3,918s

    sys 0m0,104s

    3. Run:

    real 0m3,206s

    user 0m3,874s

    sys 0m0,151s

  • Der PI hat 4 Kerne. Also kann er prinzipiell 4 Anfragen gleichzeitig ausliefern. Wenn er mehr werden, wird es entsprechend länger dauern.

    Warum so eine komplizierte Konstruktion? Warum die PNGs nicht cachen? Oder werden die SVGs dynamisch generiert auf Anfrage? Warum nicht auf dem VServer mit mehr Kernen rechnen?

  • Wenn die in diesem Gespiel beteilgten RPis hier irgendwelche Netzwerk-/Serverfunktionen übernehmen, wird sich ein Umstieg auf den RPi4 sicherlich lohnen. Der Vierer hat an Ethernet einen wesentlich höheren Datendurchsatz als der Dreier.

    Die zu klärende Frage ist doch, wo (CPU oder LAN) sich der Flaschenhals letztlich befindet.

  • Da die reine Repsonse auf 0.1 der 2.5 oder so Sekunden beschränkt ist, wohl wirklich die CPU. Und Speicher. SVG Rendering ist relativ teuer.

    Ggf könnte man Offset kosten sparen, wenn man Inkscape nicht die ganze Zeit hoch- und runterfährt. Aber ob das was bringt und technisch möglich ist, kann ich so aus der lameng auch nicht beantworten.

  • Ich habe mal zum testen 3 Benchmarks durchgeführt mit einer relativ komplexen SVG-Datei, aber die Ausgabegröße (Höhe) auf 300px beschränkt.

    1. Benchmark via PHP (Pi 3 B+)

    PHP
    <?php
    exec("/usr/bin/inkscape -f /var/www/html/svg/benchmark.svg --export-height=300 -e /var/www/html/png/benchmark.png");
    ?>

    Mittelwert aus 3x Runs:

    3,9 Sekunden

    2. Benchmark via SSH-Client (Pi 3 B+)

    Code
    alice@server:~ $ time /usr/bin/inkscape -f /var/www/html/svg/benchmark.svg --export-height=300 -e /var/www/html/png/benchmark.png

    Mittelwert aus 3x Runs:

    real = 2,5 Sekunden

    user = 2,5 Sekunden

    sys = 0,16 Sekunden

    3. Benchmark via Windows PowerShell (Büro-PC)

    Code
    PS C:\program files\inkscape\bin> Measure-Command {.\inkscape  --export-type="png" C:\Users\alice\svg\benchmark.svg --export-height=300}

    Mittelwert aus 3x Runs:

    TotalSeconds = 0,55 Sekunden

    Jetzt ist die Frage, wie diese Zahlen richtig zu bewerten sind.

  • Wieso sollten die nicht ankommen? Wenn das System sonst nicht mehr macht. Wovon bei dem hier beschriebenen headless System ja auszugehen ist. Da laufen ja nicht Unmengen anderer Dienste.

    Programme zum Messen der Leistung und zum Verglech der Leistung von CPUs und gesamten System sind darauf ausgelegt, das beste aus dem System herauszuholen. Wenn anhand solcher Programme also nun beim Vergleich von 2 Systemen ein Zuwachs von 50 % ausgewiesen wird, so gilt das eben für die Benchmarkprogramme. Anwendungsprogramme benutzen aber zum Beispiel "alte" Befehle, lesen Daten von einem Dateisystem und schreiben sie auch zurück etc. Natürlich werden auch Anwendungsprogramme von dem Leistungszuwachs profitieren aber mit hoher Sicherheit nicht im gleichen Maße wie die Benchmarkprogramme. Meine Erfahrungen bestätigen dies mehrfach zumindest in der x86-Welt.

  • Kleines Update:

    Ich habe mittlerweile einen 2. Server aufgebaut mit einem kleinen Intel (i5 2 Core / 4 Threads) und dieser meistert die Umwandlung in durchschnittlich 0,52 Sekunden via PHP (Exec)!

    Einmal editiert, zuletzt von Alice85 (18. Juli 2021 um 01:03)

Jetzt mitmachen!

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