Утечка памяти в опциях классов Weblogic, SUN, Apache и Oracle - PullRequest
2 голосов
/ 01 июня 2010

Ниже приведено описание проблем утечки памяти.

  1. Статистика показывает значительный рост в Пермской области (статические классы) Потоки работали в течение 8 часов, отвал кучи был взят через 2 часа и при конец. Рост в Пермском крае выявлен

  2. Статистика показывает, что с нашего последнего прогона рост на 240 МБ за 6 часов, 40 МБ рост каждый час 2 Гб кучи - можно удерживать ¾ дней, куча будет заполнена за ¾ дней Шоу отвал - рост в области, как указано ниже

JMS-соединение / область сеанса

Apache

  • org.apache.xml.dtm.DTM []
  • org.apache.xml.dtm.ref.ExpandedNameTable $ ExtendedType
  • org.jdom.AttributeList
  • org.jdom.Content []
  • org.jdom.ContentList
  • org.jdom.Element

ВС

  • ConstantPoolCacheKlass
  • ConstantPoolKlass
  • ConstMethodKlass
  • MethodDataKlass
  • MethodKlass
  • SymbolKlass
  • байт []
  • char []
  • com.sun.org.apache.xml.internal.dtm.DTM []
  • com.sun.org.apache.xml.internal.dtm.ref.ExtendedType
  • java.beans.PropertyDescriptor
  • java.lang.Class
  • java.lang.Long
  • java.lang.ref.WeakReference
  • java.lang.ref.SoftReference
  • java.lang.String
  • java.text.Format []
  • java.util.concurrent.ConcurrentHashMap $ Segment
  • java.util.LinkedList $ Entry

Weblogic

  • com.bea.console.cvo.ConsoleValueObject $ PropertyInfo
  • com.bea.jsptools.tree.TreeNode
  • com.bea.netuix.servlets.controls.content.StrutsContent
  • com.bea.netuix.servlets.controls.layout.FlowLayout
  • com.bea.netuix.servlets.controls.layout.GridLayout
  • com.bea.netuix.servlets.controls.layout.Placeholder
  • com.bea.netuix.servlets.controls.page.Book
  • com.bea.netuix.servlets.controls.window.Window []
  • com.bea.netuix.servlets.controls.window.WindowMode
  • javax.management.modelmbean.ModelMBeanAttributeInfo
  • weblogic.apache.xerces.parsers.SecurityConfiguration
  • weblogic.apache.xerces.util.AugmentationsImpl
  • weblogic.apache.xerces.util.AugmentationsImpl $ SmallContainer
  • weblogic.apache.xerces.util.SymbolTable $ Entry
  • weblogic.apache.xerces.util.XMLAttributesImpl $ Атрибут
  • weblogic.apache.xerces.xni.QName
  • weblogic.apache.xerces.xni.QName []
  • weblogic.ejb.container.cache.CacheKey
  • weblogic.ejb20.manager.SimpleKey
  • weblogic.jdbc.common.internal.ConnectionEnv
  • weblogic.jdbc.common.internal.StatementCacheKey
  • weblogic.jms.common.Item
  • weblogic.jms.common.JMSID
  • weblogic.jms.frontend.FEConnection
  • weblogic.logging.MessageLogger $ 1
  • weblogic.logging.WLLogRecord
  • weblogic.rjvm.BubblingAbbrever $ BubblingAbbreverEntry
  • weblogic.rjvm.ClassTableEntry
  • weblogic.rjvm.JVMID
  • weblogic.rmi.cluster.ClusterableRemoteRef
  • weblogic.rmi.internal.CollocatedRemoteRef
  • weblogic.rmi.internal.PhantomRef
  • weblogic.rmi.spi.ServiceContext []
  • weblogic.security.acl.internal.AuthenticatedSubject
  • weblogic.security.acl.internal.AuthenticatedSubject $ SealableSet
  • weblogic.servlet.internal.ServletRuntimeMBeanImpl
  • weblogic.transaction.internal.XidImpl
  • weblogic.utils.collections.ConcurrentHashMap $ Entry

