Sep 27 2009
TCP Offload
Le TCP Offload Engine (ou TOE) permet de transférer la charge liée aux opérations réseau, du processeur (software) vers la carte réseau (hardware). Il faut bien sùr posséder une carte qui le supporte telle une HP NC382T. Cette fonctionnalité est désactivée par défaut à l’installation du serveur.
Vérifier si TOE est activé
Windows 2003
L’activation ne peut être vérifiée que via la clé de registre EnableTCPChimney sous HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Windows 2008
C:\>netsh int tcp show global Querying active state... TCP Global Parameters ---------------------------------------------- Receive-Side Scaling State : enabled Chimney Offload State : enabled Receive Window Auto-Tuning Level : disabled Add-On Congestion Control Provider : ctcp ECN Capability : disabled RFC 1323 Timestamps : disabled
La ligne qui nous intéresse est Chimney Offload State.
Activation/désactivation
Windows 2003
netsh int ip set chimney ENABLED netsh int ip set chimney DISABLED
Windows 2008
netsh int tcp set global chimney=enabled netsh int tcp set global chimney=disabled
Linux
Le TCP Offload n’est pas supporté sous Linux pour diverses raisons décrites sur le site de la Linux Foundation.
Gains
Il est constaté que 1Gb de trafic consomme environ 1Ghz de ressources CPU. Selon de nombreux tests effectués, le TCP Offload n’est intéressant que pour des interfaces Gigabit, faisant transiter beaucoup de trafic. Il est particulièrement adapté au protocole iSCSI.
Ce sont les valeurs que j’ai pu constater et c’est assez bluffant. Le CPU reste près du 0 pendant qu’un trafic important est traité. Aucun problème à signaler depuis sa mise en place.
Problèmes engendrés
Il est déconseillé d’activer le TOE sur des serveurs hébergeant des applications firewall, IPSEC et IPNAT. Des effets de bord sont constatés: http://support.microsoft.com/kb/948496