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
ManagementLoadTaskthread has been leading to performance degradation in the case of manySwitchyardjar files are deployed onRed Hat JBoss Fuse Service Works 6.0.0server. ThisManagementLoadTaskthread has one-to-one relationship with theSwitchyardjar file that is deployed.
e.g. if 3Swithchyardjar files are deployed then 3ManagementLoadTasktreads are operating at all times until the server is stopped. TheManagementLoadTasktread runs every 1 second and calculate the load task by default [1] .
Hence, the obvious option seems to be to switch off theManagementLoadTaskthread from running.
In case ofCamel, it gives an options to tune thestatisticsLevelattribute in order to stop theManagementLoadTaskthread. TheCameldocumentation'sConfiguring level of granularity for performance statisticssection [2] talks about this parameter. - Does
Switchyardprovide support to the attribute likestatisticsLevelthrough which theManagementLoadTaskthread 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.0does 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. CurrentlySwitchyarddoesn't provide a way to use thecamelContextconfiguration which could help users to configure the attributestatisticsLevelfor 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 Managementteam 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-714andPRODMGT-715, which can be quoted for future communications by customers to follow-up withRed Hatto track it's status through support cases. - Looking at the
CamelJIRA [1], one workaround would be to disableJMX instrumentationcompletely. 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 theManagementLoadTaskthread.
[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.0does 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. CurrentlySwitchyarddoesn't provide a way to use thecamelContextconfiguration which could help users to configure the attributestatisticsLevelfor 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.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
