Java и Tomcat — CodeCache заполнен. Компилятор отключенJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java и Tomcat — CodeCache заполнен. Компилятор отключен

Сообщение Anonymous »

Моя ситуация
  • Я разработал веб-сервис для анализа документов
  • Этот веб-сервис читает документы txt и pdf.
  • Для чтения pdf-файлов я использую библиотеку Java, разработанную моим научным руководителем.
  • Я использую Java 7.
  • В настоящее время я развертываю его на Tomcat v7.0.
  • Если я создаю военный файл из своего приложения и размещаю его на локальном сервере Tomcat на своем ПК, или если я запускаю свое приложение на Tomcat через eclipse ee, чтение PDF-файла не вызывает проблем.
Моя проблема
  • Я настроил себе небольшой сервер (не самое лучшее оборудование, двухъядерный процессор, 4 ГБ оперативной памяти), установил Tomcat, Java и все остальное, что казалось необходимо мне.
  • Когда я теперь развертываю военный файл на серверах Tomcat с помощью менеджера Tomcat, все работает нормально, пока я не пытаюсь разрешить приложению читать PDF-файл.
  • После того, как приложение прочитало несколько страниц, я получаю сообщение об ошибке, что CodeCache переполнен и из-за этого отключена компиляция.

Пример вывода ошибки при импорте PDF

Этот журнал показывает, как импортируется PDF-файл, и в какой-то момент появляются сообщения об ошибках. Я выделил сообщение об ошибке жирным шрифтом.
...
31 мая 2012 г., 11:15:40 infovis.structure.pdf.PDFImport процесс INFO:
Обработка, страница 13
31 мая 2012 г., 11:15:40 infovis.structure.pdf.PDFIИмпорт процесса INFO: обработка, страница 14
31 мая 2012 г., 11:15:41 infovis.structure.pdf.PDFIПроцесс импорта INFO: обработка страницы 15

Код: Выделить всё

Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled. Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize= Code Cache  [0x00007fa43437e000, 0x00007fa4347fe000, 0x00007fa43737e000)  total_blobs=1858 nmethods=1318 adapters=490 free_code_cache=44631Kb largest_free_block=45618688 Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled. Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize= Code Cache  [0x00007fa43437e000, 0x00007fa4347fe000, 0x00007fa43737e000)  total_blobs=1859 nmethods=1318 adapters=490 free_code_cache=44631Kb largest_free_block=45618688
[/b]
31 мая 2012 г., 11:16:19 infovis.structure.pdf.PDFIПроцесс импорта ИНФОРМАЦИЯ: Обработка Страница 16
31 мая 2012 г., 11:16:20 infovis.structure.pdf.PDFIПроцесс импорта ИНФОРМАЦИЯ: обработка Страница 17

Код: Выделить всё

Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled. Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize= Code Cache  [0x00007fa43437e000, 0x00007fa4347fe000, 0x00007fa43737e000)  total_blobs=1860 nmethods=1318 adapters=490 free_code_cache=44630Kb largest_free_block=45618688 May 31, 2012 11:17:07 AM infovis.structure.pdf.PDFImport process INFO: Processing Page 18 Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled. Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize= Code Cache  [0x00007fa43437e000, 0x00007fa4347fe000, 0x00007fa43737e000)  total_blobs=1861 nmethods=1318 adapters=490 free_code_cache=44633Kb largest_free_block=45618688
[/b]
и так далее...
Что я уже пробовал< /p>
Я пытался изменить размеры кэша в конфигурации tomcat на своем сервере (я не очень хорошо разбираюсь в оболочке Linux). Я попытался увеличить размер CodeCache, а также размер других кешей, но проблема все еще возникает. Я проверил свой код на предмет возможных утечек, но пока не нашел их (помните, если я запущу его через eclipse, я не получу это сообщение, поэтому это может указывать на проблему с конфигурацией tomcat(?)). Я также попытался установить параметр «UseCodeCacheFlushing», который должен принудительно очищать кэш кода, когда он заполняется, но почему-то это не влияет на сбой приложений.
Мой конфигурация сервера tomcat
Я читал, что размер CodeCache по умолчанию составляет 32 МБ или 64 МБ, если это 64-битное приложение. Я попробовал зарезервировать 512 МБ (может быть, я что-то не так сделал в конфигурации?), но проблема, конечно, повторилась.

Вы можете передать параметры запуска JVM в Java здесь . Если они не установлены, параметры
по умолчанию будут следующими: -Djava.awt.headless=true -Xmx128m
-XX:+UseConcMarkSweepGC
Использовать "-XX:+UseConcMarkSweepGC ", чтобы включить сборщик мусора CMS
(уменьшение времени отклика). Если вы используете этот параметр и запускаете Tomcat на
машине с ровно одним процессором, содержащим одно или два ядра,
вам также следует добавить параметр «-XX:+CMSIncrementalMode».
JAVA_OPTS="-Djava.awt.headless=true -Xmx3g -Xms2g -XX:+UseCodeCacheFlushing -XX:+UseG1GC -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=512m"
Мои мысли по этому поводу
В ходе исследования я обнаружил несколько замечаний о том, что проблемы, связанные с CodeCache, могут указывать на память проблемы утечки, когда происходит программный сбой, в результате которого сборщик мусора не может очистить кеш.
Это может возможно, но, к сожалению, у меня нет источника код библиотеки, в которой я читаю pdf. Но с другой стороны, у меня нет проблем с чтением 650-страничного PDF-файла на моем настольном компьютере на локальном Tomcat (четырехъядерный процессор, 4x3,0 ГГц, а также 4 ГБ оперативной памяти), и это меня смущает.
Может быть, это просто проблема кота, которую можно решить, если я использую для развертывания другой сервер, например glassfish?
Может ли кто-нибудь мне помочь или предоставить какие-либо идеи или предложения? Может я какую-то настройку неправильно сделал? У меня не так уж много опыта работы с tomcat или другими серверами, поэтому любая помощь приветствуется.
Большое спасибо за каждый ответ и мысль, которой вы со мной делитесь.
Большое спасибо за каждый ответ и мысль, которой вы делитесь со мной.
Большое спасибо за каждый ответ и мысль, которой вы делитесь со мной.
п>

Подробнее здесь: https://stackoverflow.com/questions/108 ... n-disabled
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»