felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karl Pauls (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FELIX-5665) High CPU usage on sun.reflect.Generated* class loads by log4j
Date Thu, 10 Aug 2017 22:51:00 GMT

     [ https://issues.apache.org/jira/browse/FELIX-5665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Karl Pauls updated FELIX-5665:
    Attachment: FELIX-5665.patch

[~aattuluri], I took a stab at the approach I outlined in my previous comment. In a nutshell,
when a request for a generated class comes in I first try to load it from the classpath, and
if that fails I'll turn around and see if I can load it from any bundle imported or required.
Only if that fails, I blacklist the class and will not try that again (unless we resolve a
dynamic import - in which case I reset the blacklist). 

I hope that this has two benefits namely, in the first place, it should make it so that generated
classes are found for import and classpath classes reflected on and in the second place, should
prevent the kind of cpu spike you see.

Can you please test the attached [^FELIX-5665.patch] and see if that makes a difference for

> High CPU usage on sun.reflect.Generated* class loads by log4j 
> --------------------------------------------------------------
>                 Key: FELIX-5665
>                 URL: https://issues.apache.org/jira/browse/FELIX-5665
>             Project: Felix
>          Issue Type: Improvement
>          Components: Framework
>    Affects Versions: framework-5.6.4
>            Reporter: AnilKumar Attuluri
>             Fix For: framework-5.6.8
>         Attachments: FELIX-5665.patch, 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
> 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

View raw message