Транзакция Oracle XA

  • oracle.jdbc.driver.Binder []
  • oracle.jdbc.driver.OracleDatabaseMetaData
  • oracle.jdbc.driver.T4C7Ocommoncall
  • oracle.jdbc.driver.T4C7Oversion
  • oracle.jdbc.driver.T4C8Oall
  • oracle.jdbc.driver.T4C8Закрыть
  • oracle.jdbc.driver.T4C8TTIBfile
  • oracle.jdbc.driver.T4C8TTIBlob
  • oracle.jdbc.driver.T4C8TTIClob
  • oracle.jdbc.driver.T4C8TTIdty
  • oracle.jdbc.driver.T4C8TTILobd
  • oracle.jdbc.driver.T4C8TTIpro
  • oracle.jdbc.driver.T4C8TTIrxh
  • oracle.jdbc.driver.T4C8TTIuds
  • oracle.jdbc.driver.T4CCallableStatement
  • oracle.jdbc.driver.T4CClobAccessor
  • oracle.jdbc.driver.T4CConnection
  • oracle.jdbc.driver.T4CMAREngine
  • oracle.jdbc.driver.T4CNumberAccessor
  • oracle.jdbc.driver.T4CPreparedStatement
  • oracle.jdbc.driver.T4CTTIdcb
  • oracle.jdbc.driver.T4CTTIk2rpc
  • oracle.jdbc.driver.T4CTTIoac
  • oracle.jdbc.driver.T4CTTIoac []
  • oracle.jdbc.driver.T4CTTIoauthenticate
  • oracle.jdbc.driver.T4CTTIokeyval
  • oracle.jdbc.driver.T4CTTIoscid
  • oracle.jdbc.driver.T4CTTIoses
  • oracle.jdbc.driver.T4CTTIOtxen
  • oracle.jdbc.driver.T4CTTIOtxse
  • oracle.jdbc.driver.T4CTTIsto
  • oracle.jdbc.driver.T4CXAConnection
  • oracle.jdbc.driver.T4CXAResource
  • oracle.jdbc.oracore.OracleTypeADT []
  • oracle.jdbc.xa.OracleXAResource $ XidListEntry
  • oracle.net.ano.Ano
  • oracle.net.ns.ClientProfile
  • oracle.net.ns.ClientProfile
  • oracle.net.ns.NetInputStream
  • oracle.net.ns.NetOutputStream
  • oracle.net.ns.SessionAtts
  • oracle.net.nt.ConnOption
  • oracle.net.nt.ConnStrategy
  • oracle.net.resolver.AddrResolution
  • oracle.sql.CharacterSet1Byte

Мы используем - Oracle BEA Weblogic 9.2 MP3 - JDK 1.5.12 - Oracle версия 10.2.0.4

Для Oracle мы нашли один патч, который необходимо применить, чтобы избежать утечек памяти транзакций XA. Но мы застряли, чтобы устранить утечки SUN, BEA Weblgogic и Apache.

пожалуйста, предложите ...

С уважением, Амит Дж.

Ответы [ 2 ]

2 голосов
/ 01 июня 2010

Чтобы определить, что ваше приложение не является причиной проблемы, разверните его на другом сервере с открытым исходным кодом (jboss и т. Д.) И повторно запустите сценарий нагрузочного тестирования. Если проблема не устраняется, вам нужно изучить свои реализации в приложении.

В вашем приложении вам необходимо выделить отдельные транзакции и их характер, который вызывает утечку. Часто видно, что одна конкретная транзакция или операция инициирует поведение - изоляция до этого уровня - помогает сосредоточиться на основной проблеме. Для этого вы можете добавить трекеры к каждой из операций, которые включают транзакцию xa или имеют дело с интенсивным использованием памяти из-за создания нескольких объектов.

2 голосов
/ 01 июня 2010

Вот страница Sun на устранении утечек памяти .В разделе 3.3 приведен ряд методов, позволяющих выяснить, где происходит утечка.

Любые ответы, в которых говорится, где утечка может быть основана на дампе, что вы выполняете и т. Д., Скорее всего, будут чисто догадками.Лучше всего попытаться отследить утечку (и) самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...