Konfigurieren von Skriptstartoptionen
ZUSAMMENFASSUNG Konfigurieren Sie das Gerät so, dass es vor dem Ausführen eines Skripts bestimmte Systemressourcenprüfungen durchführt.
Sie können Startoptionen für bestimmte Skripttypen auf unterstützten Plattformen konfigurieren. Wenn Sie Startoptionen konfigurieren, führt das Gerät bestimmte Systemressourcenprüfungen durch, bevor ein Skript ausgeführt wird. Die Prüfungen bestimmen, ob das System die Skriptausführung basierend auf den konfigurierten Werten starten oder verhindern soll. Durch die Konfiguration von Skriptstartoptionen können Sie sicherstellen, dass ein Gerät nur wichtige Skripte ausführt, wenn die Systemressourcen begrenzt sind, damit das Gerät weiterhin alle kritischen Netzwerkfunktionen ausführen kann.
Sie können Startoptionen konfigurieren, um die Skriptausführung basierend auf der Speicherauslastung des Systems zu verhindern, wie unter Konfigurieren des Schwellenwerts für die Systemspeicherauslastung für Skripts beschrieben.
Sie konfigurieren Skriptstartoptionen, um zu verhindern, dass ein Skript unter bestimmten Bedingungen ausgeführt wird. Informationen dazu, wie das Gerät stattdessen ein Skript starten, aber die Ausführung des Skripts verlangsamen oder das Skript anhalten kann, wenn es während der Ausführung bestimmte Grenzwerte überschreitet, finden Sie in der folgenden Dokumentation:
Konfigurieren des Schwellenwerts für die Systemspeicherauslastung für Skripts
Sie können ein Gerät so konfigurieren, dass die Ausführung eines Skripts verhindert wird, wenn die Speicherauslastung des Systems über einem konfigurierten Schwellenwert liegt. Sie können z. B. die Ausführung eines besonders ressourcenintensiven Skripts oder Skripttyps verhindern, wenn die Systemspeicherauslastung über 75 Prozent liegt. Wenn ein bestimmtes Skript eine wichtige Rolle für den Betrieb des Geräts spielt, können Sie alternativ einen höheren Schwellenwert für die Systemspeicherauslastung oder keinen Schwellenwert für dieses spezielle Skript konfigurieren, um sicherzustellen, dass das Gerät das Skript auch dann ausführt, wenn das System zu diesem Zeitpunkt über begrenztere Ressourcen verfügt.
Sie konfigurieren die start start-options mem-factor
Anweisung so, dass der Schwellenwert für die Systemspeicherauslastung definiert wird, ab dem ein Skript nicht ausgeführt wird. Sie können einen Schwellenwert für Op-, Ereignis-, SNMP- und Juniper Extension Toolkit (JET)-Skripte definieren. Sie können die Anweisung auf ein einzelnes Skript oder auf alle Skripts eines bestimmten Typs anwenden. Wenn Sie die Anweisung für einen Skripttyp konfigurieren, z. B. op-Skripte, gilt die Anweisung für alle Python-, SLAX- und XSLT-Skripts dieses Typs. Wenn Sie unterschiedliche Schwellenwerte für den Skripttyp und ein einzelnes Skript desselben Typs definieren, hat die Konfiguration für das einzelne Skript Vorrang.
Junos-Geräte erzwingen keine Skriptstartoptionen für Remote-Op-Skripte, die mit dem op url
Befehl ausgeführt werden. Skriptstartoptionen werden nur für lokale Op-Skripte erzwungen.
Bei JET-Anwendungen schließen sich die daemonize
Anweisungen und mem-factor
gegenseitig aus. Wenn eine JET-Anwendung die daemonize
Anweisung in ihre Konfiguration einschließt, können Sie die mem-factor
Anweisung weder für dieses einzelne Skript noch global für alle JET-Skripts konfigurieren. Wenn Sie beide Anweisungen konfigurieren und die Konfiguration bestätigen, gibt das Gerät einen Commit-Fehler aus.
Wenn Sie ein Skript ausführen, für das die mem-factor
Anweisung für dieses Skript oder diesen Skripttyp konfiguriert ist, vergleicht das Gerät die aktuelle Systemspeicherauslastung mit dem konfigurierten mem-factor
Wert. Wenn die Systemspeicherauslastung niedriger als der konfigurierte Schwellenwert ist, wird das Skript normal ausgeführt. Wenn die Systemspeicherauslastung den konfigurierten Schwellenwert überschreitet, führt das Gerät das Skript nicht aus und generiert eine entsprechende Systemprotokollmeldung. Wenn Sie das mem-factor statement
weder für das einzelne Skript noch für den Skripttyp konfigurieren, führt das System keine Prüfungen der Systemspeicherauslastung durch und führt das Skript normal aus.
Junos-Geräte berechnen die Systemspeicherauslastung je nach Betriebssystem unterschiedlich. Junos OS verwendet die folgende Berechnung, um die Systemspeicherauslastung zu bestimmen:
current memory usage = (Total memory – (Cache memory + Free memory + Inactive Memory))*100 / Total memory
Betrachten Sie beispielsweise die folgende show system memory
Befehlsausgabe auf einem Gerät, auf dem Junos OS ausgeführt wird:
user@host> show system memory System memory usage distribution: Total memory: 4135380 Kbytes (100%) Reserved memory: 137172 Kbytes ( 3%) Wired memory: 334964 Kbytes ( 8%) Active memory: 772468 Kbytes ( 18%) Inactive memory: 2738480 Kbytes ( 66%) Cache memory: 0 Kbytes ( 0%) Free memory: 261964 Kbytes ( 6%) ...
In diesem Fall beträgt die aktuelle Systemspeicherauslastung etwa siebenundzwanzig Prozent. Wenn Sie ein Skript aufrufen, führt das Gerät das Skript nicht aus, wenn diese Nutzung den konfigurierten mem-factor
Wert für dieses Skript überschreitet. Das Gerät vergleicht die Nutzung nur dann mit dem mem-factor
Wert für den Skripttyp, wenn Sie die mem-factor
Anweisung nicht für das einzelne Skript konfigurieren.
Junos OS Evolved schließt die Systemspeichernutzung direkt in die XML-Ausgabe des show system memory
Befehls ein.
user@host-re0 show system memory node re0 | display xml <rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.1R1/junos"> <system-memory-information> <system-memory-summary-information> <system-memory-total>16062004</system-memory-total> <system-memory-total-percent>100%</system-memory-total-percent> <system-memory-used>3540932</system-memory-used> <system-memory-used-percent>22%</system-memory-used-percent> ...
Wenn Sie ein Skript aufrufen, für das die mem-factor
Anweisung konfiguriert ist, protokolliert das Gerät die CSCRIPT_START_OPTIONS_MEM_FACTOR Systemprotokollmeldung mit dem Schweregrad INFO.
Oct 11 11:39:07 host cscript[93413]: CSCRIPT_START_OPTIONS_MEM_FACTOR: Start-options is set with mem-factor '70'
Wenn ein Gerät die Ausführung eines Skripts verhindert, weil die aktuelle Systemspeicherauslastung den konfigurierten Schwellenwert überschreitet, zeichnet der cscript-Prozess Systemprotokollmeldungen in der Protokolldatei auf. Die CLI gibt keine Warnung oder Fehlermeldung aus, dass das Skript angehalten wurde. Das Gerät protokolliert die CSCRIPT_START_OPTIONS_SYSTEM_MEM und CSCRIPT_START_OPTIONS_WARNING Systemprotokollmeldungen mit dem Schweregrad WARNING für dieses Ereignis.
user@host> show log messages | match cscript Oct 11 11:39:07 host cscript[93413]: CSCRIPT_START_OPTIONS_SYSTEM_MEM: Start-options System Memory Usage Statistics: Total memory:'4137428' Free memory:'132936' Oct 11 11:39:07 host cscript[93413]: CSCRIPT_START_OPTIONS_WARNING: Start-options System Memory Usage '74' exceeds the mem-factor '70', aborting the script 'bgp-neighbors.slax' execution
Die CLI gibt nicht an, ob das Gerät die Ausführung eines Skripts stoppt. Beispielsweise geben Op-Skripte in diesem Fall keine Ausgabe aus, SNMP-Skripte geben einen No such instance
Fehler zurück und JET-Skripte geben immer noch eine Meldung aus, dass die Erweiterungsdienstanwendung gestartet wurde. Sie müssen immer die Systemprotokollmeldungen lesen, um zu bestätigen, dass das Gerät die Ausführung eines Skripts verhindert hat.
Konfigurieren von Startoptionen für einzelne Skripte
So konfigurieren Sie Skriptstartoptionen für einzelne Skripts:
Startoption für alle Skripte eines bestimmten Typs konfigurieren
So konfigurieren Sie Skriptstartoptionen für alle Skripts eines bestimmten Typs: