Lightboard Lessons: CPU Hyper-Threads and TMM
Another are I am really lost. Performance statistics.
Let's assume i5800 is used for vCMP. It's 1 x quad core HT procesor. As far as I am not completely lost it means:
- 1 physical processor - id 0
- 4 physical cores - id 0-3
- 8 virtual cores - id 0, 1 per physical core, or 0-7 per processor?
- 1 TMM process - id 0 (some articles are confusing using interchangeable process and instance - for example K14358. In table we have TMM Process and TMM thread, then later on in description "For example, starting in BIG-IP 11.3.0, the BIG-IP 8950 platform runs two TMM processes, one for each CPU. Each process creates four separate TMM threads. The following ps output shows two separate TMM instances that are running on the BIG-IP 8950 system. Each TMM is executing four thread contexts (-T 4):"
- 4 TMM threads, id 0, 2, 4, 6
cat /proc/cpuinfo uses this therminology:
- processor - 0-7 = virtual core
- physical id - 0 = physical porcessor
- core id - 0-3 = physical core
Part I don't get is all statistic info available on BIG-IP. Let's start with vHost on i5800
---------------------------
Sys::TMM: 0.65535
---------------------------
Global
TMM Process Id 18071
Running TMM Id 65535
TMM Count 1
CPU Id 65535
Memory (bytes)
Total 406.0M
Used 94.3M
CPU Usage Ratio (%)
Last 5 Seconds 3
Last 1 Minute 3
Last 5 Minutes 3
So one TMM (process?) 0. Why two ids, what is difference between TMM Process Id and Running TMM Id and why CPU id is 65535 not 0?
What CPU Usage Ratio (%) is reporting here - total processor usage (so all physical/virtual cores)?
I assume it's the same value as reported by:
snmpwalk -c public localhost .1.3.6.1.4.1.3375.2.1.8.2.3.1.37
Is Statistics ›› Performance > System > CPU Utilization with one line labeled Utilization GUI counterpart for commands above?
Then in Statistics ›› Performance > System > CPU Utilization: View Detailed Graph, there are two graphs each for four CPU - 0-3 and 4-7 - so it's reporting virtual core - right?
Seems that counterpart in CLI is
tmsh show sys cpu
or tmsh show sys host-info
?
For HTSplit enabled system is that safe to assume that stats for even numbered CPU are in fact CPU utilization caused by TMM threads - so CPU 0, 2, 4, 6 is TMM utilization for conditions under 80%?
CPU 1, 3, 5, 7 is CPU utilization by Control plane tasks - right?
How then CPU utilization for situation with TMM thread/s with load > 80% can be checked? In such situation part of CPU utilization is on even CPU, part on odd CPU - graph is not showing info which part on odd CPU is control plane and which is data plane.
Are there any tools (GUI or CLI) that are providing exact CPU utilization (virtual core utilization) per TMM thread?
Last but not least what exactly is reported by Dashboard CPU section? What is CPU here:
- physical core
- virtual core (CPU on Performance graphs)
- physical core
- TMM process
- TMM thread
If this is virtual core reported here is there some difference for a way it's reported fot vCMP than for non vCMP systems? Like there could be much higher usage reported for busiest CPU?
And really last 🙂
What can be cause for big difference between busiest CPU and least busy? Assuming that statistically DAG distributes connections in equal share between TMM threads then big difference should rarely happen - or I am wrong?
Piotr