lsof를 사용하여 프로세스가 연 파일 설명자 수를 계산합니다.

lsof를 사용하여 프로세스가 연 파일 설명자 수를 계산합니다.

Java 프로세스에서 열린 파일 설명자 수를 확인해야 합니다. lsof의 출력 길이는 거의 40,000줄입니다. 이것은 시작에 불과합니다.

COMMAND   PID     USER   FD      TYPE             DEVICE  SIZE/OFF     NODE NAME
java    12003 jboss  cwd       DIR              253,7      4096  1835012 /obcdn/Jboss/bin
java    12003 jboss  rtd       DIR              253,0      4096        2 /
java    12003 jboss  txt       REG              253,7      7336  2621459 /obcdn/java1.8/bin/java
java    12003 jboss  mem       REG              253,2    111080   171382 /usr/lib64/libresolv-2.17.so
java    12003 jboss  mem       REG              253,2     27776   133531 /usr/lib64/libnss_dns-2.17.so
java    12003 jboss  mem       REG              253,7    278078  1966631 /obcdn/Jboss/modules/system/layers/base/org/yaml/snakeyaml/main/snakeyaml-1.15.0.redhat-1.jar
java    12003 jboss  mem       REG              253,7    360979  1835896 /obcdn/Jboss/modules/system/layers/base/org/apache/james/mime4j/main/apache-mime4j-0.6.0.redhat-5.jar
java    12003 jboss  mem       REG              253,7     32957  1835471 /obcdn/Jboss/modules/system/layers/base/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/main/jackson-module-jaxb-annotations-2.5.4.redhat-1.jar
java    12003 jboss  mem       REG              253,7     28742  1835469 /obcdn/Jboss/modules/system/layers/base/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/main/jackson-jaxrs-base-2.5.4.redhat-1.jar
java    12003 jboss  mem       REG              253,7     16843  1835470 /obcdn/Jboss/modules/system/layers/base/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider

따라서 프로세스가 거의 40000개의 파일 설명자를 사용하는 것으로 보이며 이는 약간 너무 많은 것 같고 내 관심사는 ulimit -a가 최대 열린 파일 수를 표시한다는 것입니다.

open files                      (-n) 40000

내 분석을 확인하기 위해 lsof의 각 행 출력이 실제로 개방형 FD입니까, 아니면 올바른 수를 얻기 위해 출력을 grep해야 합니까? 감사해요

답변1

memFD가 아니라 .에서 온 제품이므로 확인 mmap()하고 싶었습니다 . , , 및 또한 FD는 아니지만 각각 하나씩 있어야 하므로 숫자에 큰 영향을 미치지 않습니다.grep -v " mem "cwdrtdtxt

관련 정보