Moin,
Ein skript schmeisst aufeinmal diese Fehlermeldung raus.
Wie kann ich ihm mehr RAM geben oder wo auch immer das Problem ist?
Dieses Skript lief seit fast einen Jahr ohne Fehler, daher verstehe ich nicht ganz wo jetzt das problem sein könnte.
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes) in C:\ProgramData\Symcon\scripts\23031.ips.php on line 59
danke
1007
6. Dezember 2021 um 07:44
#2
Hallo
Was passiert in Zeile 59 ?
memory_limit in der php.ini erhoehen (Neustart nicht vergessen).
Ich vermute, dein gelesener Kalender hat zu viele Einträge. Leider kann der Kalender nur als Gesamtheit gelesen und geparst werden.
Du müsstest das memory_limit in der php.ini erhöhen. Z.B.
memory_limit=64M
Wir validieren dies, damit man dies nicht exorbitant hoch setzen kann. Denn: Wenn alle PHP Threads 128MB verwenden dürfen und du z.B. 50 Threads hast, brauchst du im Peak 6400 MB RAM. Falls du dies z.B. unter Linux dann nicht hast, entsorgt der Kernel dein Prozess…
Da wir mittlerweile aber immer mehr RAM haben, würde ich das Limit zum nächsten Update auf max. 128MB setzen anstatt der aktuellen 64MB. Den -1 Workaround sperre ich in dem Zuge ebenfalls, da dieser sehr unglücklich ist.
Hast du mal…
Moin,
das ist ein Skript was in Zählern Variablen die Fortlaufenden Variablen Kontrolliert und alles rauswirft was kleiner als der vorherige Wert ist.
//Alle Datensätze der letzten Stunden abfragen
//Alle Datensätze der letzten Stunden abfragen
// $logData = AC_GetLoggedValues($ArchiveID, $VariableID, strtotime("yesterday 00:00"), time(), 0); //55554 ist die ID der Variable, 12345 vom Archiv Control
$start = mktime(0, 0, 0, 1 , 11, 2021);
59: $logData = AC_GetLoggedValues($ArchiveID, $VariableID, $start, time(), 0);
Wie weit darf man in der PHP.ini gehen?
Die VM von IP-Symcon hat aktuell 8 GB, 3,3 GB genutzt.
Der IP Prozess hat 600MB.
(den anderen Thread hatte ich gesehen, dachte es ist was von dem Modul und wollte da nicht mit meinem Skript rein. )
1007
6. Dezember 2021 um 08:11
#4
Hallo
Kann man einfach mit einem Texteditor aendern.
sorry, da fehlte das „weit“ …
also wo sind die grenzen? RAM ist ja ohne ende da.
1007
6. Dezember 2021 um 08:36
#6
Hallo
Ich persoenlich habe
„memory_limit=128M“
Wenn du einen hoeheren Wert einstellst wird bei einem Neustart
automatisch auf
memory_limit=32M
gesetzt.
Kontrollieren kannst du mit einem Script:
echo phpinfo();
Suche im Text nach „memory_limit“
1007
6. Dezember 2021 um 08:46
#7
Hallo
Denke dran der Wert ist pro Thread:
Wir validieren dies, damit man dies nicht exorbitant hoch setzen kann. Denn: Wenn alle PHP Threads 128MB verwenden dürfen und du z.B. 50 Threads hast, brauchst du im Peak 6400 MB RAM. Falls du dies z.B. unter Linux dann nicht hast, entsorgt der Kernel dein Prozess…
Da wir mittlerweile aber immer mehr RAM haben, würde ich das Limit zum nächsten Update auf max. 128MB setzen anstatt der aktuellen 64MB. Den -1 Workaround sperre ich in dem Zuge ebenfalls, da dieser sehr unglücklich ist.
Hast du mal…
Wir validieren dies, damit man dies nicht exorbitant hoch setzen kann. Denn: Wenn alle PHP Threads 128MB verwenden dürfen und du z.B. 50 Threads hast, brauchst du im Peak 6400 MB RAM. Falls du dies z.B. unter Linux dann nicht hast, entsorgt der Kernel dein Prozess…
Hi,
ich habe die Thread von 100 auf runter 80 gestellt und das RAM Limit von 32 auf 64.
braucht IPS also max 5120 GB auf dem Windows Server, und soweit RAM ist auch da.
Skript läuft wieder.
danke.