Does SwitchYard in FSW 6 offer an option to switch off ManagementLoadTask thread?
Environment
- Red Hat JBoss Fuse Service Works (FSW)
- 6.0.0
Issue
- It has been observed that
ManagementLoadTask
thread has been leading to performance degradation in the case of manySwitchyard
jar files are deployed onRed Hat JBoss Fuse Service Works 6.0.0
server. ThisManagementLoadTask
thread has one-to-one relationship with theSwitchyard
jar file that is deployed.
e.g. if 3Swithchyard
jar files are deployed then 3ManagementLoadTask
treads are operating at all times until the server is stopped. TheManagementLoadTask
tread runs every 1 second and calculate the load task by default [1] .
Hence, the obvious option seems to be to switch off theManagementLoadTask
thread from running.
In case ofCamel
, it gives an options to tune thestatisticsLevel
attribute in order to stop theManagementLoadTask
thread. TheCamel
documentation'sConfiguring level of granularity for performance statistics
section [2] talks about this parameter. - Does
Switchyard
provide support to the attribute likestatisticsLevel
through which theManagementLoadTask
thread can be stopped from running to gain the performance boost? - If the option is not supported currently by
Switchyard
, is there any workaround for solving the issue [1] ?
Resolution
- The current release of
Red Hat JBoss Fuse Service Works 6.0.0
does not contain the version of Camel which incorporated this feature [1] (which as per the JIRA [1] is version 2.11.0) of tuning the attributestatisticsLevel
. CurrentlySwitchyard
doesn't provide a way to use thecamelContext
configuration which could help users to configure the attributestatisticsLevel
for incorporating this feature like the way [2] it is shown below.
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<jmxAgent id="agent" statisticsLevel="RoutesOnly"/>
...
</camelContext>
- It has been raised as a Feature Request in JBoss Community (filed through the following JIRAs [3][4]) and the matter has been put before the respective
Product Management
team as well through a Request for Feature Enhancement so that this feature could be added in future releases ofRed Hat JBoss Fuse Service Works
. The tracking reference numbers for the related request arePRODMGT-714
andPRODMGT-715
, which can be quoted for future communications by customers to follow-up withRed Hat
to track it's status through support cases. - Looking at the
Camel
JIRA [1], one workaround would be to disableJMX instrumentation
completely. But, that's a bit of an extreme step though, and before making that kind of move do consider to compare whether it can really justify the performance overhead caused by theManagementLoadTask
thread.
[1] Add option to disable ManagementLoadTask
[2] Camel JMX
[3] Enable CamelContext configuration in SwitchYard to support tuning of statisticsLevel parameter
[4] Upgrade the Camel component shipped with SwithYard to enable the CamelContext configuration as required in SWITCHYARD-1961
Root Cause
- The current release of
Red Hat JBoss Fuse Service Works 6.0.0
does not contain the version of Camel which incorporated this feature [1] (which as per the JIRA [1] is version 2.11.0) of tuning the attributestatisticsLevel
. CurrentlySwitchyard
doesn't provide a way to use thecamelContext
configuration which could help users to configure the attributestatisticsLevel
for incorporating this feature like the way [2] it is shown below.
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<jmxAgent id="agent" statisticsLevel="RoutesOnly"/>
...
</camelContext>
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.