<div dir="ltr">Hallo,<br><br><div>ich habe ca. seit Anfang März ein ähnliches (oder vielleicht sogar das gleiche) Problem. Leider habe ich bisher keine Ursache / Lösung gefunden. Da ich den Fehler bei mir suche (ging ja urplötzlich nicht mehr), habe ich hier noch nichts gepostet. Nun ja, vielleicht hilft meine Teilanalyse ja jetzt weiter:</div><div><br></div><div>Für mich sah es so aus, als wenn der s0vz Prozess zwar korrekt startet, sobald ein s0 Impuls kommt (via reed Kontakt an s0 Erweiterung klein von Udo), dieser das System lahmlegt (watchdog löst bei mir einen Reboot aus wenn der Load > ~25 geht). Mein Gaszähler hat nur 10 Impulse pro m³, daher habe ich in Summe eher wenige. Die Last kommt dann vom Prozess selbst und zu einem großen Anteil vom apache (oder vom lighttpd via php-cgi). </div><div><br></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">Zur Analyse habe ich zusätzliche </span>syslog <span style="font-size:13.1999998092651px;line-height:19.7999992370605px">Befehle in s0vc.c eingebaut, in etwa so:</span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></span></div><div><div><div>for ( ;; ) {</div><div>    if((multihandle_res = curl_multi_perform(multihandle, &running_handles)) != CURLM_OK) {</div><div>    syslog(LOG_INFO, "HTTP_POST(): %s", curl_multi_strerror(multihandle_res) );</div><div>    }</div><div>    if (i++ % log_poll_seconds == 0) {</div><div>        syslog(LOG_INFO, "Before poll()");</div><div>    }</div><div>    int ret = poll(fds, inputs, 1000);</div><div>                    </div><div>    if(ret>0) {</div><div>        syslog(LOG_INFO, "Got something, ret > 0");</div><div>        for (i=0; i<inputs; i++) {</div><div>            if (fds[i].revents & POLLPRI) {</div><div>                // syslog(LOG_INFO, "Before read");</div><div>                len = read(fds[i].fd, buffer, BUF_LEN);</div><div>                syslog(LOG_INFO, "after read");</div><div>                </div><div>                // syslog(LOG_INFO, "Beforde update curl handle");</div><div>                update_curl_handle(vzuuid[i]);</div><div>                syslog(LOG_INFO, "After update curl handle");</div><div>            }</div><div>        }</div><div>    }</div><div>}</div></div></div><div><br></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">log_poll_seconds habe ich definiert damit nicht jede Sekunde ein Eintrag erzeugt wird. Das Logfile sieht dann in etwas so aus:</span><br></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></span></div><div><div>Mar 21 22:28:32 dev-pi s0vz: S0/Impulse to Volkszaehler RaspberryPI deamon 1.4.5</div><div>Mar 21 22:28:32 dev-pi s0vz: VzServer:localhost</div><div>Mar 21 22:28:32 dev-pi s0vz: VzPort:80</div><div>Mar 21 22:28:32 dev-pi s0vz: log_poll_seconds:60</div><div>Mar 21 22:28:32 dev-pi s0vz: VzPath:middleware.php</div><div>Mar 21 22:28:32 dev-pi s0vz: GPIO0 = 30afb000-d080-11e3-be6a-33242cd61de6</div><div>Mar 21 22:28:32 dev-pi s0vz: Before poll()</div><div>Mar 21 22:28:32 dev-pi s0vz: Got something, ret > 0</div><div>Mar 21 22:28:32 dev-pi s0vz: after read</div><div>Mar 21 22:28:32 dev-pi s0vz: CURL: <a href="http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948112388">http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948112388</a></div><div>Mar 21 22:28:32 dev-pi s0vz: After update curl handle</div><div>Mar 21 22:28:32 dev-pi s0vz: after read</div><div>Mar 21 22:28:32 dev-pi s0vz: CURL: <a href="http://localhost:80/middleware.php/data/(null).json?ts=1426948112389">http://localhost:80/middleware.php/data/(null).json?ts=1426948112389</a></div><div>Mar 21 22:28:32 dev-pi s0vz: After update curl handle</div><div>Mar 21 22:28:32 dev-pi s0vz: after read</div><div>Mar 21 22:28:32 dev-pi s0vz: CURL: <a href="http://localhost:80/middleware.php/data/(null).json?ts=1426948112389">http://localhost:80/middleware.php/data/(null).json?ts=1426948112389</a></div><div>Mar 21 22:28:32 dev-pi s0vz: After update curl handle</div><div>Mar 21 22:28:32 dev-pi s0vz: after read</div><div>Mar 21 22:28:32 dev-pi s0vz: CURL: <a href="http://localhost:80/middleware.php/data/(null).json?ts=1426948112389">http://localhost:80/middleware.php/data/(null).json?ts=1426948112389</a></div><div>Mar 21 22:28:32 dev-pi s0vz: After update curl handle</div><div>Mar 21 22:28:32 dev-pi s0vz: after read</div><div>Mar 21 22:28:32 dev-pi s0vz: CURL: <a href="http://localhost:80/middleware.php/data/(null).json?ts=1426948112393">http://localhost:80/middleware.php/data/(null).json?ts=1426948112393</a></div><div>Mar 21 22:28:32 dev-pi s0vz: After update curl handle</div><div>Mar 21 22:29:26 dev-pi s0vz: Before poll()</div><div>Mar 21 22:30:26 dev-pi s0vz: Before poll()</div><div>Mar 21 22:31:26 dev-pi s0vz: Before poll()</div><div>Mar 21 22:32:26 dev-pi s0vz: Before poll()</div><div>Mar 21 22:32:51 dev-pi s0vz: Got something, ret > 0</div><div>Mar 21 22:32:51 dev-pi s0vz: after read</div><div>Mar 21 22:32:51 dev-pi s0vz: CURL: <a href="http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948371847">http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948371847</a></div><div>Mar 21 22:32:51 dev-pi s0vz: After update curl handle</div><div>Mar 21 22:32:51 dev-pi s0vz: Got something, ret > 0</div><div>Mar 21 22:32:51 dev-pi s0vz: after read</div><div>Mar 21 22:32:51 dev-pi s0vz: CURL: <a href="http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948371847">http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948371847</a></div><div>Mar 21 22:32:51 dev-pi s0vz: After update curl handle</div><div>Mar 21 22:32:51 dev-pi s0vz: Got something, ret > 0</div><div>Mar 21 22:32:51 dev-pi s0vz: after read</div><div>Mar 21 22:32:51 dev-pi s0vz: CURL: <a href="http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948371847">http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948371847</a></div><div>Mar 21 22:32:51 dev-pi s0vz: After update curl handle</div><div>Mar 21 22:32:51 dev-pi s0vz: Got something, ret > 0</div><div>Mar 21 22:32:51 dev-pi s0vz: after read</div><div>Mar 21 22:32:51 dev-pi s0vz: CURL: <a href="http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948371850">http://localhost:80/middleware.php/data/30afb000-d080-11e3-be6a-33242cd61de6.json?ts=1426948371850</a></div><div>Mar 21 22:32:51 dev-pi s0vz: After update curl handle</div><div>Mar 21 22:32:51 dev-pi s0vz: Got something, ret > 0</div><div>Mar 21 22:32:51 dev-pi s0vz: after read</div><div>...</div></div><div><span style="line-height:1.5;font-size:13.1999998092651px"><br></span></div><div><span style="line-height:1.5;font-size:13.1999998092651px">Der Prozess schickt dann bis zum Reboot durch den watchdog Requests an den Webserver. Aus irgend einem Grund scheint der poll vom file descriptor immer einen Wert >0 zu bekommen. Mir ist völlig unklar was da schief läuft oder was sich am System geändert hat (außer Standard-Updates). </span><span style="font-size:13.1999998092651px;line-height:1.5">vzlogger mit s0 hab ich nicht ans Laufen bekommen, daher behelfe ich mir momentan mit einem selbst geschriebenen Python Script. Hoffe das hilft weiter, vielleicht bekomme ich es ja dann auch bei mir wieder hin. Wenn ich weitere Tests machen soll einfach kurz Bescheid sagen.</span></div><div><span style="line-height:1.5;font-size:13.1999998092651px"><br></span></div><div><span style="line-height:1.5;font-size:13.1999998092651px">Gruß</span></div><div><span style="line-height:1.5;font-size:13.1999998092651px">André</span></div><div><br></div></div><br><div class="gmail_quote">Andreas Goetz <<a href="mailto:cpuidle@gmail.com">cpuidle@gmail.com</a>> schrieb am Do., 26. März 2015 um 12:55 Uhr:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">PS.: Urpsünglich hast Du geschrieben s0vz hätte 98% Last. Was stimmt denn nun?<br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-03-26 12:55 GMT+01:00 Andreas Goetz <span dir="ltr"><<a href="mailto:cpuidle@gmail.com" target="_blank">cpuidle@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Ich frag mich was da los ist. Wenn Du viele Impulse pro Sekunde schreibst braucht es viele Apache Instanzen. Siw macht s0vz keine Aggregation warum wir gerade versuchen es durch vzlogger zu ersetzen (wip).<br><br></div>Wieviele Impulse liefern denn Deine Meter?<br><br></div>Viele Grüße,<br></div>Andreas<br><br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">2015-03-26 12:52 GMT+01:00 a b <span dir="ltr"><<a href="mailto:test48517@googlemail.com" target="_blank">test48517@googlemail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Hallo Udo,<br><br></div>Neuinstallation von s0vz hat leider nichts gebracht, mittlerweile bin ich allerdings der Meinung das nicht s0vz das Problem ist, sondern die geöffneten Apache Instanzen den RasPi zumüllen.<br></div>Anbei ein Screenshot der den Auszug aus top zeigt, nachdem ich etwa eine Minute davor Apache gestartet habe. <br></div>Die CPU-Leistung von s0vz bewegt sich immer irgendwo zwischen 40 und 100%.<br><br></div>Gruß,<br></div>Martin<br><div><div><div><div><br><br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">Am 24. März 2015 um 20:58 schrieb Udo1 <span dir="ltr"><<a href="mailto:udo1@gmx.net" target="_blank">udo1@gmx.net</a>></span>:<div><div><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hallo Martin,<br>
<br>
Am 24.03.2015 um 17:22 schrieb a b:<span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Leider hat der Ramdisk Versuch nicht die erhoffte Lösung gebracht.<br>
</blockquote></span>
Also jedes mal wenn du s0vz startest geht die CPU-Leistung auf 98%?<br>
<br>
Installier einfach mal s0vz neu.<br>
<a href="https://github.com/w3llschmidt/s0vz" target="_blank">https://github.com/<u></u>w3llschmidt/s0vz</a><br>
<br>
Gruß<br>
Udo<br>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</blockquote></div>