F5關於CPU分配設計
在介紹F5在設計CPU時,需要解釋一下TMM。TMM即Traffic
Management Microkernel,自9.0開始,F5的所有load-balanced流量都有TMM來處理,而之前的版本都是使用kernel來處理。
CPU單核系統的設計:
BIG-IP 9.0.0到9.3.1,TMM進程會佔據整個CPU。當TMM空閒時,會釋放99%的CPU用於其他進程處理事務;而當TMM處理流量時,僅會釋放20%的CPU用於其他進程處理事務。因此,系統top命令顯示結果很可能會出現CPU佔用100%的情況。F5官方推薦使用“bigpipe
global”命令查看CPU利用率。
BIG-IP9.4.2到9.4.8,TMM最多佔據90%的CPU,當TMM較空閒時,可以釋放空閒CPU用於其它進程。
BIP-IP10.x,CPU資源都被精確預分配,而當TMM較空閒時,可以釋放空閒CPU用於其它進程。
CPU多核系統的設計,目前大多數平臺都是多核:
BIG-IP versions 9.0.0 through 9.3.1,最高標號CPU被專用於TMM進程。例如LTM6800,有兩個CPU。其中CPU1被稱爲tmCPU,而CPU0作爲host CPU,用於其他進程。因此從top命令查看到cpu1被佔據爲100%。
Beginning in BIG-IP version 9.4.0, 開始支持CMP技術,每個CPU都launch一個TMM進程,且最多釋放10%的CPU用於其它進程。而940和941的版本,在6400和6800平臺上不支持CMP技術,其CPU設計與900-931版本一致。
In BIG-IP
versions 9.4.2 through 9.4.8,CMP-ENABLED平臺,每個CPU都launch一個TMM進程,且佔用90%的CPU,其餘10%用於其它進程。同樣6400和6800不支持CMP,其CPU設計與900-931版本一致。
In BIG-IP
versions 9.4.0 through 9.4.8 licensed for ASM or WebAccelerator,CMP自動被全局disable,因此對高標號的CPU完全被TMM佔據,同於900-931版本。
BIP-IP10.x,CPU資源都被精確預分配,而當TMM較空閒時,可以釋放空閒CPU用於其它進程。
Memory reservation
and allocation:
In BIG-IP versions
9.0.0 through 9.4.6, the BIG-IP system reserves memory for TMM. The reserved
memory is not available to the operating system for general use. As a result,
the amount of memory that traditional UNIX utilities report will be incorrect.
Beginning in BIG-IP
version 9.4.7, the distribution of memory between the Host and TMM changed.