Per a request from my management, I need to quantify, in a reproducable way, the amount of CPU burned by CICS as "overhead".
Is this too simple...
From end-of-day stats...(Address space CPU) - (All CPU charged to the various TCB's) = CICS "overhead"?
I realize this is a bit sloppy, and will miss some CPU from other address spaces (DB2) and might include some "overhead" like things like DSN allocation/open and program load... but I believe it to be negligible for our on-lines.
I think that you really want to know what CPU is being used by CICS that cannot be charged out to individual users. This would include things like opening/closing files, scanning of dispatcher chains, when nothing is apparently going on. I think that you will find calculating this non-chargeable overhead is more complex than you suggest. It will all come down to what you, or your management, mean by overhead, how accurate you need to be, and how much people resource you want to commit to getting that accuracy.
For CICS TS <2.2 you could adopt the approach (as you suggested) of saying that any CPU not allocated to the QR TCB (and its DB2 subtasks) is, by definintion, not associated with a transaction and so is overhead - but that figure will not include CPU when CICS is doing things on the QR TCB that is not directly associated with an user-transaction.
This was first published in July 2002