한도 초과 시 로깅

한도 초과 시 로깅

/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

관련 정보