Speicherproblem

Hallo an Alle, seit der letzten oder vorletzten Version(ich kann es nicht genau sagen) geht permanent über 3-4 Tage der Speicher von IPS hoch. Grafiken im Anhang. IPS geht dann fest und ich muss es neu starten. Das war definitiv vorher nicht!.
Blöd nur wenn ich nicht zu Hause bin.
Das letzte mal hat es mir sogar meine settings zerlegt. IPS hat sich beim Starten immer beendet. Ich musste die settings zurücksichern.

Was kann das sein?

Hallo.

Kann ich so nicht nachvollziehen. Das der Speicherbedarf nach dem Neustart 1-2 Tage eine steigende Tendenz hat ja - aber er pegelt sich dann (bei mir) auch auf einem gewissen Niveau ein und bleibt dann dort. Letzte Laufzeit war 24 Tage bevor ein Windows Patchday den Zähler auf Null gestellt hat. Das war vor 8 Tagen.

Hallo hier wieder das Speicherdiagramm. Es steigt. 7:00 Uhr erwacht das Haus aus dem Energiesparmodus.
Definitiv war das vorher nicht so. Ich kann nur nicht sagen ab welcher Version das auftritt. auf jeden Fall steigt der Speicherbedarf permanent.

Du kannst diesen Sprung im Verbrauch also provozieren? Kannst du herausfinden wer ihn verursacht?

paresy

Den Sprung kann ich provozieren aber nicht das permanente langsame ansteigen.
Bei dem Sprung wird die folgende Funktion mit dem Parameter true aufgerufen.

