Я запускаю приложение Java в системе Linux. Я заметил, что приложение, похоже, потребляет много файловых дескрипторов (через несколько дней я получаю «Too many open files»).
Итаккогда я использую команду 'lsof' для вывода всех файлов, связанных с приложением Java, я получаю что-то вроде этого:
java 2690 root 239u REG 3,2 428057 94300 /tmp/jar_cache5782499018536796385.tmp (deleted)
java 2690 root 240u REG 3,2 58955 94360 /tmp/jar_cache3818842806647031366.tmp (deleted)
java 2690 root 241u REG 3,2 28673 94301 /tmp/jar_cache8793213887943479521.tmp (deleted)
java 2690 root 242u REG 3,2 67115 94302 /tmp/jar_cache3648070144390426051.tmp (deleted)
Я только показываю здесь 4, но на самом деле их 87 ичисло растет со временем.
Из того, что я прочитал в Интернете, Java использует эти временные файлы для внутренних целей или что-то в этом роде, и они нормальные.
Как видно из приведенного выше вывода, они удалены, иЯ подтверждаю, что они не существуют физически в файловой системе.
Но я боюсь, что это не освобождает файловые дескрипторы или любую связанную с ними память ... Кто-нибудь знает что-нибудь об этом?/tmp/jar_cache####.tmp 'файлы или у вас есть опыт работы с ними?