Регистрация при превышении лимита

Регистрация при превышении лимита

Существует ли файл журнала, в котором регистрируется информация о /etc/security/limits.confпревышении установленных значений?

Если значения в указанном выше файле слишком узкие, клиенты, использующие веб-сайт, размещенный на сервере, видят ошибки, такие как [FATAL] failed to allocate memory. Но я не буду пугаться этого. Так есть ли журнал?

Если нет, то есть ли способ сделать так, чтобы он регистрировал превышение значений?

решение1

limits.conf — слишком грубый инструмент для того, что вы пытаетесь сделать.

cgroups установит ограничения и обеспечит вам учет, но документация немного непонятна!https://www.kernel.org/doc/Documentation/cgroups/memory.txt

решение2

Существует ли файл журнала, в который записывается информация о превышении значений, установленных в /etc/security/limits.conf?

Неа.

Все эти значения в конечном итоге обрабатываются с учетом ограничений ресурсов ( man setrlimit), и при их достижении не существует универсального механизма выдачи предупреждения, подлежащего регистрации.

решение3

Если ваша проблема связана с ошибкой выделения памяти, вы также можете использовать этот скрипт для отслеживания процента оставшейся свободной памяти.

#!/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

сохраните его в файл скрипта (например, memmon.sh) и добавьте в crontab, он будет отправлять электронное письмо и записывать файл журнала при обнаружении недостатка свободной памяти (как обусловлено)

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

Связанный контент