Announcement Announcement Module
Collapse
No announcement yet.
Performance issues with 2.0-rc2? Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Performance issues with 2.0-rc2?

    Is anyone else seeing performance degradation with 2.0-rc2? I recently upgraded from 1.2.3 and my app is running roughly 30% slower. I have a thread pool with a 600 thread max, each job is executed on its own thread and there are roughly 60K jobs at a time (60K burst, then nothing for a while, then another 60K burst, etc.).

    Using JConsole to look at the thread stacks, I'm seeing a lot of this:

    Code:
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.hasDependentBean(DefaultSingletonBeanRegistry.java:242)  
    org.springframework.beans.factory.support.AbstractBeanFactory.isBeanNameUsed(AbstractBeanFactory.java:972)  
    org.springframework.beans.factory.support.BeanDefinitionValueResolver.adaptInnerBeanName(BeanDefinitionValueResolver.java:196)  org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanDefinition(BeanDefinitionValueResolver.java:173)  
    org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:105)  
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:801)  
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:592)  
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:392)  
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:259)  
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)  
    com.foo.workflow.framework.solution.impl.SolutionBeanFactoryImpl.getBean(SolutionBeanFactoryImpl.java:137)  
    com.foo.workflow.framework.solution.impl.SolutionBeanResolverImpl.getBean(SolutionBeanResolverImpl.java:56)  
    com.foo.workflow.framework.taskExecutor.RunnableTaskImpl.run(RunnableTaskImpl.java:88)  
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)  
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)  
    java.lang.Thread.run(Thread.java:595)
    and this:

    Code:
    Name: pool-1-thread-169
    State: RUNNABLE
    Total blocked: 17  Total waited: 110
    
    Stack trace: 
    org.springframework.beans.factory.support.AbstractBeanFactory.getType(AbstractBeanFactory.java:313)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch(DefaultListableBeanFactory.java:249)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:158)
    org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:176)
    org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator.findCandidateAdvisors(DefaultAdvisorAutoProxyCreator.java:107)
    org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:79)
    org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:65)
    org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:221)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:259)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:349)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:239)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
    org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean$1.getObject(ObjectFactoryCreatingFactoryBean.java:75)
    com.foo.workflow.framework.service.discovery.DiscoveryManagerImpl.discover(DiscoveryManagerImpl.java:155)
    com.foo.workflow.framework.service.discovery.DiscoveryManagerImpl.doDiscovery(DiscoveryManagerImpl.java:96)
    com.foo.workflow.framework.service.discovery.DiscoveryServiceImpl.doDiscovery(DiscoveryServiceImpl.java:101)
    com.foo.workflow.framework.service.discovery.DiscoveryServiceImpl.doDiscovery(DiscoveryServiceImpl.java:79)
    sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:585)
    org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:292)
    org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
    com.foo.workflow.framework.monitor.service.ServiceMonitorAdvice.invoke(ServiceMonitorAdvice.java:67)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
    org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
    $Proxy17.doDiscovery(Unknown Source)
    com.foo.workflow.framework.service.update.UpdateServiceImpl.discoverPrinter(UpdateServiceImpl.java:288)
    com.foo.workflow.framework.service.update.UpdateServiceImpl.updateSettingsGeneral(UpdateServiceImpl.java:442)
    com.foo.workflow.framework.service.update.UpdateServiceImpl.updateSettings(UpdateServiceImpl.java:111)
    com.foo.workflow.framework.service.query.impl.QueryServiceImpl.getSettings(QueryServiceImpl.java:147)
    com.foo.workflow.solutions.dm.mps.service.ald.impl.DefaultAssetLifecycleDataService.externalizeData(DefaultAssetLifecycleDataService.java:89)
    com.foo.workflow.solutions.dm.mps.task.ald.impl.DefaultAssetLifecycleDataTask.execute(DefaultAssetLifecycleDataTask.java:183)
    sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:585)
    org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:292)
    org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
    com.foo.workflow.framework.monitor.task.TaskMonitorAdvice.invoke(TaskMonitorAdvice.java:190)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
    org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
    $Proxy24.execute(Unknown Source)
    com.foo.workflow.framework.taskExecutor.RunnableTaskImpl.run(RunnableTaskImpl.java:96)
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
    java.lang.Thread.run(Thread.java:595)
    Anyone else seeing anything like this? Any ideas?

  • #2
    Does the resounding silence mean no one else has noticed this?

    Additional information: This isn't just a 2.0 problem. I tried with 1.2.8 and it too is considerably slower than 1.2.3; though not nearly as slow as 2.0-rc2.

    Comment


    • #3
      Hi Jamie

      The 'resounding silence' is I daresay down to the fact that diagnosing the issue is potentially going to be time consuming. There are no quick answers that one can blast in during one's tea break, or at least none that I can think of

      Go on then; I'll have a go at reproducing the issue sometime this week (perhaps this coming weekend); is there anything special about your deployment/configuration I should know? Feel free to email me anything you consider relevant/private at [email protected] (in confidence of course). How much of a performance degradation are we talking about here?

      Cheers
      Rick

      Comment

      Working...
      X