Registrando quando o limite excede

Registrando quando o limite excede

Existe um arquivo de log que registra informações quando os valores definidos /etc/security/limits.confsão excedidos?

Se os valores forem muito restritos no arquivo acima, os clientes que usam o site hospedado no servidor verão erros como [FATAL] failed to allocate memory. Mas não vou me intimidar com isso. Então, há um registro?

Caso contrário, existe uma maneira de registrar quando os valores são excedidos?

Responder1

limites.conf é um instrumento muito contundente para o que você está tentando fazer.

O cgroups definirá limites e fornecerá contabilidade para você, mas a documentação é um pouco obtusa!https://www.kernel.org/doc/Documentation/cgroups/memory.txt

Responder2

Existe um arquivo de log que registra informações quando os valores definidos em /etc/security/limits.conf são excedidos?

Não.

Todos esses valores vão finalmente para os limites de recursos do processo ( man setrlimit) e quando são atingidos não existe um mecanismo universal para emitir um aviso a ser registrado.

Responder3

se o seu problema for sobre falha na alocação de memória, você também pode usar este script para monitorar a porcentagem de memória livre restante

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

salve-o em um arquivo de script (ex. memmon.sh) e adicione-o ao crontab, ele enviará um e-mail e gravará o arquivo de log quando detectar pouca memória livre conforme condicionado)

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

informação relacionada