본문 바로가기
다양한 TIP

사용중인 프로세스의 fd(File Descriptor) 확인하는 방법

by 유기농프로그래밍 2022. 11. 23.
반응형

FD(File Descriptor)란?

컴퓨터 프로그래밍 분야에서 파일 서술자(file descriptor) 또는 파일 기술자는 특정한 파일에 접근하기 위한 추상적인 키이다. 이 용어는 일반적으로 POSIX 운영 체제에 쓰인다. 마이크로소프트 윈도우와 C 표준 입출력 라이브러리 환경에서 "파일 핸들"(file handle)이라는 말이 선호되지만 후자의 경우 기술적으로 다른 객체이다.
참고 : 위키백과

 

FD를 확인하는 방법

FD를 확인하는 방법으로 두가지를 소개합니다.

예시로 apache2 프로세스를 이용하여 확인하는 방법을 보겠습니다.

apache2 pid 확인방법

lsof 명령어 사용하기

lsof는 list open files을 뜻하는 명령어입니다. 열려있는 모든 파일과, 그 파일들을 열고 있는 프로세스들의 목록을 출력하는데 사용합니다.

위에서 얻은 apache2의 process id(pid)를 가지고 명령어를 입력해보겠습니다.

 

아래 스크린샷과 같이 엄청 긴 내용들이 작성되는 걸 볼 수 있습니다. FD를 보면 실제 폴더로 FD를 연 부분은 0r 1w 2w 등과 같이 마지막 부분입니다.

숫자 뒤의 문자는 아래와 같은 의미를 지니고 있습니다.

r read access
w write access
u read and write access

lsof


lsof

 

/proc/[pid]/fd 폴더 확인하기

ls -l 명령어로 아래와 같이 출력된 내용을 볼 수 있습니다. lsof 명령어에서 나온 0r 1w 2w 3u와 같은 값도 여기 첫번째 부분의 권한을 보면 알 수 있게됩니다. 

ls -l proc fd

 

프로세스별 FD 기본값 확인해보기

하나의 프로세스에서 너무 많은 fd를 사용하면 문제가 될 수 있습니다. max 값은 엄청 큰 값이지만, 기본적으로 설정된 디폴트 값을 확인해보면 좋습니다.

ulimit -aS 명령어를 치면, open files라는 이라는 값이 나옵니다. 아래에서는 1024로 설정되어 있으므로 1024개를 넘지 않도록 개발을 해야할 것 같습니다.

ulimit

반응형

댓글