2016-06-30 3 views
0

Мы используем websphere 8.0.0.12 для размещения наших веб-сервисов JAX-WS (используя CXF). Память websphere увеличивается ежедневно, и мы получаем «Out of Memory» каждые 5-6 дней (~ 300 000 запросов в день). Объем кучи установлен в 1 ГБ.Websphere out of Memory Issue - 8.0.0.12 - com.ibm.xml.xlxp2.scan.util.SymbolMap

После проверки дампа кучи с помощью MAT затмение, мы видим, что ниже классы занимают почти 800 Мбайт кучи

Problem Suspect 1 
The class "com.ibm.xml.xlxp2.scan.util.SymbolMap", loaded by "<system class loader>", occupies 731,574,968 (66.22%) bytes. The memory is accumulated in one instance of "com.ibm.xml.xlxp2.scan.util.Symbol[]" loaded by "<system class loader>". 

Keywords 
com.ibm.xml.xlxp2.scan.util.Symbol[] 
com.ibm.xml.xlxp2.scan.util.SymbolMap 

  Problem Suspect 2 
One instance of "com.ibm.xml.xlxp2.scan.util.DataBuffer" loaded by "<system class loader>" occupies 134,217,792 (12.15%) bytes. The memory is accumulated in one instance of "byte[]" loaded by "<system class loader>". 

Keywords 
com.ibm.xml.xlxp2.scan.util.DataBuffer 
byte[] 

Я прошел через несколько постов, которые указывают на патч для WebSphere.

Может ли кто-нибудь объяснить цель SymbolMap/DataBuffer и решить эту проблему. (за исключением патча).

ответ

2

Вы можете установить собственное свойство на jvm.

com.ibm.xml.xlxp2.scan.util.SymbolMap.maxSymbolCount=64000 

IBM StAX - это реализация парсера, которая обрабатывает документы XML для эффективного использования. Он сканирует документы XML и кэширует XML-символы. Рост кеширования может вызвать проблемы с памятью. 64000 - рекомендуемое значение для размера символьной карты. Это системное свойство вводится APAR PI08415. Также this может помочь понять, что IBM stAX связана с проблемами памяти.

+1

Разместите решение, которое будет содержать дополнительную информацию об этом свойстве JVM. Что происходит внутри, когда это свойство реализовано? – Haxiel