1. Diese Seite verwendet Cookies. Wenn Sie sich weiterhin auf dieser Seite aufhalten, akzeptieren Sie unseren Einsatz von Cookies. Weitere Informationen

Mitmachen! — Einen eigenen Render-Knoten einrichten

Dieses Thema im Forum "RenderService" wurde erstellt von leMaik, 28. Juli 2017.

  1. leMaik

    leMaik Administrator Mitarbeiter

    Der RenderService lebt von den Render-Knoten (render nodes), auf die dann die Jobs verteilt werden. Es gibt zwei Möglichkeiten, einen solchen Knoten einzurichten.

    ~~~~

    Einrichtung über Docker (empfohlen, insbesondere für Server)
    1. Docker installieren, dabei hilft die offizielle Dokumentation
    2. rs3-rendernode Docker-Image herunterladen ("pull") und starten
      docker run --rm wertarbyte/rs3-rendernode <arguments>
    Um den Container zu aktualisieren (falls es eine neue Version gibt), einfach den Docker-Container stoppen (Strg+C) und anschließend über docker pull wertarbyte/rs3-rendernode das neueste Image herunterladen. Anschließend kann wie oben beschrieben ein neuer Container erstellt und gestartet werden.

    Einrichtung ohne Docker
    1. Java 8 installieren, das gibt es auf der offiziellen Download-Seite von Oracle
    2. Die neueste .jar-Datei aus dem Bitbucket-Repository herunterladen
    3. Den Render-Knoten starten
      java -jar <pfad zur jar>/rendernode-…-jar-with-dependencies.jar <arguments>
    Falls es eine neue Version gibt, einfach den Prozess beenden, die neueste .jar-Datei herunterladen und den Knoten wieder starten.

    Optionen
    Dort, wo bei den Befehlen oben der Platzhalter <arguments> steht, kann der Render-Knoten mit den folgenden Argumenten angepasst werden:
    • --name <s>
      Gebt dem Knoten einen Namen, den andere auf der RenderService-Homepage sehen können
    • --process-count <n>
      Maximale Anzahl der Chunky-Prozesse, die gleichzeitig laufen dürfen
    • --thread-count <n>
      Anzahl der Threads pro Chunky-Prozess
    • --chunky-xms <n>
      Minimaler Arbeitsspeicher pro Chunky-Prozess, in MB (etwa wie --Xms bei Java)
    • --chunky-xmx <n>
      Maximaler Arbeitsspeicher pro Chunky-Prozess, in MB (etwa wie --Xmx bei Java)
    • --upload-rate <n>
      Maximale Upload-Geschwindigkeit (ich denke da an dich, @Raccoon) mit der Dateien zum RenderService übertragen werden, in KB/s
    ~~~~

    Warum sollte ich Docker benutzen? Was ist das überhaupt?
    Docker ist eine Software, die Container verwaltet. Das sind – vereinfacht gesagt – leichtgewichtige virtuelle Maschinen.
    Der Vorteil bei der Docker-Variante ist, dass (wie bei einer VM) alle Abhängigkeiten im Image des Render-Knotens enthalten sind. Man benötigt kein Java, sondern einfach nur Docker. Selbst Updates können mit zwei Befehlen einfach eingespielt werden. Für Desktop-PCs ist aber die Variante ohne Docker eventuell einfacher.

    Soll ich mein gesamtes Taschengeld jetzt für Server ausgeben, um mitzurendern?
    Nein! Es wäre schon cool, wenn du den Render-Knoten im Hintergrund auf deinem PC laufen lässt. Du könntest die Priorität des Prozesses ja beispielsweise gering einstellen.
     
  2. Horstexplorer

    Horstexplorer Crafter

    Kann man auch irgendwo einstellen wie viel Leistung sich Chunky nimmt? Weil Theoretisch könnte er sich ja auch bei 1 Thead U 1 Prozess gleich alles was da ist schnappen.
     
  3. JanSe

    JanSe Novice Crafter

    Moinsen,

    Nuja, du kannst das ja mit der Prozesspriorität einschränken.

    Btw für alle, die einen Ubuntu-Server am Laufen haben und dort drauf rendern wollen (wie ich).
    Als Alternative zum klassischen Java kann auf OpenJDK (Java als Paket) genutzt werrden.
    Befehl:
    Code:
    sudo apt-get install openjdk-8-jre
    Ebenso auch der Hinweis (ich weiß nicht, wie es sich mit Docker verhält, ich mag Docker nicht :p ): Denke dran, den Renderprozess als Screen-Session laufen zu lassen. Ansonsten beendet er sich beim Disconnect der SSH-Verbindung.

    BB,
    JanSe
     
    Zuletzt bearbeitet: 28. Juli 2017
  4. Horstexplorer

    Horstexplorer Crafter

    Und wie ^^ i hab davon noch weniger Ahnung als von Java :D
     
  5. JanSe

    JanSe Novice Crafter

    Bei Windows machst du das über den Task-Manager. Prozess Java auswählen (oder Docker, das kann leMaik besser sagen) und dann Rechtsklick -> Priorität.
     
  6. Horstexplorer

    Horstexplorer Crafter

    Na dann muss @leMaik noch einmal erklären wie das mit Debian U den Dockern geht :)
     
  7. leMaik

    leMaik Administrator Mitarbeiter

    Nein, tatsächlich kann ein Thread auch nur maximal einen CPU-Kern auslasten. Das Betriebssystem kann (und wird) den Thread aber zwischen den Kernen hin- und her schieben.

    "Ich mag Docker nicht" ist die falsche Einstellung. :D Ruhig mal mit auseinandersetzen, schadet nicht. Mit dem Befehl, den ich oben geschrieben habe, läuft der Docker-Container im Vordergrund und verhält auch so. D.h. er ist beendet, wenn man die SSH-Sitzung beendet. Mit docker run -d --name rendernode wertarbyte/rs3-rendernode <arguments> läuft der Container im Hintergrund und lässt sich mit docker stop rendernode stoppen, mit docker start rendernode wieder starten und mit docker rm rendernode löschen.

    Dazu gibt es Google. :p
     
  8. JanSe

    JanSe Novice Crafter

    Ich mag Docker nur nicht, weil ich selbst mal probiert habe, so ein Container + Image aufzusetzen (mal just for fun). Das ist dann ziemlich eskaliert und als ich durch Docker dann nen Crash hatte, hat meine Maus angefangen, fliegen zu lernen. Aus dem sechsten Stock. Nuja, seitdem bin ich kein Fan mehr von Docker. Wobei es an sich natürlich eine gute Software ist ;)
     
  9. JanSe

    JanSe Novice Crafter

    Ist der --upload-rate <n>-Parameter eigentlich ein Muss? Bei mir dümpelt der grad beim Upload seit 5 Minuten rum.

    BB,
    JanSe
     
  10. leMaik

    leMaik Administrator Mitarbeiter

    Nein, standardmäßig wird so schnell wie möglich hochgeladen. Bei hoher Auflösung sind die Dateien, die hochgeladen werden, aber auch relativ groß.
     
  11. Horstexplorer

    Horstexplorer Crafter

    *klopf* *klopf*
    Was ist wenn man das ganze auf ein, zwei rpis mitlaufen lassen würde, wie würde das gehen :) und bringt es überhaupt etwas :?
     
  12. leMaik

    leMaik Administrator Mitarbeiter

    Ist die Frage, ob der Arbeitsspeicher reicht; bei großen Jobs schmiert Chunky da sicherlich ab. Aber ansonsten habe ich das sogar selbst schon gemacht. Klappt prima.

    Die Docker-Variante würde ich für den Pi aber nicht nehmen.
     
  13. Horstexplorer

    Horstexplorer Crafter

    OK dann teste ich das Mal aus wenn ich die nächsten Pi s kaufe und sie Mal nicht brauchen ;D
    Evtl kann man es ja so einrichten das je nach Hardware Jobs verteilt werden. :) Und ein Feature für CUDA Rendering wäre auch ganz nett. Damit können man sicherlich die Effizienz vervierfachen.
     
    Zuletzt bearbeitet: 1. August 2017
  14. leMaik

    leMaik Administrator Mitarbeiter

    Jobs verteilen je nach Hardware: Gute Idee, aber in der aktuellen Architektur schwierig umzusetzen.

    CUDA benutzen: Es gibt schon lange das Vorhaben, Chunky zwar nicht mit CUDA, aber mit OpenCL zu realisieren, um die GPU zu benutzen. Ist aber ein ziemlicher Umriss und sehr komplex. Wenn das ginge, müsste der RenderService vermutlich nur noch aus einem Servern bestehen.

    * das ist sehr vereinfacht dargestellt
     
  15. Horstexplorer

    Horstexplorer Crafter

    Evtl kann man sich da was von anderen Renderengines abschauen ;? Mal sehen wann es dass dann geben wird :)