IPS frisst unaufhaltsam Speicher (gelöst!)

Hallo,

das hatte ich festgestellt.
Ich hatte die Comport einfach für eine Weile geschlossen und es wurde besser.
Versuch doch einmal die Comport zuschliessen und erst beim abfragen wieder zu öffnen.
Klar ist es schwer bei deinen Intervallen zu Abfrage, wäre ja mal ein Ansatz.

Hallo Karlheinz,

Das ist mein Problem. Die Daten die über COM1,2 reinkommen benötige ich unbedingt um die wetterbedingte Haussteuerung am Leben zuerhalten.
Ich habe jetzt aber mal den COM für den Leveljet(Heizöl) deaktiviert (Vorrat sollte nicht so schnell verebben :)). Darauf kann ich vorläufig verzichten und ich werde sehen, ob der Speicherverbrauch weiterhin so rasant anwächst (logging).
Da lassen sich sicherlich Schlüsse draus ziehen, wo die IPS-Programmierer ansetzen könnten.
Ich melde mich diesbezüglich wieder.
Evtl. kann die Ursache auch schon vorher entdeckt werden… dass IPS wieder Spass macht;)

Ich würde trotzdem, die Comports für die Wetterstationen öffenen und schließen.
Wetterdaten alle 5 Minute reichen doch oder?

Aber nicht, wenn man zusätzlich noch Windböen „einfangen“ will… ich bin Wettermelder und ambitionierter Wetterbeobachter… in 5 Minuten kann einem da einiges „durch die Lappen“ gehen :smiley:
Die Wetterstation über COM2 sendet übrigens von sich aus alle 2 Sekunden Daten… da wird es mit Öffnen und Schließen des COM-Ports eh schwierig.

Na ja, „schaumer“ mal, ob durch die Deaktivierung des „3.“ COM-Ports eine Veränderung eintritt, dann kann man da ansetzen.
Funktionieren muss das jedenfalls auch!

Bei mir laufen 7 Comports, 6 USBports, 16 Registervariablen und einige Clientsocket und das ganze andere Geschirr. :smiley: Da rauschen die Daten teilweise im Sekundentakt durch.
der Speicherverbrauch ist bei mir ganz normal so um die 200MB.

IPS läuft jetzt seit dem letzten Update am 16.1.11. Speicherauslastung im Moment 198 MB.

Ja Rainer, nach anfänglichen Beobachtungen, muss ich dir da Recht geben, denn die Speicherauslastungkurve zeigt weiterhin wie vorher die gleiche Tendenz, aber wo soll ich deiner Meinung nach noch ansetzen?

Der IPS(.exe)-Dienst startet bei mir mit ca. 50-55 MB und einen Tag später sind es 200 MB.

An den Scripten wurde nichts verändert. Any ideas?

Festgestellt habe ich das eigentlich erst, dass Webfront kaum noch bedienbar war und mehr als träge bei der Bedienung an den „Terminals“ reagierte. Nach Überprüfung mit Taskmanager stellte ich eine Speichernutzung von 465 MB durch IPS fest.
Nur ein Dienstneustart schaffte Abhilfe.

465 MB sind dann doch schon heftig, sollte aber mit deinem Webfront nix zutun haben, es seidenn Du hast nur 512 MB Speicher. Sieh mal was sich dein Browser an Speicher genehmigt. Mein FF gönnt sich ab und an auch mal um die 350 MB, dann wird das Webfront auch zäh. :smiley:

Nachdem sich gestern nach kurzer Zeit schon herausstellte, dass das Abschalten wenigstens eines COM-Ports keine Veränderung beim Ansteigen der Speicherlast brachte, ich es aber trotzdem bis heute so weiterlaufen ließ, hat es sich ertsmal bestätigt, dass es daher wohl auch nicht kommen kann.
Da ich aber jedem Verdacht nachgehe, war es mir den Versuch trotzdem wert.

Nun habe ich aber überhaupt keine Idee mehr, außer dass ich die Homematic-CCU mal von FW-Stand 1.501 auf 1.502 resp. 1.503 bringen kann, aber dazu eine Frage vorab…
Hat sich in letzter Zeit (2-3 Monate) am Handling IPS<->CCU etwas geändert?
Wenn nicht, dann kann ich mir das eigentlich ersparen, weil es sonst eigentlich ganz gut läuft.

