NEWS
SOLVED (GELÖST) --- Probleme mit iobroker - bin mit meinem Latein am Ende
-
eine fehlerquelle könnte z.b ein gerät sein, das aus einem standby aufwacht (z.b. netzwerkdrucker) - eine doppelte ip adresse (zwei geräte habene eine ipadresse) nutzt - kurz für unordnung sorgt und sich wieder schlafen legt. es sind ja (außer sonoff) nur temporäre fehler. vielleicht hast du einen sonoff mit doppelter ip ?
aber so wie es im moment aussieht, ist das große problem mit dem script schon mal gefunden - dort scheint doch etwas nicht zu stimmen
evtl haben wir hier noch ein zweites kleines thema - im netzwerk
vielleicht kannst du mal ein wenig von deinem netzwerk berichten - router (evt. mehrere) , dhcp oder feste ip,
beispiele
[31merror[39m: luftdaten.0 Error: connect ECONNREFUSED 192.168.1.21:80
[31merror[39m: spotify-premium.0 erron in request: Error: getaddrinfo EAI_AGAIN api.spotify.com:443
[31merror[39m: spotify-premium.0 erron in request: 500
[31merror[39m: telegram.0 polling_error:EFATAL, EFATAL: Error: read ETIMEDOUT
....seltsam ist auch, dass die sonoff probleme plötzlich um 00:59 aufhören -weißt du evtl. noch , was du um diese zeit getan hast ?
-
Hallo, Ich denke das ich das Problem gelöst habe:
Habe wie schon oben gesagt 17 Adapter auf dem Master laufen. zusätzlich habe ich nun die aktuelle JS-Controller Version drauf. Das "npm rebuild" war der entscheidende Hinweis (denke ich) Danach und einem Neustart des Servers. wurde plötzlich die wahre Version auf dem Master angezeigt ! Dies war die veraltete 1.42. Seitdem ich die aktuelle 1.57 und nur noch 17 Adapter auf dem Master am Laufen habe läuft der Master superstabil . Alle restlichen (benötigten) Adpater ziehe ich jetzt so nach und nach auf den Slave um. Damit sollte das Problem gelöst sein.
Vielen Dank für die vielen helfenden Hinweise aus dem Forum !!!
Das schätze ich so an diesem Forum.
Grüße aus Thüringen
crepp -
@liv-in-sky sagte in Probleme mit iobroker - bin mit meinem Latein am Ende:
eine fehlerquelle könnte z.b ein gerät sein, das aus einem standby aufwacht (z.b. netzwerkdrucker) - eine doppelte ip adresse (zwei geräte habene eine ipadresse) nutzt - kurz für unordnung sorgt und sich wieder schlafen legt. es sind ja (außer sonoff) nur temporäre fehler. vielleicht hast du einen sonoff mit doppelter ip ?
So ein Thema hatten wir auch in diesen Thread, die Lösung war im Beitrag 133!
Link Text -
@liv-in-sky
Ich habe im LAN 2 Fritzboxen u. 2 Repeater. Eine macht DHCP und ist gleichzeitig für die Inet Verbindung zuständig. alle wichtigen Geräte haben eine feste IP . Netzwerkdrucker gibt es nicht. Was natürlich auffällt (auch jetzt mit nur noch 2 aktiven scripts) ist der Peak immer zur vollen Stunde. Der schaukelt sich zwar nicht so hoch wie vorher (und führt deswegen wohl auch nicht zum einfrieren des systems aber ist trotzdem nicht schön. Habe gestern leider nichts tun können. Ich hoffe es wird heute was. auf jeden Fall werde ich mir als nächstes meine NetzConfig noch mal genau anschauen und dann berichten.
Grüß
Torsten -
@liv-in-sky sagte in Probleme mit iobroker - bin mit meinem Latein am Ende:
seltsam ist auch, dass die sonoff probleme plötzlich um 00:59 aufhören -weißt du evtl. noch , was du um diese zeit getan hast ?
Nein, die Zeit sagt mir nichts.
-
Wollte mich mal wieder melden, da ich die letzten Tage etwas kränklich war...
also ich habe das Problem mit dem Sonoff adapter behoben (terminated with code 156). Die wurden doch tatsächlich jede Minute neu gestartetMit den extremen Loadwerten ist es nur bedingt besser geworden.
aktuell läuft der iobroker nur als Master ohne Slave Rechner. Javascript mit zwei aktiven scripts. Obwohl man sagen muss das es schon besser geworden ist (Habe z.b. keine komplettausfälle mehr --> Einfrieren des Servers)
habe ich doch ab und zu extreme Spitzen. Einerseits wenn ich Adapter-Updates über die admin-Seite einspiele, andrerseits auch völlig ohne Anlass (zumindest habe ich noch keinen Grund erkannt)
Ich habe die sonoff-logs erweitert, deswegen sind sie z. z. wesentlich größer als beim letzten Mal.
iobroker.2019-04-12.log
Ich habe mir das log um die Zeit vor dem Peak (18:26) noch mal genau angeschaut. Ich habe nix finden können was in einem zusammenhang mit dem iobroker stehen könnte. Man sieht im log (m.M.) nur die Auswirkungen: Javascript kackt als erstes ab.
Werde jetzt mit dem atop tool mal ein bisschen mitloggen was auf Systemebene läuftGrüße
Torsten -
@crepp1967
Eine ungewollte Schleife in einem Script erscheint auch nicht im Log.
Dazu müsste schon etwas programmiert werden -
Hallo, ich wollte mal kurz ein Zwischenstand geben:
Das Problem ist nach wie vor (Habe Javascript mit einem aktiven Script laufen). Der Server kommt in unregelmäßigen Abständen (meist kurz nach um, aber nicht nur) auf 10-30 CPU Load. Zu diesem Zeitpunkt ist er nicht erreichbar und steht faktisch still. In den letzten 14 Tagen habe ich mit atop logs gesammelt und sie jetzt auch mal auszugsweise ausgewertet. Ich sehe das der Swapspeicher voll ist und auch der RAM ist sehr eng zu dem Zeitpunkt. Aber ich sehe nicht die Ursache.
In 14 Tagen musste ich den Server 2x resetten (Stecker ziehen) damit er überhaupt wieder zugreifbar ist. Ich komme langsam ins Grübeln ob mein System überhaupt mit einem Raspi machbar ist (Ich habe 30 aktive Adapter inkl. admin und javascript) Ich hatte aber vorher auch mit Master u. slave experimentiert (Adapter auf beide aufgeteilt). Die CPU Spitzen auf dem Master waren genau so da. Nun benötige ich Hilfe beim Einkreisen des Problems. Wer kann mir helfen die atop-Logs zu analysieren ? Da sie ziemlich gross sind kann ich sie nicht hier hochladen.Grüße
crepp -
@crepp1967
30 Adapter sind deutlich über der grenze für 1gb ram.Wenn das system wegen RAM mangel anfängt zu swappen schaukelt es sich durch die verzögerung beim I/O natürlich auf und die Load geht in die Höhe.
Steckerziehen ist da nicht die Lösung, da danach alles defekt sein kann, sondern viel Geduld. Und zeit in der nichts läuft. -
Ich würde die Hardware wechseln (wegen RAM)...........Nuc, Nas...... Meine Meinung.......
-
hi @crepp1967
du hast 30 adapter und nur ein laufendes script - das heißt, du könntest doch auch mal alle adapter, die nicht benötigt werden, auf pause stellen. bei einem script benötigst du doch nur den admin, den js und den adapter, der die benötigten datenpunkte schreibt.
da du ziemich neue node,.. versionen hast, hast du vielleicht beim update kein "npm rebuild" auf der console gemacht - vielleicht spinnt ja einer der älteren adapter. wenn du dir sicher bist, dass das einzige script keine endlosschleife erzeugt, müßte man somit einkreisen können, ob ein adapter oder resourcen problem ist. einfach stückweise ein paar adapter hinzuaktivieren und etwas warten.
poste mal zur sicherheit dein einziges aktives script, damit wir da kurz reinschauen können.
poste auch mal ein bildschirmbild von der instanz-tab -
@Homoran Wieviele Adapter sind denn für 1Gb zu empfehlen ? Ich möchte erst mal nur ein zuverlässiges System. Da kann ich auch auf einige Adapter verzichten (Javascript + Homematic sind natürlich unverzichtbar)
Über den Ausbau der Hardware werde ich wohl nicht herum kommen ... Aber ich dachte mir wenn ich die Adpater zu gleichen Teilen auf die 2 Raspis (3B+) verteile, funktioniert es. Aber das war ja auch ein Fehlschluss. (siehe Threadstart)
Gruß
crepp -
@crepp1967 sagte in Probleme mit iobroker - bin mit meinem Latein am Ende:
Wieviele Adapter sind denn für 1Gb zu empfehlen ?
Sicher sollte es mit 15-20 gehen.
Es kann auch mit mehr klappen und mit weniger nicht, je nachdem wieviel RAM die verwendeten adapter benötigen.Spätestens wenn das System zu swappen beginnt ist Alarm angesagt.
-
@Homoran Ok dann werde ich erst mal alles "überflüssige" deaktivieren und dann sehen wir weiter...
Gruß
crepp -
Habe seit gestern abend 18 laufende Adapter. In der Nacht keine CPU-Spitzen. Alles bis max. CPU-Load 1 also sehr zufriedenstellend.
Heute früh habe ich 2 Adapter-Updates installiert. Dabei kam es zu dieser Spitze:
Ganz blöd ist dass der admin-Adapter abgestürzt ist ...
Gruß
crepp -
Ich sehe dasss die Peaks scheinbar immer nur zu vollen Stunden auftreten. Hast du ggf. einige Adapter, die nach Zeitplan ihren Dienst verrichten - und dann ggf. alle gleichzeitig? Wenn ja, solltest du die mal so konfigurieren, dass sie zu krummen Zeiten starten und so die Last verteilen.
-
@AlCalzone Hallo, Das hatten wir weiter oben schon, meistens kommen die Peaks zu vollen Stunde (kurz nach um) aber es gibt auch genügend Beispiele wo sie mitten in der Stunde kommen.
-
@liv-in-sky
Hier ist das Script:// Todoist Script zur Erstellung eines HTML Codes zur Einbindung in VIS mittels "basic - String (unescaped)" Widget // Scriptversion: v0.2 // Ergänzungen tempestas, Stand 17.3.2018 // https://forum.iobroker.net/viewtopic.php?f=21&t=12563 // https://forum.iobroker.net/viewtopic.php?f=21&p=133205#p133205 //Erforderliche Angaben: var APItoken = "****"; // API Token kann in den Todoist Settings auf der Webseite ausgelesen werden var debug = false; var idEinkaufsliste= "javascript.0.Todoist.Alexa-Einkaufsliste"; var force = true; //Weitere Parameter ggf. anpassen: var instanz = 'javascript.0'; instanz = instanz + '.'; // Instanz fuer die Datenpunkte definieren var pfad = 'Todoist.'; // Pfad definieren // var regexTrigger = /^javascript\.0\.Einkaufsliste\.Items\..*$/; // Trigger analog der manuellen Einkaufsliste, brauchst du nicht, deaktiviert schedule("*/2 * * * *", checkTODOIST); // Abfragezeit: alle 2 Minuten // ********************************************************* // Scriptbeginn - Ab hier nichts mehr ändern! // ********************************************************* createState(instanz + pfad +'telegramBtn', false, force, { // sendet die Liste via Telegram name: 'Send Telegram', desc: 'Sendet Telegram Einkaufsliste', type: 'boolean', role: 'state', unit: '' }); var idTelegram = instanz + pfad +"telegramBtn"; function sendTelegram() { var telegramtext = getState(idEinkaufsliste).val.replace(/<br>/g , "\n"); // telegram Liste formatieren, entfernt den Zeilenumbruch für vis und ersettz mit Zeilenumbruch Telegram sendTo('telegram.0', { // Nachricht per Telegram senden text: "Bitte mitbringen:\n\n" + telegramtext }); setStateDelayed(idTelegram, false, 2000); } // Trigger Telegram on(idTelegram, function(obj){ // trigger für Telegram if(obj.state.val === true){ sendTelegram(); } }); function checkTODOIST() { var APIprojectsURL = "https://beta.todoist.com/API/v8/projects?token="+APItoken; var APItaskURL = "https://beta.todoist.com/API/v8/tasks?token="+APItoken; var request = require("request"); var ToDoListen = []; // wird mit IDs der TO-DO Listen befuellt var ToDoListen_names = []; // wird mit Namen der TO-DO Listen befuellt request(APIprojectsURL, function (error, response, body) { try{ var projects_json = JSON.parse(body); for (k = 0; k < projects_json.length; k++) { var projects = parseInt(projects_json[k].id); var projects_name = JSON.stringify(projects_json[k].name); projects_name = projects_name.replace(/\"/g, ""); //entfernt die Anfuehrungszeichen aus dem quellstring ToDoListen[ToDoListen.length] = projects; ToDoListen_names[ToDoListen_names.length] = projects_name; createState(instanz + pfad + ToDoListen_names[k], {def: 'false',type: 'string',role: 'html', name: ToDoListen_names[k]+' HTML String'}); if(debug) log("Datenpunkt "+ToDoListen_names[k]+" erstellt.", "info"); createState(instanz + pfad + ToDoListen_names[k]+'.TaskID', {def: 'false',type: 'string',role: 'string', name: ToDoListen_names[k]+' Task IDs'}); if(debug) log("Datenpunkt "+ToDoListen_names[k]+'.TaskID'+" erstellt.", "info"); } } catch(err) {log (err.message)} }); setTimeout(function() { try{ request(APItaskURL, function (error, response, body) { var json = JSON.parse(body); for (j = 0; j < ToDoListen.length; j++) { var HTMLstring = ""; setState(instanz + pfad + ToDoListen_names[j], "leer"); for (i = 0; i < json.length; i++) { var Liste = parseInt(json[i].project_id); var content = JSON.stringify(json[i].content); content = content.replace(/\"/g, ""); //entfernt die Anfuehrungszeichen aus dem quellstring content = content[0].toUpperCase() + content.substring(1); // Macht den ersten Buchstaben des strings zu einem Grossbuchstaben var taskurl = JSON.stringify(json[i].url); taskurl = taskurl.replace(/\"/g, ""); if (Liste == ToDoListen[j]) { if(debug) log ("["+content+"] in "+ToDoListen_names[j]+" gefunden", "info"); HTMLstring = HTMLstring+content+"<br>"; // mit Link: HTMLstring = HTMLstring+"<tr><td><li><a href=\""+taskurl+"\" target=\"_blank\">"+content+"</a></li></td></tr>"; setState(instanz + pfad + ToDoListen_names[j], HTMLstring); // "<table><>"+HTMLstring+"</ul></table>"); } } } }); } catch(err) {log(err.message)} }, 1000); setTimeout(function() { // legt IDs der einzelnen Tasks in Unterordnern an request(APItaskURL, function (error, response, body) { var json = JSON.parse(body); for (j = 0; j < ToDoListen.length; j++) { var HTMLstring = ""; setState(instanz + pfad + ToDoListen_names[j] +'.TaskID', "leer"); for (i = 0; i < json.length; i++) { var Liste = parseInt(json[i].project_id); var taskid = JSON.stringify(json[i].id); if (Liste == ToDoListen[j]) { if(debug) log ("["+taskid+"] in "+ToDoListen_names[j]+" gefunden", "info"); HTMLstring = HTMLstring+taskid+"<br>"; // mit Link: HTMLstring = HTMLstring+"<tr><td><li><a href=\""+taskurl+"\" target=\"_blank\">"+content+"</a></li></td></tr>"; setState(instanz + pfad + ToDoListen_names[j]+'.TaskID', HTMLstring); // "<table><>"+HTMLstring+"</ul></table>"); } } } }); }, 1000); }
-
@liv-in-sky
Und hier ist mein Instanzen -Tab:
-
@crepp1967 sagte in Probleme mit iobroker - bin mit meinem Latein am Ende:
Habe seit gestern abend 18 laufende Adapter. In der Nacht keine CPU-Spitzen. Alles bis max. CPU-Load 1 also sehr zufriedenstellend.
Heute früh habe ich 2 Adapter-Updates installiert. Dabei kam es zu dieser Spitze:
Ganz blöd ist dass der admin-Adapter abgestürzt ist ...
Gruß
creppwas sagt den das log-file an diesem zeitpunkt - absturz des admin-adapters - könntest du das in einem txt file posten
eine spitze in der last bei einer installation ist normal - ein absturz des admin adapters eher nicht
-
2019-05-03 06:40:08.714 - info: host.iobroker instance system.adapter.yr.0 terminated with code 0 (OK) 2019-05-03 06:40:12.815 - info: host.iobroker instance system.adapter.luftdaten.0 terminated with code 0 (OK) 2019-05-03 06:42:00.031 - info: host.iobroker instance system.adapter.todoist.0 started with pid 30294 2019-05-03 06:42:01.226 - info: todoist.0 starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.todoist, node: v8.16.0 2019-05-03 06:42:02.378 - info: host.iobroker instance system.adapter.todoist.0 terminated with code 0 (OK) 2019-05-03 06:44:00.049 - info: host.iobroker instance system.adapter.todoist.0 started with pid 30551 2019-05-03 06:44:01.212 - info: todoist.0 starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.todoist, node: v8.16.0 2019-05-03 06:44:02.383 - info: host.iobroker instance system.adapter.todoist.0 terminated with code 0 (OK) 2019-05-03 06:45:00.048 - info: host.iobroker instance system.adapter.luftdaten.0 started with pid 30700 2019-05-03 06:45:00.102 - info: host.iobroker instance system.adapter.dwd.0 started with pid 30705 2019-05-03 06:45:02.051 - info: dwd.0 starting. Version 2.4.3 in /opt/iobroker/node_modules/iobroker.dwd, node: v8.16.0 2019-05-03 06:45:03.493 - info: host.iobroker instance system.adapter.dwd.0 terminated with code 0 (OK) 2019-05-03 06:45:12.438 - info: host.iobroker instance system.adapter.luftdaten.0 terminated with code 0 (OK) 2019-05-03 06:46:00.023 - info: host.iobroker instance system.adapter.todoist.0 started with pid 30873 2019-05-03 06:46:01.176 - info: todoist.0 starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.todoist, node: v8.16.0 2019-05-03 06:46:02.313 - info: host.iobroker instance system.adapter.todoist.0 terminated with code 0 (OK) 2019-05-03 06:47:41.440 - info: iobroker upgrade mqtt 2019-05-03 06:47:43.994 - info: iobroker Update mqtt from @2.0.4 to @2.1.0 2019-05-03 06:47:44.309 - info: iobroker upgrade node-red 2019-05-03 06:47:44.879 - info: iobroker NPM version: 6.4.1 2019-05-03 06:47:45.823 - info: iobroker npm install iobroker.mqtt@2.1.0 --unsafe-perm --production --save --prefix "/opt/iobroker" (System call) 2019-05-03 06:47:46.302 - info: iobroker Update node-red from @1.7.1 to @1.8.0 2019-05-03 06:47:47.129 - info: iobroker NPM version: 6.4.1 2019-05-03 06:47:47.936 - info: iobroker npm install iobroker.node-red@1.8.0 --unsafe-perm --production --save --prefix "/opt/iobroker" (System call) 2019-05-03 06:48:00.080 - info: host.iobroker instance system.adapter.todoist.0 started with pid 31175 2019-05-03 06:48:00.111 - info: host.iobroker instance system.adapter.ical.0 started with pid 31178 2019-05-03 06:48:04.719 - info: todoist.0 starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.todoist, node: v8.16.0 2019-05-03 06:48:19.767 - info: host.iobroker instance system.adapter.todoist.0 terminated with code 0 (OK) 2019-05-03 06:48:27.197 - info: host.iobroker instance system.adapter.ical.0 terminated with code 0 (OK) 2019-05-03 06:50:13.720 - info: host.iobroker instance system.adapter.todoist.0 started with pid 31433 2019-05-03 06:50:13.746 - info: host.iobroker instance system.adapter.luftdaten.0 started with pid 31434 2019-05-03 06:52:18.825 - warn: host.iobroker instance system.adapter.todoist.0 already running with pid 31433 2019-05-03 06:57:36.850 - error: spotify-premium.0 erron in request: Error: socket hang up 2019-05-03 06:57:37.835 - warn: host.iobroker instance system.adapter.todoist.0 already running with pid 31433 2019-05-03 06:57:39.036 - error: parser.0 Cannot read link "http://forum.iobroker.net/": Error: socket hang up 2019-05-03 06:57:39.465 - info: iobroker Killed 2019-05-03 06:57:39.481 - error: iobroker host.iobroker Cannot install iobroker.node-red@1.8.0: 137 2019-05-03 06:57:39.509 - info: iobroker exit 25 2019-05-03 06:57:39.518 - warn: host.iobroker instance system.adapter.luftdaten.0 already running with pid 31434 2019-05-03 06:57:39.840 - warn: admin.0 Reconnection to DB. 2019-05-03 06:57:39.853 - warn: spotify-premium.0 Reconnection to DB. 2019-05-03 06:57:39.902 - warn: tr-064.0 Reconnection to DB. 2019-05-03 06:57:40.139 - debug: javascript.0 statesDB connected 2019-05-03 06:57:39.990 - warn: web.0 Reconnection to DB. 2019-05-03 06:57:40.107 - warn: backitup.0 Reconnection to DB. 2019-05-03 06:57:40.162 - warn: host.iobroker instance system.adapter.todoist.0 already running with pid 31433 2019-05-03 06:57:40.289 - warn: spotify-premium.0 Reconnection to DB.
6:57
Drei Zeilen, das ist alles. Im atop-log sehe ich wesentlich mehr. aber das ist kein klartext...
Im atop weisst alles daraufhin dass es daran lag dass ich beide adapter gleichzeitig aktualisieren wollte (mqtt und node-red)
Ich werde also das in Zukunft vermeiden.Gruß
crepp