LabHub

리눅스 장애 대응 · 파일디스크립터와 한도 · 퀴즈

퀴즈: 파일디스크립터와 한도

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. nginx 가 Too many open files 를 냅니다. ulimit -n 은 1048576 입니다. 다음에 볼 곳은?

    1. /etc/security/limits.conf
    2. grep 'Max open files' /proc/<nginx PID>/limits
    3. fs.file-max 값
    4. 디스크 용량
  2. Too many open files 와 Too many open files in system 의 차이는?

    1. 같은 뜻이고 커널 버전에 따른 표현 차이다
    2. 앞은 소켓, 뒤는 일반 파일에서 난다
    3. 앞은 EMFILE(프로세스 한계), 뒤는 ENFILE(시스템 전역 한계)
    4. 뒤는 컨테이너 환경에서만 발생한다
  3. systemd 서비스의 fd 한도를 유닛 파일에서 올렸는데 반영되지 않습니다. 원인은?

    1. systemctl daemon-reload 를 하지 않았다
    2. 값이 fs.file-max 를 넘었다
    3. reload 만 하고 restart 를 하지 않았다. rlimit 은 프로세스 생성 시점에 적용된다
    4. LimitNOFILE 은 소프트만 지정한다
  4. ss 로 보니 CLOSE-WAIT 소켓이 2만 개 쌓여 있고 전부 같은 상대입니다. 무엇을 뜻하나요?

    1. 우리 쪽 애플리케이션이 close() 를 호출하지 않고 있다
    2. 상대 서버가 과부하 상태다
    3. 커널이 곧 자동 정리할 것이므로 문제없다
    4. TIME-WAIT 가 너무 많아 재사용이 안 된다
  5. TIME-WAIT 소켓이 많다고 fd 한도를 올리는 것이 무의미한 이유는?

    1. TIME-WAIT 는 fd 를 두 배로 소비하기 때문
    2. TIME-WAIT 는 소켓이 아니기 때문
    3. TIME-WAIT 는 fd 를 소비하지 않고 커널이 알아서 정리하기 때문
    4. fd 한도는 소켓에 적용되지 않기 때문
  6. 같은 파일을 50번 open 하면?

    1. fd 는 1개만 만들어지고 참조 카운트가 증가한다
    2. 두 번째부터는 오류가 난다
    3. fd 50개가 만들어지고 모두 같은 inode 를 가리킨다
    4. 파일이 50개로 복제된다