function fEnergy_Save($ON_OFF) {
	$SemaPhoreEnergySave = "EnergySave";
	$ID_Terminals_Autostart = 30788 /*[Systeminstanzen\Variablen\Netzwerk\Terminals auto start]*/ ;
	$ID_Mediaserver_Autostart = 34692 /*[Systeminstanzen\Variablen\Netzwerk\Media Server auto start]*/ ;
	// Energiesparmodus für alle abgeschalteten Steckdosen ausschalten
	include(IPS_GetScriptIDByName("include_BM_Vorgaben",23971 /*[Scripts\Bewegungsmelder]*/ ).".ips.php");
	include(IPS_GetScriptIDByName("include_HM_Const",58036 /*[Scripts\Allgemein]*/ ).".ips.php");
	include(IPS_GetScriptIDByName("include_DMX_functions",42822 /*[Scripts\DMX]*/  ).".ips.php");
	include(IPS_GetScriptIDByName("include_HM_functions",58036 /*[Scripts\Allgemein]*/  ).".ips.php");
	include(IPS_GetScriptIDByName("Play_TTS",49186 /*[Scripts\Multimedia]*/).".ips.php");
	include(IPS_GetScriptIDByName("include_check_system",58036 /*[Scripts\Allgemein]*/ ).".ips.php");
	include(IPS_GetScriptIDByName("include_Samsung_TV",49186 /*[Scripts\Multimedia]*/  ).".ips.php");
	$textEnergysaveOff = "Der Energie spar modus wurde deaktiviert";
	$textEnergysaveOn = "Der Energie spar modus wurde aktiviert";
   $Volume = getvalueInteger(56497 /*[Systeminstanzen\Variablen\Multimedia\VolumeAnsage]*/ );
	$ID_Ereignis_Sprachausgabe = 50887 /*[Zeitgesteuerte Scripts\Multimedia\Sprachausgabe\]*/;
	//setvalueboolean (44626 /*[Systeminstanzen\Variablen\System\BackupModus]*/ ,false);
	if (IPS_SemaphoreEnter($SemaPhoreEnergySave,1000)) {
	      set_time_limit(180);
	      if ($ON_OFF){
	         TV_SAMSUNG_OFF("WZ");
	         TV_SAMSUNG_OFF("SZ");
	         $SystemMeldungen = check_system();
		      $textEnergysaveOn = $textEnergysaveOn."...".$SystemMeldungen;
			   TTS_Play(1,$textEnergysaveOn,true,true,$Volume,"",($SystemMeldungen <> ""),false);
			}
			ips_sleep(5000);
			while (True) {
				$EventInfo = IPS_GetEvent($ID_Ereignis_Sprachausgabe);
				ips_sleep(500);
				if ($EventInfo["EventActive"]) break;
			}
			foreach 	($HM_SWITCH as $ST) {
				//echo $ST["HM_NAME"]." ".$ST["ID_IPS"]." ".$ST["PARAMETER_NAME"]." 
 ";
			   if ($ST["ENERGY_SAVE"]) {
			   	if ($ON_OFF) { //Energiesparmodus ein
			   	   $ID_Energysave = 0;
			   	   $ID_Energysave = $ST["ID_ENERGY_SAVE_ONOFF"];
			   	   if (($ID_Energysave == 0) or (getvalueboolean($ID_Energysave))) {
				   	   if ($ST["PARAMETER_NAME"] == "LEVEL") HM_WriteValuefloat($ST["ID_IPS"], $ST["PARAMETER_NAME"], 0);
							if ($ST["PARAMETER_NAME"] == "STATE") {
							   //Überprüfen ob das Gerät noch in Betrieb ist, wenn ja dann nicht ausschalten
							   $ID_Check_Betrieb = 0;
							   $In_Betrieb = false;
							   $ID_Check_Betrieb = $ST["BETRIEBSUEBERWACHUNG"];
							   if ($ID_Check_Betrieb > 0) {
									$In_Betrieb = !getvalueboolean($ID_Check_Betrieb);
									if (!$In_Betrieb) {
		          					HM_WriteBoolean($ST["ID_IPS"], $ST["PARAMETER_NAME"], !$ON_OFF);
		          					//ips_sleep(100);
									}
								} else {
									HM_WriteBoolean($ST["ID_IPS"], $ST["PARAMETER_NAME"], !$ON_OFF);
									//ips_sleep(100);
								}
							}
							//if ($ST["PARAMETER_NAME"] == "STATE") WriteBoolean_HM($ST["ID_IPS"],!$ON_OFF);
							if ($ST["PARAMETER_NAME"] == "Farbe") setvalueInteger($ST["ID_IPS"],0);
						}
				   } else {//Energiesparmodus aus
				      if ($ST["PARAMETER_NAME"] == "LEVEL") HM_WriteValuefloat($ST["ID_IPS"], $ST["PARAMETER_NAME"], $ST["INIT_WERT_AFTER_ENERGYSAVE"]);
						if ($ST["PARAMETER_NAME"] == "STATE") HM_WriteBoolean($ST["ID_IPS"], $ST["PARAMETER_NAME"], $ST["INIT_WERT_AFTER_ENERGYSAVE"]);
	   		   }
					//ips_sleep(30);
				}
			}
			if (!$ON_OFF) {
						 ips_sleep(2000);
						 //DMX auf aus setzen (initialisieren)
	 					 setvalueinteger(47932 /*[Systeminstanzen\Beleuchtung\DG\DG Bad\Wannenbeleuchtung DMX\Farbe]*/ ,0);
						 setvalueinteger(51412 /*[Systeminstanzen\Beleuchtung\DG\DG Bad\Deckenbeleuchtung DMX\Farbe]*/ ,0);
						 setvalueinteger(13088 /*[Systeminstanzen\Beleuchtung\OG\OG Wohn\Deckenleuchte DMX Wohnzimmer\Farbe]*/ ,0);
						 setvalueinteger(40621 /*[Systeminstanzen\Beleuchtung\OG\OG Küche\Sockelbeleuchtung DMX\Farbe]*/ ,0);
						 setvalueinteger(29419 /*[Systeminstanzen\Beleuchtung\OG\OG Küche\Deckenleuchte DMX Küche\Farbe]*/ ,0);
						 setvalueinteger(38381 /*[Systeminstanzen\Beleuchtung\OG\OG Küche\Schrankbeleuchtung DMX\Farbe]*/ ,0);
						 setvalueinteger(15715 /*[Systeminstanzen\Beleuchtung\EG\EG Eingang\Treppenbeleuchtung DMX\Farbe]*/  ,0);
						 setvalueinteger(50270 /*[Systeminstanzen\Beleuchtung\OG\OG Terrasse\Effektleuchten\Farbe]*/   ,0);
			}
			if ($ON_OFF) {
				//Mediaplayer stoppen und zurücksetzen
				$mplayer = array(
				               13119 /*[Systeminstanzen\Multimedia\Mediaplayer\Player 1 - EG Eingang 1/2 USB 6\MPlayer 1]*/ ,
				               29973 ,
				               51660 /*[Systeminstanzen\Multimedia\Mediaplayer\Player 2 - DG Bad 3/4 USB 5\MPlayer 2]*/ ,
				               33373 ,
				               45103 /*[Systeminstanzen\Multimedia\Mediaplayer\Player 3 - OG Küche 5/6 USB 3\MPlayer 3]*/ ,
				               19850 ,
				               47899 /*[Systeminstanzen\Multimedia\Mediaplayer\Player 4 - EG Bad 7/8 USB 4\MPlayer 4]*/ ,
				               40960 ,
				               18693 /*[Systeminstanzen\Multimedia\Mediaplayer\Player OnBoard\MPlayer OnBoard]*/ ,
				               11202
									);
				foreach($mplayer as $mp) {
		         WAC_Stop($mp);
		  			WAC_ClearPlaylist($mp);
		  			WAC_Reset($mp);
				}

			}
			if ($ON_OFF) {
				//lautstärken auf aus setzen
				$volumes = array(
				               23944 /*[Systeminstanzen\Multimedia\Radio Werkstatt\Lautstärke]*/ ,
				               55102 ,
				               15213 /*[Systeminstanzen\Multimedia\Radio DG Bad\Lautstärke]*/ ,
				               13199 ,
				               15859 /*[Systeminstanzen\Multimedia\Audio Eingang\Lautstärke]*/
									);
				foreach($volumes as $v) {
		         setvalueinteger($v,0);
				}
			}
			if (!$ON_OFF){
			   TTS_Play(1,$textEnergysaveOff,true,true,$Volume,"",false,false);
			   ips_sleep(5000);
				while (True) {
					$EventInfo = IPS_GetEvent($ID_Ereignis_Sprachausgabe);
					ips_sleep(500);
					if ($EventInfo["EventActive"]) break;
				}
			}
			// Media-Server herunterfahren oder starten
			if ($ON_OFF){
			   if (getvalueboolean(28513 /*[Systeminstanzen\Variablen\Netzwerk\Media Server auto shutdown]*/ ) == true) {
			      IPS_RunScript(50156 /*[Ereignisgesteuerte Scripts\Netzwerk\Mediaserver_herunterfahren]*/ );
				}
			} else {
			   if (getvalueBoolean($ID_Mediaserver_Autostart))	IPS_RunScript(15406 /*[Ereignisgesteuerte Scripts\Netzwerk\Mediaserver_Starten]*/ );
			}
			// Terminals herunterfahren oder starten
			if ($ON_OFF){
			   if (getvalueboolean(30510 /*[Systeminstanzen\Variablen\Netzwerk\Terminals auto shutdown]*/  ) == true) {
					IPS_RunScript(59159 /*[Ereignisgesteuerte Scripts\Netzwerk\Terminals_herunterfahren]*/ );
				}
			} else {
				 if (getvalueBoolean($ID_Terminals_Autostart))	IPS_RunScript(33036 /*[Ereignisgesteuerte Scripts\Netzwerk\Terminals_starten]*/ );
			}
			if (!$ON_OFF){
	       	setvalueboolean(13697 /*[Systeminstanzen\Variablen\Termine\Termine_ansagen]*/ ,true);
			}
			// nach energiesparmodus ereignis aktivieren welches 5 min nach dem Energiesparmodus die Türen schliesst etc.
			if ($ON_OFF){
				$ScriptID = 21459 /*[Zeitgesteuerte Scripts\Energiesparmodus\Aktionen 5 min nach Energiesparmodus]*/ ;
				$TimerWertSec = 300;
				IPS_SetScriptTimer ($ScriptID, $TimerWertSec );
			}
			IPS_SemaphoreLeave($SemaPhoreEnergySave);
	}
	//		echo "Fertig";
}

