Sharing the case resolution:
Experiencing high CPU in comparison to TSM backups for DB2.
Provided detailed analysis on what's using CPU methods to reduce this.
sSDTHeadMaxCPUUsage although set to 25% not having the desired effect:
DB2SBT log:
8454448 1 04/05 06:46:01 ####### SDT max. CPU thread count is [10] based on reg. value [25%], Procsr count [40]
8454448 1 04/05 06:46:01 ####### SdtBase::InitWrkPool: Initializing SDT head thread pool
8454448 1 04/05 06:46:01 ####### Max head thread count set to 40. CPU # = 40
8454448 1 04/05 06:46:01 ####### Threads per connection set to 20
8454448 1 04/05 06:46:01 ####### Initial max. threads set to 40
Logs indicate that we see 40 CPU's however the machine actually only has 5 virtual CPU's (lpar). We are performing calculation based on 40 CPU's meaning 24% of 40 = 10 and so 10 CPU threads used rather than expected 25% of 5 (1 or 2 rounded up).
This should be amended to specify threads rather than % of CPU - during session for testing we changed this to 2.
Noticed that deduplication is happening on client but the understanding was that this was happening on media agent:
DB2SBT log:
8126636 1 04/04 21:00:56 3472782 CPipelayer::InitiatePipeline signatureType [CV_SIGNATURE_SHA_512], signatureWhere [CV_CLIENTSIDE_DEDUP]
This is because (by default) storage policy has setting enabled to perform deduplication on clients.
That setting overrides the subclient setting to perform on Media agent as per the note in the subclient properties.
For testing purposes, disabled deduplication for the subclient to test - this will mimic deduplication not happening on the client.
The solution here could be to create a new storage policy and for clients where deduplication must happen on the media agent have the 'Enable Deduplication on Clients' setting disabled.
Encryption enabled for agent side (client). This will consume CPU cycles as well. For testing, changed this setting to 'Media Only'.
There are a couple of other factors:
Disabling Checksum (CRC) checking at the client side - Network CRC helps us detect corruption caused during network transfer but on some systems / processors this can consume alot of CPU cycles.
This can only be disabled at media agent level, see https://documentation.commvault.com/v11/expert/qscript/setMediaAgentProperty.html
It is possible to disable at client level however this would require an escalation to our development team to confirm CRC checking is actually the cause of high CPU usage.
Resource Control Groups - See https://documentation.commvault.com/commvault/v11_sp20/article?p=4954.htm another method to control / throttle CPU usage..
Target CPU usage of 40 - 50 % during their backups has now been achieved.