nginx 오류 accept () failed (24: Too many open files) 분석 해결

2335 단어 nginx연결 수ulimit
nginx 서버 접근 이 많 을 때 오류 로그:
자세 한 오류 코드 는 다음 과 같 습 니 다.
2011/05/01 23:00:49 [alert] 7387#0: *6259768 socket() failed (24: Too many open files) while connecting to upstream
접근 이 많 을 때 시스템 이 프로 세 스 의 최대 파일 열기 수 에 대한 제한 (ulimit - n 기본 1024) 이 있 고, nginx 는 단일 프로 세 스 다 중 스 레 드 가 병행 하 는 서비스 이기 때문에 접근 이 많 을 때 연결 수가 1024 를 초과 하면 시스템 에 의 해 연결 이 제 한 됩 니 다.
해결:
vim /etc/nginx/nginx.conf
user  www www;
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;
error_log  /www/log/nginx_error.log  crit;
pid        /usr/local/nginx/nginx.pid;

service nginx reload
ulimit 파일 개수 제한 추가:
echo "ulimit -HSn 65536" >> /etc/rc.local
echo "ulimit -HSn 65536" >> /root/.bash_profile
ulimit -HSn 65535
ulimit -n
(복잡 한 커 널 프로필 수정 작업 을 대체 할 수 있 습 니 다)
첫 번 째 단 계 는 / etc / security / limits. conf 파일 을 수정 하고 다음 줄 과 같이 파일 에 추가 합 니 다.
  speng soft nofile 10240
  speng hard nofile 10240
그 중에서 speng 은 어떤 사용자 의 열 린 파일 수 제한 을 수정 할 지 지정 하 였 으 며, '*' 번 호 를 사용 하여 모든 사용자 의 제한 을 수정 할 수 있 습 니 다.
소프트 나 하 드 는 소프트 제한 을 수정 할 지, 하 드 제한 을 수정 할 지 지정 합 니 다.10240 은 수정 하고 자 하 는 새로운 제한 값 을 지정 합 니 다. 즉, 최대 파일 수 를 엽 니 다. (소프트 제한 값 이 하 드 제한 보다 작 거나 같 아야 함 을 주의 하 십시오.)수정 후 파일 을 저장 합 니 다.
두 번 째 단 계 는 / etc / pam. d / login 파일 을 수정 하고 다음 줄 과 같이 파일 에 추가 합 니 다.
  session required /lib/security/pam_limits. so 이것 은 Linux 가 사용자 가 시스템 로그 인 을 마 친 후에 pam 를 호출 해 야 한 다 는 것 을 알려 주 는 것 입 니 다.limits. so 모듈 은 시스템 이 사용자 가 사용 할 수 있 는 각종 자원 수량 에 대한 최대 제한 (사용자 가 열 수 있 는 최대 파일 수 제한 포함) 을 설정 합 니 다. pamlimits. so 모듈 은 / etc / security / limits. conf 파일 에서 설정 을 읽 어 제한 값 을 설정 합 니 다.수정 후 이 파일 을 저장 합 니 다.
세 번 째 단 계 는 Linux 시스템 급 의 최대 파일 수 제한 을 보고 다음 명령 을 사용 합 니 다.
  [speng@as4 ~]$ cat /proc/sys/fs/file-max
  12158
이것 은 이 리 눅 스 시스템 이 최대 12158 개의 파일 을 동시에 열 수 있 음 을 나타 낸다. 이것 은 리 눅 스 시스템 의 하 드 제한 이 고 모든 사용자 급 의 열 림 파일 수 제한 이 이 수 치 를 초과 해 서 는 안 된다 는 것 을 나타 낸다.일반적으로 이 시스템 의 하 드 제한 은 리 눅 스 시스템 이 시작 할 때 시스템 하드웨어 자원 상황 에 따라 계 산 된 가장 좋 은 동시에 파일 수 제한 을 여 는 것 입 니 다. 특별한 수요 가 없 으 면 이 제한 을 수정 해 서 는 안 됩 니 다. 사용자 급 에 파일 수 제한 설정 이 이 제한 을 초과 하지 않 는 한.
이 하 드 제한 을 수정 하 는 방법 은 / etc / rc. local 스 크 립 트 를 수정 하 는 것 입 니 다. 스 크 립 트 에 다음 줄 과 같이 추가 합 니 다.
  echo 22158 > /proc/sys/fs/file-max

좋은 웹페이지 즐겨찾기