Существует ли файл журнала, в котором регистрируется информация о /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