fs.file-max의 최대값에 도달했는지 확인하는 방법

fs.file-max의 최대값에 도달했는지 확인하는 방법

Linux RHEL 서버에서는 fs.file-max다음과 같이 설정되어 있습니다.100000

sysctl -p | grep fs.file-max
fs.file-max = 100000

내가 이해한 바로는 file-max커널 매개변수는 열린 파일 설명자를 참조하고 file-nr현재 열린 파일 설명자의 수를 제공합니다. 그러나 lsof현재 작업 디렉터리, 메모리 매핑된 라이브러리 파일 및 실행 가능한 텍스트 파일과 같이 파일 설명자를 사용하지 않는 파일을 포함하여 열려 있는 모든 파일을 나열합니다.

다음은 lsof실제로 우리가 해당 가치에 도달했음을 나타내는 좋은 표시 입니까 fs.file-max?

lsof | wc -l

또는

[[ `lsof | wc -l` -gt 100000 ]] && echo "please increase the fs.file-max"

기타 관련 링크 -lsof 명령을 사용하지 않고 열린 파일 설명자를 표시하는 방법

답변1

이것

[[ `lsof | wc -l` -gt 100000 ]] && echo "please increase the fs.file-max"

오해의 소지가 있을 수 있습니다. 아래 참고자료를 참조하세요.

기반으로RHEL 5 튜닝cat /proc/sys/fs/file-nr, 출력을 사용할 수 있습니다. 우리는 비교할 수 있다첫 번째그리고마지막출력 필드. 첫 번째 필드가 표시됩니다.할당된 총 파일 핸들 수마지막 필드가 표시됩니다.할당할 수 있는 가장 큰 파일 핸들. 따라서 90%에 도달하면 경고를 표시하는 검사를 설정하십시오.

[[ $(echo "$(cat /proc/sys/fs/file-nr | cut -f1) / $(cat /proc/sys/fs/file-nr | cut -f3) * 100" | bc -l) -ge 90 ]] \
  && echo "90% reached. Please increase the fs.file-max"


lsof출력 간의 몇 가지 차이점은 다음과 같습니다 file-nr.

file-max 커널 매개변수는 열린 파일 설명자를 참조하고, file-nr은 현재 열린 파일 설명자의 수를 제공합니다. 그러나 lsof는 현재 작업 디렉터리, 메모리 매핑된 라이브러리 파일 및 실행 가능한 텍스트 파일과 같이 파일 설명자를 사용하지 않는 파일을 포함하여 열려 있는 모든 파일을 나열합니다.

바라보다인용하다

관련 정보