Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. States-DB

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    States-DB

    This topic has been deleted. Only users with topic management privileges can see it.
    • Stabilostick
      Stabilostick last edited by

      Habe mir gerade eine Version des js-Controllers gebaut, bei der der Serverteil des in-Memory-DB als separater Node-Prozess läuft. Funktioniert schonmal händisch. Ziel: Frage mich, ob damit die Event-Queue des Controlles sinnvoll entlastet wird. Möchte gerne einige Tests machen wegen der Performance. Hat jemand Ideen? V8-Profiling?

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        hab sowas noch nie gemacht, sorry kann ich wenig beisteuern …

        1 Reply Last reply Reply Quote 0
        • Stabilostick
          Stabilostick last edited by

          Idee ist, das fest einzubauen, um Redis nicht notwendig zu machen. Komplexer können wir später immer noch. Momentan sehe ich, das serverseitig der socket.io einiges an Zeit braucht. Die SetStates nur wenig. Subscription-Emits. Verflixt. Mache auch gerade mein erstes Profiling mit V8. Hilfe.

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by

            @Stabilostick:

            um Redis nicht notwendig zu machen. `
            Warum dieses?

            Ich habe gerade unfreiwillig einen Test mit dem Cubietruck hinter mir. Die System Load mit Redis liegt unter der Hälfte (bis etwa 0,3) bei der mit file.

            IMHO sind die Schreibvorgänge das Nadelöhr, die von Redis optimiert werden.

            Gruß

            Rainer

            1 Reply Last reply Reply Quote 0
            • Stabilostick
              Stabilostick last edited by

              Messe ich falsch? Setstate macht bei mir nur ca. 3% der Zeit aus. Wir sind hier in-Memory. Und die Persistierung erfolgt ja alle, was war das, 30 oder 60s. Die ist auch fix.

              Ich sehe hier mehr die Socket-Kommunikation als Nadelöhr.

              1 Reply Last reply Reply Quote 0
              • Stabilostick
                Stabilostick last edited by

                ` > Redis natively runs on Linux flavors (and lately on ARM). Many developers, however, want the same Redis awesomeness on Windows, as well. Microsoft sponsored a project to port Redis onto Windows, but the project was discontinued according to Microsoft. With this option gone, what are your options now for running Redis on Windows?

                Well, you've got a few.

                Run Redis on the Windows Ubuntu Subsystem

                Windows 10 comes with an Ubuntu subsystem that can run Redis on your Windows host. Once you have enabled developer mode, you can run Bash on Windows 10. Launch bash and do sudo apt-get install redis-server followed by redis-server on the command prompt. You will see Redis listening on port 6379. It is important to note that the Ubuntu subsystem is a developer mode capability. This subsystem is not built for running critical applications.

                Run Redis on Docker for Windows

                Docker on Windows can run Linux-based containers. Simply install Docker and change your container type to Linux on Windows 10. Following the PowerShell line will switch the container type & $Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon. Once you have Linux containers enabled, you can simply do docker run -d -p 6379:6379 redis and you are good to go. `

                Mit dem Wissen um die npm- und Node-Installationsthemen willst Du das obige den Windows-Anwender antun? 😄

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  I have a tipi - no windows no gates

                  Ich denke bei WIN ist redis nicht nötig, die Hardware dazu hat genug Power

                  1 Reply Last reply Reply Quote 0
                  • Stabilostick
                    Stabilostick last edited by

                    🙂 Kannst Du beim Profiling helfen?

                    1 Reply Last reply Reply Quote 0
                    • apollon77
                      apollon77 last edited by

                      das kann gut dein das socket.io auch das Nadelör ist. Redis nutzt da ja ein eher TCP/IP basiertes Protokoll …

                      Ich denke auch das in oder ausserhalb vom js.controler nicht mehr so den großen unterschied macht .... oder verhält es sich "standalone" performanter?

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators last edited by

                        @apollon77:

                        Kannst Du beim Profiling helfen? `
                        :lol: :lol: :lol: :lol:

                        Der war gut; Ich bin nur User, leider 😞

                        Gruß

                        Rainer

                        1 Reply Last reply Reply Quote 0
                        • Stabilostick
                          Stabilostick last edited by

                          Du 12.000++Hilfen-User, Du… :lol:

                          1 Reply Last reply Reply Quote 0
                          • Stabilostick
                            Stabilostick last edited by

                            oder verhält es sich "standalone" performanter?
                            

                            Das ist Sinn und Zweck der Übung. :ugeek:

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators last edited by

                              @Stabilostick:

                              12.000++Hilfen-User, `
                              Eben!

                              Vom User an den User 😉

                              Noob oder Einsteiger bin ich jetzt aber wirklich nicht mehr; war vor drei Jahren noch ganz anders.

                              1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators last edited by

                                144_photo_2018-07-17_17-32-54.jpg
                                grüne linie oben = Load 1Min:

                                links mit file: in der Spitze 4 und mehr; dann kam es wegen der immer länger werdenden responsezeiten zum Hänger, danach fuhr ioBroker mit einem Load von 6 (Dual-Core) gar nicht mehr vollständig hoch.

                                rechts dann auf redis umgestellt. Load 1Min auf 1 herunter

                                Gruß

                                Rainer

                                1 Reply Last reply Reply Quote 0
                                • Stabilostick
                                  Stabilostick last edited by

                                  Was bedeutet load verglichen mit CPU-Last? CPU von 0-1?

                                  Load = The os.loadavg() method returns an array containing the 1, 5, and 15 minute load averages.

                                  The load average is a measure of system activity, calculated by the operating system and expressed as a fractional number. As a rule of thumb, the load average should ideally be less than the number of logical CPUs in the system.

                                  1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators last edited by

                                    @Stabilostick:

                                    Was bedeutet load verglichen mit CPU-Last? CPU von 0-1? `
                                    CPU-Last habe ich aus "top" und den zweiten Wert parse ich aus /proc/stat und rechne (Usr+sys+nice) / (Usr+sys+nice+idle) (=0 - 100%)

                                    EDIT: das steht im Gauge - das Original ist auf einem anderen Rechner - hier kann man es kaum lesen; im Chart ist der zweite Wert über den parser)

                                    Load (average) 5Min im Gauge und Load (average) 1Min im Chart wie du es zitiert hast über den (modifizierten) RPi2-Adapter.

                                    EDIT2:

                                    Hier die aktuelle Grafik (mit Redis)
                                    144_cubieload.jpg

                                    Gruß

                                    Rainer

                                    1 Reply Last reply Reply Quote 0
                                    • Stabilostick
                                      Stabilostick last edited by

                                      Wieviele Events (State-Änderugnen, Messages wegen Subscriptions) hast du denn je 15s insgesamt im System im Schnitt?

                                      CPU-Auslastung durch den js-Controller bei in-Memory bzw. für Redis bei Nutzung Redis Server dabei?

                                      Hast Du beim JavaScript-Adapter alle States in der Subscription? History?

                                      Und was ist nochmal das für ein Rechner, auf dem Redis läuft? Ich nehme an, zusammen mit dem Master-js-controller? Cubieboard3?

                                      Ich denke, ich muss mal bei mir auf einem rpi installieren und messen. Der Intel i7-2600k ist zu fix. Trotz Windows. :mrgreen:

                                      1 Reply Last reply Reply Quote 0
                                      • Stabilostick
                                        Stabilostick last edited by

                                        Ich gehe davon aus, das mit Sicherheit schon uWS bei engine.io getestet wurde? Sind ja jetzt wieder mit 3.1 oder so auf WS zurück… Ein Hauptteil der Last kommt von den Subscription-Messages. Das macht Redis wohl schneller bzw. mit weniger Overhead. Ach menno, Mir fällt gerade ohne große Änderung auch nix ein.

                                        Die Datenhaltung in der States-DB ist ja von der Datenmenge her nichts Großes. Bloß der Kommunikationsaufwand. Ha, shared memory?

                                        PS: Habe nichts gegen Redis. Bloß unter Windows....

                                        1 Reply Last reply Reply Quote 0
                                        • apollon77
                                          apollon77 last edited by

                                          socket.io in neueren Versionen gabmmehr Probleme als alles andere … leider. keine Ahnung was die da kaputt gemacht haben.

                                          Ich denke optimierter ist nur ein "TCP basierters eigenes protokoll". Ich könnte da auch ein paar verrückte Ideen kommen ... aber die Diskutier ich lieber erstmal direkt mit Bluefox 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          792
                                          Online

                                          31.7k
                                          Users

                                          79.8k
                                          Topics

                                          1.3m
                                          Posts

                                          3
                                          19
                                          1255
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo