Conte o número de descritores de arquivos abertos por um processo com lsof

1

Eu preciso verificar o número de descritores de arquivos que são abertos por um processo Java. A saída de lsof é quase 40000 linhas. Aqui está apenas o começo:

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

Portanto, parece que o processo está usando quase 40000 descritores de arquivos, o que parece um pouco demais, e também o que me preocupa é que um ulimit -a mostre esse número máximo de arquivos abertos

open files                      (-n) 40000

Só para confirmar minha análise: cada linha da saída lsof é realmente um FD aberto, ou devo fazer a saída de alguma forma para ter a contagem correta? Obrigado

    
por Francesco Marchioni 15.07.2017 / 10:43

1 resposta

2

mem não são FDs, eles são de mmap() . Então, eu teria grep -v " mem " para ter certeza. cwd , rtd e txt também não são FDs, mas deve haver exatamente um de cada, para que eles não tenham um efeito muito significativo em seus números.

    
por 15.07.2017 / 11:36