Protokollierung bei Überschreitung des Grenzwertes

Protokollierung bei Überschreitung des Grenzwertes

Gibt es eine Logdatei die bei /etc/security/limits.confÜberschreitung der eingestellten Werte eine Meldung protokolliert?

Wenn die Werte in der obigen Datei zu eng sind, werden den Clients, die die auf dem Server gehostete Website verwenden, Fehler wie angezeigt [FATAL] failed to allocate memory. Aber ich lasse mich davon nicht einschüchtern. Gibt es also ein Protokoll?

Wenn nicht, gibt es eine Möglichkeit, eine Protokollierung der Überschreitung der Werte zu veranlassen?

Antwort1

limits.conf ist für das, was Sie versuchen, ein zu stumpfes Instrument.

cgroups legen Limits fest und übernehmen die Abrechnung für Sie, die Dokumentation ist allerdings etwas undurchsichtig!https://www.kernel.org/doc/Documentation/cgroups/memory.txt

Antwort2

Gibt es eine Protokolldatei, die Informationen protokolliert, wenn die in /etc/security/limits.conf festgelegten Werte überschritten werden?

Nein.

Alle diese Werte erreichen letztendlich die Grenzen der Prozessressourcen ( man setrlimit), und wenn diese erreicht werden, gibt es keinen universellen Mechanismus zum Ausgeben einer zu protokollierenden Warnung.

Antwort3

Wenn Ihr Problem eine fehlgeschlagene Speicherzuweisung ist, können Sie dieses Skript auch verwenden, um den Prozentsatz des verbleibenden freien Speichers zu überwachen.

#!/bin/bash
# you can adjust 0.20 meaning 20% to percentage of memory free you want 
output=$(free | grep "Swap" | awk '{if (($4/$2) < 0.20) print "memory low"}')
if [[ "$output" != "" ]]; then
    echo "..." | mail -s "Memory low on <host>" <monitoring email>
fi

Speichern Sie es in einer Skriptdatei (z. B. memmon.sh) und fügen Sie es zu crontab hinzu. Es sendet eine E-Mail und schreibt eine Protokolldatei, wenn festgestellt wird, dass nur noch wenig freier Speicher vorhanden ist (je nach Bedingung).

# Ex. monitor every 3 min.
*/3 * * * * /home/user/memmon.sh >> /home/user/memmon.log

verwandte Informationen