Ansonsten ziehe ich jetzt täglich, wie oben erwähnt, die Reissleine und starte den Dienst automatisch neu. Heute hat das schonmal ganz gut funktioniert.

Überprüf mal, ob nach ein paar Stunden die Buffer deiner Register Variable Instanzen nicht irgendwie voll laufen… echo strlen(RegVar_GetBuffer($id)) einfach mal auf alle Instanz ausführen…

paresy

Das habe ich gleichmal probiert und bekomme als Ergebnis jeweils „0“.

Der Speicherverbrauch ist nach Dienstneustart vor 2h10min mittlerweile wieder um 25MB gestiegen. Das sollte für diesen Test doch ausreichend sein?!

Nein. Am Anfang kann der Speicher leicht ansteigen. Ich würde nach 2-3 Std nochmal probieren.

paresy

OK, dann probiere ich das morgen nochmal.
Das sollte dann ausreichend sein :wink:

Einfach mal ausführen und Du hast alle 5 Minuten einen Eintrag in den Logs:

<?php
$sizeNames = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB');
$ids = IPS_GetInstanceListByModuleID('{F3855B3C-7CD6-47CA-97AB-E66D346C037F}');
$size = array();
foreach ($ids as $id)
{
    $size = strlen(RegVar_GetBuffer($id));
    $size = $size ? round($size / pow(1024, ($i = floor(log($size, 1024)))), 2).' '.$sizeNames[$i] : '0 B';
    $sizes[] = '#'.$id.': '.$size;
}
IPS_LogMessage('RegisterVariable', '[Buffer Usages] '.implode($sizes, ', '));
IPS_SetScriptTimer($IPS_SELF, 5*60);
?>

