NFS 서버 - VFS: 최대 파일 제한에 도달했습니다.

NFS 서버 - VFS: 최대 파일 제한에 도달했습니다.

저는 CentOS 7.3 NFS 서버가 왜/어떻게 중단되는지 확인하려고 노력해 왔으며 이 게시물에서 통찰력이나 방향을 얻기를 바라고 있습니다. 이 머신의 목적은 클라이언트에게 NFS 스토리지 서비스를 제공하는 것입니다. 저는 Nagios를 사용하여 서버를 모니터링하고 Ganglia/Graphite를 사용하여 메트릭을 수집하고 봅니다. Nagios 검사에서 알 수 없는 상태가 반환되고 실제로 서버에 SSH를 연결할 수 없을 때 이 문제를 처음 발견했습니다. 콘솔을 확인했지만 고객이 불만을 표시하기 시작하여 결국 포기하고 시스템을 재부팅했습니다. 다시 시작하면 문제가 해결되는 것 같습니다.

로그에는 실제로 몇 가지 관심 있는 이벤트만 있습니다. 많은 "nfsd" 경고와 많은 "파일 최대 제한 <> 도달" 오류가 뒤따릅니다.

  • nfsd: 열린 연결이 너무 많습니다. 스레드 수를 늘려보세요.
  • VFS: 파일 최대 제한 6509328에 도달했습니다.

Ganglia 측정항목은 파일 최대 제한 오류가 발생하기 약 1시간 전에 NFS 작업 및 연결이 급증하는 것을 보여줍니다. 또한 이러한 측정항목은 열린 파일 수가 해당 시간 동안 꾸준히 증가한다는 것을 보여줍니다(일반적으로 열린 파일 수는 약 7K이고 최대치는 약 100K입니다).

제가 겪고 있는 문제는 다음과 같습니다.

저는 NFS 클라이언트에 대해 잘 알지 못하며 해당 클라이언트의 작업 부하로 인해 문제가 발생하는 것으로 의심됩니다. NFS 스레드 수(RPCNFSDCOUNT)가 24로 설정되고 "ulimit -n"이 1024를 반환합니다. 이는 NFS 클라이언트가 사용할 수 있는 최대 열린 파일 수가 24 x 1024라는 의미입니까?

시스템에서 파일 최대 한도에 도달했다고 보고하면 책임이 있는 프로세스를 식별할 수 없습니다. lsof의 출력을 보면 두 가지 주요 프로세스는 /usr/sbin/gssproxy 및 /usr/sbin/tuned이지만 둘 다 열려 있는 파일(IIRC 각각 수백 개)을 많이 보고하지 않습니다. 파일 최대 제한 문제를 조사하는 동안 파일 설명자 누출을 일으키는 몇 가지 버그를 발견했지만 실행 중인 버전과는 아무런 관련이 없습니다.

이는 일부 공격적인 고객의 결과일 수도 있고, 프로세스 중 하나의 누출일 가능성이 더 높아 보입니다(가동 시간은 ~300일). 어쨌든 근본 원인을 파악하는 방법에 대한 제안 사항이 있습니까?

감사해요,

관련 정보