So jetzt hab ich es nochmals versucht. Energiesparmodus ein.
Hier die Grafik.

Vielleicht hilft das bei der Suche?

Bei mir ist der Sprung (über mehrere Tage wird die Amplitude kleiner) - immer zwischen 6 und 7Uhr.

Auch bei PIs auf denen um die Zeit definitiv keine Aktionen laufen …

Ciao herbertf

mein Speicher steigt aber kontinuierlich an.

Kommen die Fehlermeldungen denn durch den ganzen Tag immer wieder?
Würde der Anstieg kleiner werden, wenn du Testweise die Sockets deaktivierst?

paresy

Welche Sockets meinst Du? Die bei denen das Gerät nicht erreicht werden kann weil es aus ist oder alle?

Sockets habe ich deaktiviert. (Alle ohne Erreichbarkeit des Gerätes)
Vielleicht hat das was damit zu tun?

Sockets deaktiviert aber der Speicher steigt weiter.

Hat jemand Ideen wonach ich suchen kann?

Ich habe nichts an IPS geändert und hatte dieses Problem vorher nie.

Hallo zman0801,
ich hatte mal genau dasselbe verhalten und da war der Virenscanner dran schuld. Hast du einen Virenscanner auf dem Server? Deaktivier diesen mal Testweise!

