1 votos

Parece que no puedo resolver java.io.FileNotFoundException (Demasiados archivos abiertos en el sistema)

Descargo de responsabilidad. Primero yo NO soy SU. Estoy a mediados de computación a nivel de usuario con un poco de experiencia. Me puede escribir código básico, se han utilizado los equipos de más de 20 años. MS-dos, Windows, a través de los años, ahora estoy en OS X. he buscado de alta y baja para un par de semanas ahora, así que han decidido venir a las armas de gran pedir ayuda. Espero que estás bien con esto.

En primer lugar estoy en OS X 10.11.6.

He estado teniendo un problema con mi Crashplan software de copia de seguridad y estaba trabajando a través de él con sus personas de apoyo. Todo se vino abajo para el error:

java.io.FileNotFoundException (Too many open files in system)

He leído sobre y encontré que había que aumentar el número de archivos abiertos permitidos en mi sistema. Hice esta creación y modificación de los valores de los archivos que se encuentran en /Library/LaunchDaemons.

He creado dos archivos: limit.maxfiles.plist y limit.maxproc.plist

Dentro de limit.maxfiles.plist puse:

    <?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"  
        "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">  
  <dict>
    <key>Label</key>
    <string>limit.maxfiles</string>
    <key>ProgramArguments</key>
    <array>
      <string>launchctl</string>
      <string>limit</string>
      <string>maxfiles</string>
      <string>54000</string>
      <string>54000</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist>  

y dentro de limit.maxproc.plist puse:

    <?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
  <plist version="1.0">
    <dict>
      <key>Label</key>
        <string>limit.maxproc</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxproc</string>
          <string>4096</string>
          <string>4096</string>
        </array>
      <key>RunAtLoad</key>
        <true />
      <key>ServiceIPC</key>
        <false />
    </dict>
  </plist>

He reiniciado y comprobado esta había tomado afectar por ejecutar launchctl limit maxfiles en el terminal. Esto demostró que era en efecto.

Empecé crashplan de nuevo y se dio el mismo error. He comprobado con el crashplan personas y dijeron difíciles, ese es el problema, arreglarlo (lo cual es bastante justo, creo).

Así que, seguí subiendo el número de archivos permitidos para ser abierto hasta que llegué a 900000000). Sí, eso es un total de 900 millones de archivos permitido abrir. Más de lo que tengo en mi total de la unidad. El error persiste. La comprobación de con launchctl limit maxfiles muestra que es en efecto.

Así que, que me dejó perplejo. Luego me miró a su alrededor y se encontró que puedo ejecutar un comando como ulimit -S -n 900000 que dará alguna otra parte del sistema de archivos para jugar con. No estoy seguro de cómo funciona, pero lo he comprobado ulimit -a y lo era en efecto. Mismo problema con Crashplan, aunque.

Así que ahora no estoy seguro de qué hacer, así que me he venido a pedir a la gente que sabe que OS está mejor que la mayoría. ¿Alguien puede ofrecer algunas orientaciones sobre lo que puedo hacer para resolver esto?

Muchas gracias.

1voto

jwd630 Puntos 121

Tal vez esta realidad responde a la pregunta para usted. Pegue lo siguiente en una ventana de Terminal:

while true; do
    sudo lsof |
       awk '{ files[$1]++ } END { for (key in files) { print key, files[key] } }' |
       sort -n -k 2 | tail -10 
    sleep 60;
done

Lo que va a hacer:

  • si bien es cierto - Hasta que se interrumpe, por ejemplo, Control-C
  • lsof - Lista de todos los archivos abiertos en el sistema y el nombre de la proceso (comando) que tiene los archivos abiertos
  • awk - Contar el número de los archivos abiertos por el proceso de
  • ordenar: ordenar la lista por número de archivos abiertos
  • la cola del Informe el 10 de procesos con la mayoría de los archivos abiertos
  • sueño - Espere un minuto y hacer todo de nuevo

Usted debe ver el culpable de inmediato o va a comenzar a moverse hacia el final de la lista antes de demasiado tiempo.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: