http://kldp.org/KoreanDoc/Ulimit-KLDP redhat7.2 커널은 2.4.18
위 문서를 보고 커널에서 NR_OPEN, NR_FILE 을 조정했습니다.
동시에 열수 있는 파일의 수와 하나의 프로세스에서 열수 있는 파일수...
이걸 조정하려고 했죠.
수정하고 커널 컴파일 후 ulimit -a 하면
여전히
...
...
...
open files 1024
....
라고 나오네요. (이게 한 프로세스에서 열수 있는 파일수 맞죠?)
/proc/sys/fs/file-max
는 제가 조정한 데로 나옵니다. (이게 시스템에서 동시에 열수 있는 파일수 맞
죠?)
수정한 부분은 다음과 같습니다.
/usr/src/linux/include/linux/fs.h
#define NR_OPEN (1024*1024) --> 이것도 수정하나요?
#define NR_FILE 4096 --> 세배로 수정
/usr/src/linux/include/linux/limits.h
#define NR_OPEN 1024 --> 두배로 수정
머가 잘못된건지 ㅡㅡ;
아니면 ulimit 에서 나오는 정보랑은 상관이 없는건지 궁금하네요
>cat /proc/sys/fs/file-nr 하면
2222 22 2222 (대충 이렇게..)
이렇게 나오는데 kldp 문서에 보면 가운데가 오픈된 파일핸들 수라고
하는데, 아무리 테스트 해봐도 할당된 파일핸들 수에서 쓰고 남은 수 같은데요..
제가 틀렸나요? (왼쪽이 실제 할당된 파일핸들수, 오른쪽이 가능한 총 파일핸들수)
또, 한가지 메일발송 프로그램을 만들어서 약 100,000통의 메일을 보냈습니다.
*sendmail 8.11.x
*redhat 7.2 (kernel 2.4.18)
*php 메일발송프로그램 (허접하게 직접 만든거 ㅡㅡ;)
*큐디렉토리는 q1 ~ q6 까지 6개
대충 이렇습니다.
발송하면 sendmail 프로세스가 엄청늘어나더군요 .. 500이상까지 ㅡㅡ;
파일핸들도 열어주면 열어주는데로 다써요
/proc/sys/fs/file-max 를 첨에 8192 에서 24576 까지 열어줘 봤는데
그래도 거의다 쓰더군요.
정상이라고 보긴 어렵죠? ㅡㅡ^
도대체 머가 문젠지....
고수님들의 답변 기다립니다. 두손모아 ^^;
ps> 현재 열려있는 파일수를 정확히 구할수 있는 방법이 있을까요?