mongod
CentOS 에서 프로세스 / 사용자에 대한 ulimits를 어떻게 설정 합니까?
나는했습니다 공식 문서를 읽을 수 있지만, OS 별 지침을 제공하지 않습니다.
-
ulimit -u 64000
재부팅 후에도 지속 되도록 설정 하고 필요합니다. -
곧 6.5로 업그레이드되지만 CentOS 5.5를 실행하고 있습니다.
-
패키지 관리자가 설치 한 스크립트를 수정하지 않는 것이 좋습니다
답변
/etc/security/limits.conf
필요한 것을 수정하십시오 . 예:
user soft nproc 64000
이 줄은 -u
“user”에 대해 프로세서 수 ( )를 64000으로 설정합니다 . 소프트 / 하드 리미트는 동일 할 수 있습니다 (소프트는 스파이크를 허용하지만 하드 생성은 방지합니다).
답변
최신 버전의 CentOS mongod 시작 스크립트 (/etc/init.d/mongod)에는 시작 옵션에 기본 설정이 내장되어 있습니다.
start()
{
# Recommended ulimit values for mongod or mongos
# See http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
#
ulimit -f unlimited
ulimit -t unlimited
ulimit -v unlimited
ulimit -n 64000
ulimit -m unlimited
ulimit -u 32000
echo -n $"Starting mongod: "
daemon --user "$MONGO_USER" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod
}
값을 변경하고 스크립트를 수정하지 않으려면 스크립트를 /etc/init.d/mongod-custom에 복사 한 다음 사용자 정의 init 스크립트를 편집하고 값을 설정하고 mongod 대신 mongod-custom을 사용하도록 chkconfig를 변경하십시오.
답변
thaspius의 답변에 추가하기 위해 init 스크립트에서 설명하는 것처럼 한계가 설정 된 것처럼 보이지만 여전히 경고 메시지가 나타납니다.
[initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
이것은 init 스크립트에 정의 된 파일 제한이 적용되었지만 프로세스 제한이 아니라는 것을 나타냅니다. 또한 Nathan C의 답변에 따라 추가
mongod soft nproc 64000
에 /etc/security/limits.d/90-nproc.conf
와 다시 시작 시스템은 문제를 해결했다.
mongodb init 스크립트에 값이 있음에도 불구하고 그것이 왜 필요한지에 대해 누구나 밝힐 수 있다면 나는 모두 귀입니다!
답변
/etc/security/limits.conf
파일을 변경 하십시오. 하드 및 소프트 한계를 설정하면 양호해야합니다.
답변
변경 사항을 영구적으로 유지하려면 초기화 스크립트 (예 : Red Hat 7)를 편집해야합니다. 초기화 스크립트에는 다음 줄이 있습니다.
LimitNOFILE=64000
다음을 추가해야합니다.
LimitNPROC=32000
그런 다음 서비스를 다시 시작하십시오.
이게 도움이 되길 바란다.