Klar, läuft …ich gehe ja inzwischem jeden Verdacht nach:(

Hallo Horst und paresy,

anbei die geloggten Zustände.
Wie ich meine nichts äußerst ungewöhnliches, bis auf zwischen 1:16-1:36 Uhr und 11:26-11:56 Uhr. Die Registervariable gehört zur Wetterstation, die alle 2 Sekunden Werte übermittelt.
Ansonsten blieb nichts im Buffer hängen, was die enorm gestiegene Speicherlast erklären würde…

tog.txt (36.7 KB)

Hallo paresy und Horst,

leider funktioniert das mit dem Dienstneustart per psservice.exe auch nicht so sehr zuverlässig, den das deininitialisieren hängt dann irgendwo, oder es gibt Probleme, die laufenden Scripts zu terminieren.
Es hilft nur ein System-Reboot. Das habe ich dann auch wieder getan und hatte heute eine Fehlermeldung direkt beim Neustart in der Log-Datei.
Keine Ahnung, ob das zur Fehlerfindung beitragen kann, aber ich poste sie eben mal. Die FHZ1300 (Fehlermeldung: Could not open Device) hängt übrigens über einem Silex an IPS.

04.02.2011 16:56:13.359 |     0 | MESSAGE | Kernel               | Füge Kompatibilitätsfunktionen hinzu...
04.02.2011 16:56:13.593 |     0 | MESSAGE | Kernel               | Initialisierung abgeschlossen
04.02.2011 16:56:13.593 |     0 | MESSAGE | Kernel               | Wecke Nachrichtenschleife...
04.02.2011 16:56:13.859 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #1
04.02.2011 16:56:13.859 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:56:13.875 |     0 | SUCCESS | Kernel               | *** IPS BETRIEBSBEREIT
04.02.2011 16:56:14.718 | 40914 | MESSAGE | Event Control        | Start-Skript ausgeführt
04.02.2011 16:56:19.859 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #2
04.02.2011 16:56:19.859 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:56:26.869 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #3
04.02.2011 16:56:26.869 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:56:34.884 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #4
04.02.2011 16:56:34.884 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:56:43.889 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #5
04.02.2011 16:56:43.889 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:56:53.900 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #6
04.02.2011 16:56:53.900 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:57:04.916 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #7
04.02.2011 16:57:04.916 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:57:16.923 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #8
04.02.2011 16:57:16.923 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:57:29.936 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #9
04.02.2011 16:57:29.936 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:57:43.954 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #10
04.02.2011 16:57:43.954 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:57:58.475 |     0 | ERROR   | ScriptEngine         | date/time         : 2011-02-04, 16:57:58, 129ms
computer name     : STEUER1
user name         : SYSTEM <admin>
registered owner  : 
operating system  : Windows XP Service Pack 3 build 2600
system language   : German
system up time    : 2 minutes 44 seconds
program up time   : 2 minutes 20 seconds
processors        : 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz
physical memory   : 620/1015 MB (free/total)
free disk space   : (C:) 7,62 GB (H:) 34,78 GB
display mode      : 1280x960, 32 bit
process id        : $65c
allocated memory  : 60,19 MB
executable        : ips.exe
exec. date/time   : 2011-01-14 16:06
version           : 2.3.0.0
compiled with     : Delphi 2006/07
madExcept version : 3.0l
callstack crc     : $7e6a0ece, $2c55157c, $2c55157c
exception number  : 1
exception class   : EAccessViolation
exception message : Access violation at address 7E6A0ECE in module 'shell32.dll'. Read of address 00000004.

thread $90 (TExecuteThread):
7e6a0ece +000 shell32.dll
7e69e0b1 +091 shell32.dll                             SHParseDisplayName
7e69e602 +012 shell32.dll                             SHILCreateFromPath
7e6b997d +062 shell32.dll                             ShellExecuteExW
7e6f0f85 +108 shell32.dll                             ShellExecuteEx
7e6f120c +064 shell32.dll                             ShellExecuteA
005cbda9 +095 ips.exe     UPHPCompatibility  654   +8 TPHPCompatibility.IPS_Execute
00615f4b +837 ips.exe     UIPSScriptEngine   877 +136 TIPSScriptEngine.PHPLibraryFunctionsExecute
00611a9c +220 ips.exe     PHPSapi            283  +47 DispatchRequest
02c2095c +2fc php5ts.dll                              execute
02c030b0 +0f0 php5ts.dll                              zend_execute_scripts
02cb4ade +22e php5ts.dll                              php_execute_script
02c85bec +03c php5ts.dll                              zend_hash_apply
0061288d +1a5 ips.exe     PHPSapi            809  +73 TPHPClient.RunScript
0061b243 +7eb ips.exe     UIPSScriptEngine  2352 +108 TExecuteThread.Execute
00405944 +028 ips.exe     System             886   +0 ThreadWrapper
0058498d +00d ips.exe     madExcept                   CallThreadProcSafe
005849f7 +037 ips.exe     madExcept                   ThreadExceptFrame
>> created by thread $718 (TServiceThread) at:
0061a1e3 +083 ips.exe     UIPSScriptEngine  2106  +12 TExecuteThread.Create

main thread ($660):
00000000 +ffaa3238 ips.exe madStackTrace +0 StackAddrToStr
>> stack will be calculated soon

cpu registers:
eax = 00000000
ebx = 00040000
ecx = 00010000
edx = 00000400
esi = 039cdf24
edi = 00004000
eip = 7e6a0ece
esp = 039cdef8
ebp = 039cdf0c

stack dump:
039cdef8  01 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
039cdf08  00 00 00 00 44 df 9c 03 - 12 0f 6a 7e 00 00 00 00  ....D.....j~....
039cdf18  00 00 04 00 00 00 00 00 - 90 df 9c 03 5c 50 6a 7e  ............\Pj~
039cdf28  58 df 9c 03 00 00 00 00 - 14 f3 1b 00 08 3f 1d 00  X............?..
039cdf38  90 df 9c 03 d4 d1 69 7e - 54 df 9c 03 54 df 9c 03  ......i~T...T...
039cdf48  df 66 6a 7e ff 0f 00 00 - 90 df 9c 03 70 df 9c 03  .fj~........p...
039cdf58  a0 69 6a 7e 10 f3 1b 00 - 08 3f 1d 00 e0 b6 1d 00  .ij~.....?......
039cdf68  f8 e1 9c 03 10 f3 1b 00 - bc e1 9c 03 f3 d7 69 7e  ..............i~
039cdf78  00 00 00 00 00 00 00 00 - 08 3f 1d 00 58 7e 1d 00  .........?..X~..
039cdf88  bc e4 9c 03 58 7e 1d 00 - 08 3f 1d 00 20 3f 1d 00  ....X~...?...?..
039cdf98  ff ff ff ff 34 3f 1d 00 - 00 00 00 00 f4 80 67 7e  ....4?........g~
039cdfa8  00 00 00 00 00 00 00 00 - 00 00 05 00 ab 9e 97 d9  ................
039cdfb8  49 dc 00 00 24 e4 9c 03 - 4d de 69 7e 00 00 00 00  I...$...M.i~....
039cdfc8  08 3f 1d 00 84 64 1d 00 - e0 b6 1d 00 00 00 00 00  .?...d..........
039cdfd8  8e de 69 7e 18 00 00 00 - 1c e3 9c 03 00 00 00 00  ..i~............
039cdfe8  ec e4 9c 03 14 00 00 00 - 84 64 1d 00 09 00 00 00  .........d......
039cdff8  00 00 00 00 e0 b6 1d 00 - 08 3f 1d 00 44 3e 1d 00  .........?..D>..
039ce008  0e 7d 1d 00 00 00 00 00 - 00 00 00 00 00 00 00 00  .}..............
039ce018  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
039ce028  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
04.02.2011 16:57:58.962 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #11
04.02.2011 16:57:58.962 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:58:14.976 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #12
04.02.2011 16:58:14.976 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:58:31.996 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #13
04.02.2011 16:58:31.996 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:58:50.006 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #14
04.02.2011 16:58:50.006 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:59:09.022 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #15
04.02.2011 16:59:09.022 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:59:29.028 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #16
04.02.2011 16:59:29.028 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 16:59:50.040 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #17
04.02.2011 16:59:50.040 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 17:00:12.058 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #18
04.02.2011 17:00:12.058 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 17:00:35.065 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #19
04.02.2011 17:00:35.065 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 17:00:59.079 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #20
04.02.2011 17:00:59.110 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 17:01:24.129 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #21
04.02.2011 17:01:24.129 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 17:01:50.137 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #22
04.02.2011 17:01:50.137 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 17:01:55.116 | 31368 | MESSAGE | FTDI                 | FTDI - Geschlossen
04.02.2011 17:01:55.116 | 28386 | ERROR   | FHZ1X00PC            | Device is not open
04.02.2011 17:01:58.545 | 31368 | MESSAGE | FTDI                 | FTDI - Geschlossen
04.02.2011 17:01:58.545 | 28386 | ERROR   | FHZ1X00PC            | Device is not open
04.02.2011 17:02:08.550 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #23
04.02.2011 17:02:08.550 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 17:02:36.562 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #24
04.02.2011 17:02:36.562 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 17:03:05.575 | 31368 | MESSAGE | FTDI                 | FTDI - Öffne.... #25
04.02.2011 17:03:05.575 | 31368 | ERROR   | FTDI                 | Could not open Device
04.02.2011 17:03:30.330 |     0 | WARNING | Kernel               | Service Shutdown requested!
04.02.2011 17:03:30.330 |     0 | MESSAGE | Kernel               | *** IPS HERUNTERFAHREN
04.02.2011 17:03:31.019 |     0 | MESSAGE | Kernel               | Deinitialisiere...

hast du evtl die Toni-Tools installiert?

Nein… bisher nicht.

^na dann kann das zumindest als Ursache ausgeschlossen werden.

Bei meinem IPS bleiben die Werte seit 2-3 Tagen ziemlich konstant.

Hatte vorher auch das Problem, daß allein das Öffnen des Objektbaums den Speicherbedarf verdoppelt hat.

Verändert habe ich :

  1. Ein Sensor (von 6) war über den WDE1 zeitweise nicht erreichbar. Seit der Lageveränderung kein Ausfall mehr. (Abfrage des WDE1 über Registervariable und Script von Rainer, http://www.ip-symcon.de/forum/f53/wetterdatenempfaenger-usb-wde1-6977/)
  2. Habe die neuesten FTDI-Treiber runtergeladen, diese für die FHZ ergänzt und installiert.
    Link vergessen : http://www.ftdichip.com/Drivers/VCP.htm

Vielleicht hilft diese Info.

Ergänzung : Heute Abend hatte ich plötzlich wieder stark angestiegene Werte. Nach einem Port-Reset (Com-Port WDE1) war alles wieder normal. Jetzt läuft wieder alle zwei Stunden ein Port-Reset (war seit heute mittag probehalber ausgeschaltet).

Gruß
Bruno