[ 
https://issues.apache.org/jira/browse/FELIX-5665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16095088#comment-16095088
 ] 

AnilKumar Attuluri commented on FELIX-5665:
-------------------------------------------

[~karlpauls]

I was finally able to see the trace for whats resulting in a lot of calls to 
*findClassOrResourceByDelegation* which I think is causing a CPU spike:


{code:java}
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.DelegatingMethodAccessorImpl, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.DelegatingMethodAccessorImpl, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.DelegatingMethodAccessorImpl, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.DelegatingMethodAccessorImpl, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.DelegatingMethodAccessorImpl, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.DelegatingMethodAccessorImpl, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor24, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
Thu Jul 20 10:16:33 PDT 2017: Resource name: 
sun.reflect.GeneratedMethodAccessor23, Classloader: BundleClassLoader
...
...
{code}


We do use reflection a lot in our code and I think its related to that.
The high CPU spikes correlate to these reflection based class loading events.

Does this ring any bells?

I went ahead and increased the *sun.reflect.inflationThreshold* system property 
to 150 and I don't see regular CPU spikes any more (even though performance has 
taken some hit for obvious reasons)

Reference: 
http://anshuiitk.blogspot.co.il/2010/11/excessive-full-garbage-collection.html

Thanks,
Anil


> High CPU usage on 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation
> ---------------------------------------------------------------------------------------------
>
>                 Key: FELIX-5665
>                 URL: https://issues.apache.org/jira/browse/FELIX-5665
>             Project: Felix
>          Issue Type: Bug
>    Affects Versions: framework-5.6.4
>            Reporter: AnilKumar Attuluri
>         Attachments: IMG_1.jpg, IMG_2.jpg
>
>
> We have been running some performance tests to prepare our OSGi bundle 
> (*running in Apache Karaf*) for production.
> Just to give some background about our OSGi bundle, we converted an existing 
> Spring application into an OSGi bundle with all the current dependencies 
> packaged into the bundle as an uber artifact.
> When we run >= 500 TPS (each of these calls results in a http call made via a 
> library) we run into this high CPU usage spikes reaching up to 100% CPU. 
> Please see the image attached, the spikes in the image are 100% CPU usage 
> while the average is about 40%. Also see the CPU sampler image which points 
> to 
> *org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation*
> Is there an existing bug/documentation that already captures this?
> We don't see this behavior when we run the same app in standalone JVM.
>  



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to