질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

열린 파일 갯수

작성자 정보

  • 이글 작성
  • 작성일

컨텐츠 정보

본문

리눅스 한 지가 오래되어서 요즘도 이런가 모르겠습니다만 다음 내용은
와우리눅스 게시판에 있던 내용인데 문태준님의 글을 옮겨온 것 입니다.
그리고 프로세서와 파일의 관계는 여러 방법이 있겠지만 예전에 저는
lsof 라는 프로그램을 사용했습니다.
복잡하지만 막강한 프로그램입니다.참고하세요....

============================================================

파일, 프로세스 갯수 조정

주요하게 살펴야할 것듯.

리눅스에서 동시에 열 수 있는 파일수 : NR_FILE , 4096
한 프로세스가 열 수 있는 파일수 : NR_OPEN, 1024


# vi /usr/src/linux/include/linux/fs.h

# per user max open file
#define INR_OPEN 1024          /* Initial setting for nfile rlimits */

# system max open file
#define NR_FILE  4096  /* this can well be larger on a larger system */


여기서 한 프로세스가 열수 있는 파일수를 수정하려면
/usr/src/linux/include/linux/limits.h 에서

# fs.h에서의 per user max open file(INR_OPEN)과 동일하게 지정
#define NR_OPEN        1024

이부분도 수정을 해주어야합니다.
         
수정을 하였으면 컴파일을 해서 테스팅을 해야겠지요.
여기서 주의할 것은 메모리가 적은 시스템의 경우라면 부팅이 되지
않을 수도 있습니다.


그런데 굳이 컴파일을 하지 않아도 /proc 를 이용 변경할 수 있습니다.

# cat /proc/sys/fs/file-max
4096

# echo 8192 > /proc/sys/fs/file-max
# cat /proc/sys/fs/file-max
8192


# cat /proc/sys/fs/file-nr
591    184    8192

여기서 591는 현재 할당된 파일핸들, 184는 그중사용된 파일핸들,
8192는 파일핸들의 최대숫자입니다. 할당된 파일핸들이 최대치로
가더라도 실제 사용된 파일핸들의 숫자가 여유가 있다면 걱정할
필요는 없습니다.
(만약 시스템에서 "running out of file handles" 라는 메시지가
나온다면 열수 있는 파일에 문제가 있다는 것입니다)


그런데 안타깝게도 한 프로세스당 열수 있는 파일수(NR_OPEN)은
쉽게 바꿀 수가 없습니다. 기본 1024인데 이건 위에서 말을 하대로
컴파일을 하세요. 그다음 시스템이 뻗을지 계속 유지될지는...


여기서 좀만 더 살펴보지요.
(다시 NR_FILE 이 4096이라 하구요)

# cat /proc/sys/fs/inode-max
8319

# cat /proc/sys/fs/inode-nr
8340    1006


파일 핸들에 따라 커널에서 동적으로 inde structures를 할당합니다.
inode-max는 inode 핸들러의 최대값입니다.
여기서 inode-max  값은 3-4배이상으로 하라고 추천합니다.

/usr/src/linux/Documentation/proc.txt 에 /proc 에 대한
상세한 설명이 나와있는데 이에 대해서 살펴보지요.


This value should be 3 to 4 times larger than the value
in file-max, since stdin, stdout, and network sockets also need an
inode struct to handle them.

그러니깐 stdin(표준입력), stdout(표준출력), 네트웍 소켓에서
파일을 다루기 위해 inode struct 가 필요하다고 하네요.




이상은 문태준님의 글이였습니다.
===========================================================

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  234 명