sysctl을 업데이트했지만 가능한 연결 수는 여전히 1000개 미만입니다.

sysctl을 업데이트했지만 가능한 연결 수는 여전히 1000개 미만입니다.

CentOS 7.2 시스템에서 c1000k를 실행하고 있는데 다음과 같은 메시지가 나타납니다.

connections: 921
error: Too many open files

/etc/sysctl.conf그래서 다음 내용을 포함하도록 콘텐츠를 변경했습니다 .

fs.file-max = 2097152

그러나 다시 시작한 후에도 여전히 동일한 제한 사항이 발생합니다. ulimit -Sn별도로 인쇄하십시오 ulimit -Hn.10244096

답변1

유효(소프트) 1024개 설명자 ulimit는 비연결 목적으로 사용되는 설명자를 포함한 총 프로세스 수입니다. 분명히 이 프로세스는 다른 목적으로 약 100개의 설명자를 사용하고 연결에는 921개만 남깁니다. lsof -p <process-id>설명자를 사용하는 방법이 표시됩니다.

더 많은 설명자를 허용하려면 프로세스를 시작하기 전에 소프트 제한을 늘리십시오. Bash에서 실행하면 다음과 같습니다.

    ulimit -Sn 2048

향후 명령을 위해 2048로 올리십시오. 소프트 제한을 허용되는 최대값(하드 제한, 이 경우 4096)으로 늘리려면 다음을 수행할 수 있습니다.

    ulimit -Sn unlimited

증가된 제한을 하나의 명령에만 적용하고 향후 다른 명령에는 적용하지 않으려면 하위 쉘에서 제한을 높이십시오.

    (ulimit -Sn 2048 ; c1000k)

현재 하드 제한인 4096개 설명자를 초과하려면 충분한 권한이 있는 사용자 계정에서 테스트를 실행하여 하드 제한을 늘리거나 로그인 시 설정되는 초기 하드 및 소프트 ulimit 값을 변경할 수 있습니다. 수정 /etc/security/limits.conf하거나 (더 나은 경우) 에서 실행하여 자세한 내용 /etc/security.d은 파일의 설명을 참조 limits.conf하거나 실행하세요 .man limits.conf

관련 정보