FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: CoolTux am 18 Juni 2016, 08:24:34

Titel: [AMAD2] Brauche Eure Info wie viele Geräte Ihr eingebunden habt!
Beitrag von: CoolTux am 18 Juni 2016, 08:24:34
Hallo AMAD User,

Ich benötige mal kurz Euro Hilfe. Mich würde interessieren wie viele Androidgeräte Ihr mit AMAD eingebunden habt? Grund ist das ich sporadisch seit einiger Zeit Fehler in der Form "can't write, to many open files" bekomme und das bei den Devices FHEMweb FHEMwebmobil und AMADCommBridge. Also alles was mit sockets zu tun hat.

Ich bilde mir ein das die Bridge irgendwann zu viele Clientsockets aufgemacht hat. Konnte das aber noch nicht genau feststelle.

Ich selbst habe 9 Geräte. Dazu habe ich bei 3 Tablets FHEMWebmobil und bei 2 Tablets zusätzlich FHEMweb offen.


Grüße
Leon
Titel: Antw:[AMAD2] Brauche Eure Info wie viele Geräte Ihr eingebunden habt!
Beitrag von: smurfix am 18 Juni 2016, 09:18:02
Erster Schritt: "lsof -p FHEM_PROZESS"; das zeigt dir, wer da seine Sockets/Dateien/etc. nicht korrekt schließt.
Titel: Antw:[AMAD2] Brauche Eure Info wie viele Geräte Ihr eingebunden habt!
Beitrag von: CoolTux am 18 Juni 2016, 09:34:58
Vielen Dank. Ist bekannt. Bin nur noch nicht dazu gekommen  ;D


Grüße
Titel: Antw:[AMAD2] Brauche Eure Info wie viele Geräte Ihr eingebunden habt!
Beitrag von: CoolTux am 18 Juni 2016, 09:41:17
Kurz. Falls da noch wer liest.


lsof -p FHEM_PROZESS
ls -all /proc/FHEM_PROZESS/fd


Und damit man nicht erst unnötig die FHEM PID suchen muss


lsof -p $(ps -ef | grep "fhem.pl" | grep -v grep | awk '{print $2}')


Und ich brauche nur die TCP Sockets

lsof -p $(ps -ef | grep "fhem.pl" | grep -v grep | awk '{print $2}') | grep TCP
Titel: Antw:[AMAD2] Brauche Eure Info wie viele Geräte Ihr eingebunden habt!
Beitrag von: PatrickR am 19 Juni 2016, 00:37:52
Hallo Marko,

ich hatte das Problem vor kurzem auch und zwar mit nur einem Androidgerät. Tatsächlich war AMAD2 verantwortlich, was man nicht direkt rausfinden konnte, da die Filedeskriptoren fhem.pl zugeordnet sind.

Daher hatte ich mir auf Rudis Tipp aufbauend ein Skript geschrieben, das regelmäßig die FDs und die zugehörigen Module wegschreibt:

#!/bin/bash

while [ 1 ]; do
echo -e '\n\n--------------------------------------------------' >> /tmp/fdlog
date >> /tmp/fdlog
echo -e "\nlist .* FD\nquit\n"|nc localhost 7072|awk '/Bye.../ {next} NR >=8 {print}'|tee -a /tmp/fdlog
sleep 1m
done


Die weggeschriebenen FDs konnte man dann im Nachhinein nutzen, um Ausgabe von lsof auf einzelne Module zurückzuführen.

Das Problem verschwand, als ich das Tablet auf das aktuelle Flowset aktualisierte.

Im übrigen sehr nett wenn man dank der verbrauchten Filedeskriptoren nichtmal mehr auf das WebGUI oder telnet kommt, um FHEM sauber neuzustarten...

Patrick
Titel: Antw:[AMAD2] Brauche Eure Info wie viele Geräte Ihr eingebunden habt!
Beitrag von: CoolTux am 19 Juni 2016, 06:35:38
Hallo Patrick,

Ich habe es im Moment t so gemacht das ich alle 10 min ein losf -p FHEM-PID wegschreibe.


#!/bin/bash
DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME >> /root/TcpSocketList.txt
lsof -p $(ps -ef | grep "fhem.pl" | grep -v grep | awk '{print $2}') | grep TCP >> /root/TcpSocketList.txt
exit 0




Grüße
Titel: Antw:[AMAD2] Brauche Eure Info wie viele Geräte Ihr eingebunden habt!
Beitrag von: CoolTux am 19 Juni 2016, 07:03:03
Nach vielen hin und her und überlegen habe ich meinen Designfehler erkannt. Habe auch schon eine Idee wie ich es besser machen kann. Frage ist nur ob es Automagic so mit macht. Wird aber 2-3 Wochen dauern.


Grüße
Titel: Antw:[AMAD2] Brauche Eure Info wie viele Geräte Ihr eingebunden habt!
Beitrag von: CoolTux am 19 Juni 2016, 13:37:16
WICHTIG!!!
Neue Infos (https://forum.fhem.de/index.php/topic,50108.msg463511.html#msg463511)