IPS Speicherverbrauch

Hallo zusammen, es gab hier früher mal das Thema, daß IPS sehr viel Speicher verbraucht.
Ich habe dieses Problem jetzt auch. Allerdings nur sehr sporadisch:

Meine Probleme an Beispielen:

  • Wenn ich ein Skript entwickle und dabei Fehler mache, kann es vorkommen, daß das Skript-Thread „unendlich“ läuft und der Speicherbedarf steigt.

  • Als die Unwetterwarnungsseite nicht mehr erreichbar war, ging der Speicherbedarf auch richtig hoch.

  • Heute trat der erhöhte Speicherverbrauch auch wieder auf. Den Grund habe ich noch nicht herausgefunden. (ips.exe belegte 247 MB RAM)

Ich habe mir mal kurz Gedanken gemacht. Hier meine Idee zur Überwachung des ips Speicherbedarfs.

Für jede Weiterentwicklung die hier veröffentlicht wird, bin ich dankbar …


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : ips_speicherverbrauch.ips.php
Trigger  : 
Interval :  30 min

Benötigt eine Integer Variable - IPS_Speicherverbrauch

Liest per wmi den aktuellen Speicherverbrauch von ips.exe aus
falls grösser als der eingestellte Grenzwert - etwas unternehmen
z.B. Mail senden, ips neustarten, Computer neustarten ...
*/

$Prozesse=IPS_Execute("wmic process get WorkingSetSize", ",Caption" , False, TRUE);
/* Liefert folgende Liste
cmd.exe                    872448

ips.exe                    46460928

rrdtool.exe                2793472

wmic.exe                   5705728

wmiprvse.exe               5738496
*/
$Grenzwert=85000000;   // 85 MB - dann etwas unternehmen

$start=strpos($Prozesse, "ips.exe");  //Liefert die Startposition wo ips.exe steht
if (!$start==false)   // wenn ips ips.exe nicht gefunden wird dann false und ende
  {
    $start=$start+7; //Länge des Wortes ips.exe
    $ende=strpos($Prozesse, "
", $start);      //Zeilenende
    $ergebnis= substr($Prozesse,$start,($ende-$start)); //nur die Zahl und einige Leerstellen
    $ergebnis+=1; //durch die addition wird der string zum integer
    SetValueInteger("IPS_Speicherverbrauch",$ergebnis);
    
    if($ergebnis>$Grenzwert)
      {  //erstmal email senden
         SetValueString("mailempfaenger", "mail@domain.de");
         SetValueString("mailempfaengername", "Vorname Nachname");
         SetValueString("mailbody", "Achtung! IP-Symcon verbraucht jetzt ".$ergebnis." Byte Speicherplatz. Der eingestellte Grenzwert liegt bei ".$Grenzwert." Bitte eingreifen, da noch nichts automatisch eingeleitet wird.");
         SetValueString("mailsubject", "IP-Symcon Speicherverbrauch-Warnung");
         include("mailsenden.ips.php");

      }
    
  }
?>


Hallo Thorsten,

deine Arbeit in allen ehren, aber diese hättes Du Dir nicht machen brauchen, dazu hat Toni schon was geschrieben. Ich prüfe auch den Speicherverbrauch und lasse mir diesen mit einer Warnung per Sprachausgabe ansagen falls es mal eng wird:
Freien Speicher in % ermitteln (hier bei 2GB Hauptspeicher):


$RAM = TT_GetRAM('AvailablePhys');
 (int)$Ram_Frei = ((($RAM/1024)*100)/2048); 

Geht auch mit Prozess IDs für einzelne Programme wie IPS.

Wenn Internetseiten im Spiel sind hatte ich auch des öfteren mal Probleme. Mittels PHP kann die Verfügbarkeit einer Internetseite abgefragt werden.:wink:

Aus der Hüfte geschossen so:


$RAM = TT_GetProcessMemory('ips.exe');
if ($RAM > 85*1024)   //  hier umrechnung in MB
{
  //Mail schicken
  TT_SendMail('mail@host.de', 'Btr.: IPS Speicher', 'IPS ist zu fett geworden und wird jetzt neu gestartet.'); 
  // TT_SendMailEx beherscht auch BCC Verteilerliste und Anhänge für ein Logfile oder so
  
  // Reboot IPS
  IPS_Execute('pulse.exe', '-r', false, false);  
}

Gruß,

Toni

Hallo,
da ich auch des öfteren Speicherplatzprobleme hab, wollte ich das auch mal versuchen. Aber: Toni-Tools downgeloadet, Core.ToniTools.dll ins Modules-Verzeichnis kopiert (vorher IPS beendet) und neu gestartet. Fehlermeldung :
„IPS.exe Abbild fehlerhaft Die Anwendung oder DLL …\Core.ToniTools.dll ist keine gültige Windows-Datei“. Danach startet IPS einwandfrei. Betriebssystem ist win2003 Server. Was kann das sein?
Gruss
Jürgen

Na, wenn das wahr wär, wär mir das aber aufgefallen.

Nee, keinen blassen Schimmer was das soll. Mal versucht das Teil neu herunter zu laden und neu rein zu kopieren? Vielleicht ist sie beschädigt…

Toni

Ok, ist doch ne Windows-Datei. Habs nochmal runtergeladen und direkt ins Modules-Verzeichnis gespeichert. Jetzt gehts. Jetzt muss ich nur noch rausfinden, wie ich IPS beende und neu starte, kurz bevor es sich aufhängt. Dann wäre mein Problem erst mal gefixt.
Gruss
Jürgen