Варианты NT имеют
команда openfiles
, которая покажет, какие процессы имеют дескрипторы на который файлы. Это действительно, однако, требует включения системы, глобальный флаг 'ведет список объектов'
openfiles / локальный/?
говорит Вам, как сделать это, и также что потеря производительности понесена путем выполнения так.
Можно ли вызвать jvisualvm (в JDK) против проблемного приложения? Это может легко сделать вас более мудрым в отношении того, что происходит.
You may want to look through this discussion and just go backwards to see what may be helpful in trying to narrow this down: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2009-January/000530.html
This one involves JDK5 but may be helpful: http://www.nabble.com/Java-code-cache-memory-td22202283.html
Are you using this to compile jsp pages, or something similar? If not, what is being compiled after the application starts up? Are you using AspectJ with runtime weaving?
It would help to know what you are doing to get a better idea as to how to help.
Also, when the code cache is exhausted, does it just stop compiling anew or does the jvm crash? I would expect the former.
Are you using Sun's JDK? I am guessing you are since I doubt the others are listed as version 6, but it doesn't hurt to ask.
Мне было интересно, может ли вам помочь новый сборщик мусора G1 (начиная с версии Java 6, обновление 14). Вы можете попробовать это с -XX: + UnlockExperimentalVMOptions -XX: + UseG1GC, однако, согласно комментариям к блогу Джона Масамицу , этого не произойдет (если проблема действительно связана с кешем кода). Но, возможно, обсуждение там или ссылки на него могут помочь.
Из комментариев в этом сообщении в блоге: http://blogs.oracle. com / jonthecollector / entry / our_collectors
код удаляется, когда классы выгружаются (а также , когда методы "признаны недействительными", т. е. некоторые предположения, сделанные во время их компиляции, больше не удерживать)
на вашем месте я бы запустил рабочую нагрузку, сделал дамп кучи и проверил, все ли классы gc'd, как вы ожидаете.