Gruß, luar.

Ich probiere es. Danke!

Am Virenscanner hat’s nicht gelegen.

Allerdings hatte ich gestern das Problem das das DMX nicht mehr richtig gearbeitet hat. …erst nach einem IPS Neustart wieder.

Noch weitere Ideen?

Hat einer eine Idee nach was ich suchen kann? …oder ist das ein IPS Problem?

Ich habe schon alle nicht verbundenen Sockets geschlossen und hoch frequentierte Ereignisse(Kamerarefresh)
deaktiviert. Hat alles nichts gebracht.
.wie finde ich raus was im Speicher hängenbleibt.

Hallo zman0801,

habe das Thema mal gerde durchgelesen:

  • IPS läuft auf Windows oder ?

  • Wie ermittelst du die Speicherbelegung (Grafik)?

  • Muss es IPS sein, welche den Speicher füllt?
    Oder könnte ein anderes (externes) Programm, vllt. durch IPS gestartet den Speicher füllen?

  • Hast du im „Resourcenmonitor“ die Arbeitsspeicherbelegung der einzelnen Prozesse verfolgt?

  • Machst du etwas in Richtung eigene Datenbank, o.a. was mit der neuen Version nicht mehr mag…

  • Kann man in der LOG Datei etwas erkennen?

  • Wie sieht die PHP Information in der Verwaltungskonsole aus?

EDIT: Einer noch: Welche Version hast DU nun eigendlich am laufen?

Mehr fällt mir gerade nicht ein, zur Fehlersuche :slight_smile:

LG
lueralba

IPS läuft auf Windows

IPS ermittelt den Speicher aber auch im Taskmanager wird es mehr. Nur der Speicher der IPS.EXE nimmt zu. Ich hatte das früher nicht. Version ist die 3778.

Ich rufe nur Batchdateien über IPS auf.

In den PHP Infos habe ich 20 Prozesse erlaubt und die sind nicht komplett belegt.

Ich benutze eine externe MySQL Datenbank für Termine.

Hallo zman0801.

Ich rufe nur Batchdateien über IPS auf.

Ich benutze eine externe MySQL Datenbank für Termine.

Kannst du hier mal für 3-4 Stunden die entsprechenden Scripte unterbinden ?
Evtl. sieht man ja dann schon etwas…

… und die sind nicht komplett belegt

Wie meinst Du das? Sind da welche „ununterbrochen“ zu sehen (verschwinden also nicht) ?
Es sollte auch mal alles „leer“ sein ! (Ist bei mir so, auch wenn viel Betrieb ist…)

LG
lueralba