This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
docpublic:reseaux:infra:perf [2011/03/03 09:09] PROCACCIA created |
docpublic:reseaux:infra:perf [2011/06/18 14:45] (current) PROCACCIA |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Perf ===== | + | ===== Perfs Réseaux |
- | ===== références | + | ===== Références |
- | http:// | + | * http:// |
- | http:// | + | |
+ | * http:// | ||
+ | * http:// | ||
===== Plateforme Evry ===== | ===== Plateforme Evry ===== | ||
- | ==== Test Localhost | + | ==== Serveur 1 ==== |
- | Pour tester les performance locale | + | < |
+ | olympie | ||
+ | PowerEdge R610 | ||
+ | memory size: 16GiB DIMM Synchronous 1333 MHz (0.8 ns) | ||
+ | 16 cores Intel(R) Xeon(R) CPU | ||
+ | [root@olympie ~]# ethtool -i eth6 | ||
+ | driver: bnx2x | ||
+ | version: 1.52.1-6 | ||
+ | firmware-version: | ||
+ | bus-info: 0000: | ||
+ | </ | ||
+ | |||
+ | ==== Serveur 2 ==== | ||
+ | |||
+ | < | ||
+ | gates | ||
+ | product: PowerEdge 2950 | ||
+ | 8 cores Intel(R) Xeon(R) CPU | ||
+ | memory size: 16GiB Synchronous 667 MHz (1.5 ns) | ||
+ | [root@gates ~]# ethtool -i eth4 | ||
+ | driver: bnx2x | ||
+ | version: 1.52.1-6 | ||
+ | firmware-version: | ||
+ | bus-info: 0000: | ||
+ | </ | ||
+ | |||
+ | ==== Switch 10G ==== | ||
+ | |||
+ | C6509 avec carte 8 ports 10G | ||
+ | |||
+ | < | ||
+ | Supervisor Engine 720 (Active) | ||
+ | CEF720 8 port 10GE with DFC WS-X6708-10GE | ||
+ | |||
+ | System image file is " | ||
+ | Version 12.2(33)SXH8, | ||
+ | </ | ||
+ | |||
+ | =====Test Localhost ===== | ||
+ | |||
+ | Pour tester les performances locales | ||
< | < | ||
Line 35: | Line 77: | ||
> [ ID] Interval | > [ ID] Interval | ||
> [ 3] 0.0-10.0 sec 14.0 GBytes | > [ 3] 0.0-10.0 sec 14.0 GBytes | ||
- | > | + | |
+ | </code> | ||
==== Caracteristiques carte réseau ==== | ==== Caracteristiques carte réseau ==== | ||
Line 59: | Line 102: | ||
> Link detected: yes | > Link detected: yes | ||
</ | </ | ||
+ | |||
+ | ==== Serveur n°2 ==== | ||
+ | |||
+ | < | ||
+ | [root@gates ~]# ethtool eth4 | ||
+ | Settings for eth4: | ||
+ | Supported ports: [ FIBRE ] | ||
+ | Supported link modes: | ||
+ | | ||
+ | Supports auto-negotiation: | ||
+ | Advertised link modes: | ||
+ | Advertised auto-negotiation: | ||
+ | Speed: 10000Mb/s | ||
+ | Duplex: Full | ||
+ | Port: FIBRE | ||
+ | PHYAD: 17 | ||
+ | Transceiver: | ||
+ | Auto-negotiation: | ||
+ | Supports Wake-on: d | ||
+ | Wake-on: d | ||
+ | Current message level: 0x00000000 (0) | ||
+ | Link detected: yes | ||
+ | </ | ||
+ | |||
+ | ===== Test Back2Back ===== | ||
+ | |||
+ | Test réseau | ||
+ | |||
+ | < | ||
+ | [root@olympie ~]# iperf -c 157.159.33.76 -i 1 | ||
+ | ------------------------------------------------------------ | ||
+ | Client connecting to 157.159.33.76, | ||
+ | TCP window size: 16.0 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 157.159.33.77 port 33022 connected with 157.159.33.76 port 5001 | ||
+ | [ ID] Interval | ||
+ | [ 3] 0.0- 1.0 sec 289 MBytes | ||
+ | [ 3] 1.0- 2.0 sec 284 MBytes | ||
+ | [ 3] 2.0- 3.0 sec 287 MBytes | ||
+ | [ 3] 3.0- 4.0 sec 277 MBytes | ||
+ | [ 3] 4.0- 5.0 sec 286 MBytes | ||
+ | [ 3] 5.0- 6.0 sec 290 MBytes | ||
+ | [ 3] 6.0- 7.0 sec 295 MBytes | ||
+ | [ 3] 7.0- 8.0 sec 298 MBytes | ||
+ | [ 3] 8.0- 9.0 sec 334 MBytes | ||
+ | [ 3] 9.0-10.0 sec 341 MBytes | ||
+ | [ 3] 0.0-10.0 sec 2.91 GBytes | ||
+ | |||
+ | 2eme | ||
+ | [ 3] 0.0-10.0 sec 3.53 GBytes | ||
+ | |||
+ | |||
+ | [root@olympie ~]# date | ||
+ | ven fév 18 10:44:35 CET 2011 | ||
+ | |||
+ | [root@gates ~]# iperf -s -B 157.159.33.76 -i 1 | ||
+ | ------------------------------------------------------------ | ||
+ | Server listening on TCP port 5001 | ||
+ | Binding to local address 157.159.33.76 | ||
+ | TCP window size: 85.3 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 4] local 157.159.33.76 port 5001 connected with 157.159.33.77 port 33022 | ||
+ | [ ID] Interval | ||
+ | [ 4] 0.0- 1.0 sec 284 MBytes | ||
+ | [ 4] 1.0- 2.0 sec 285 MBytes | ||
+ | [ 4] 2.0- 3.0 sec 287 MBytes | ||
+ | [ 4] 3.0- 4.0 sec 277 MBytes | ||
+ | [ 4] 4.0- 5.0 sec 287 MBytes | ||
+ | [ 4] 5.0- 6.0 sec 288 MBytes | ||
+ | [ 4] 6.0- 7.0 sec 295 MBytes | ||
+ | [ 4] 7.0- 8.0 sec 299 MBytes | ||
+ | [ 4] 8.0- 9.0 sec 335 MBytes | ||
+ | [ 4] 9.0-10.0 sec 340 MBytes | ||
+ | [ 4] 0.0-10.0 sec 2.91 GBytes | ||
+ | </ | ||
+ | |||
+ | autre jours .. deux fois plus rapide !? | ||
+ | |||
+ | < | ||
+ | [root@olympie ~]# date | ||
+ | mar fév 22 16:50:01 CET 2011 | ||
+ | [root@olympie ~]# iperf -c 157.159.33.76 -i 1 | ||
+ | ------------------------------------------------------------ | ||
+ | Client connecting to 157.159.33.76, | ||
+ | TCP window size: 16.0 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 157.159.33.77 port 38359 connected with 157.159.33.76 port 5001 | ||
+ | [ ID] Interval | ||
+ | [ 3] 0.0- 1.0 sec 664 MBytes | ||
+ | [ 3] 1.0- 2.0 sec 672 MBytes | ||
+ | [ 3] 2.0- 3.0 sec 682 MBytes | ||
+ | [ 3] 3.0- 4.0 sec 674 MBytes | ||
+ | [ 3] 4.0- 5.0 sec 674 MBytes | ||
+ | [ 3] 5.0- 6.0 sec 682 MBytes | ||
+ | [ 3] 6.0- 7.0 sec 676 MBytes | ||
+ | [ 3] 7.0- 8.0 sec 676 MBytes | ||
+ | [ 3] 8.0- 9.0 sec 680 MBytes | ||
+ | [ 3] 0.0-10.0 sec 6.60 GBytes | ||
+ | |||
+ | [root@gates ~]# iperf -s -B 157.159.33.76 -i 1 | ||
+ | |||
+ | [ 4] 0.0-10.0 sec 6.60 GBytes | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== MTU 9000 no iptables ==== | ||
+ | |||
+ | En reseau avec une MTU de 9000 et arret du firewall iptables sur les 2 serveurs | ||
+ | |||
+ | < | ||
+ | [root@gates ~]# ifconfig eth4 | ||
+ | eth4 Link encap: | ||
+ | inet adr: | ||
+ | adr inet6: fe80:: | ||
+ | UP BROADCAST RUNNING MULTICAST | ||
+ | RX packets: | ||
+ | TX packets: | ||
+ | collisions: | ||
+ | RX bytes: | ||
+ | Interruption: | ||
+ | [root@olympie ~]# ifconfig eth6 | ||
+ | eth6 Link encap: | ||
+ | inet adr: | ||
+ | adr inet6: fe80:: | ||
+ | UP BROADCAST RUNNING MULTICAST | ||
+ | RX packets: | ||
+ | TX packets: | ||
+ | collisions: | ||
+ | RX bytes: | ||
+ | Interruption: | ||
+ | </ | ||
+ | |||
+ | Test TCP | ||
+ | |||
+ | < | ||
+ | [root@gates ~]# date | ||
+ | jeu mar 3 10:25:04 CET 2011 | ||
+ | [root@gates ~]# iperf -s -i 1 | ||
+ | ------------------------------------------------------------ | ||
+ | Server listening on TCP port 5001 | ||
+ | TCP window size: 85.3 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 4] local 157.159.33.76 port 5001 connected with 157.159.33.77 port 48163 | ||
+ | [ ID] Interval | ||
+ | [ 4] 0.0- 1.0 sec 1018 MBytes | ||
+ | [ 4] 1.0- 2.0 sec 1.15 GBytes | ||
+ | [ 4] 2.0- 3.0 sec 1.15 GBytes | ||
+ | [ 4] 3.0- 4.0 sec 1.15 GBytes | ||
+ | [ 4] 4.0- 5.0 sec 1.15 GBytes | ||
+ | [ 4] 5.0- 6.0 sec 936 MBytes | ||
+ | [ 4] 6.0- 7.0 sec 1.06 GBytes | ||
+ | [ 4] 7.0- 8.0 sec 1.15 GBytes | ||
+ | [ 4] 8.0- 9.0 sec 1.15 GBytes | ||
+ | [ 4] 9.0-10.0 sec 1.15 GBytes | ||
+ | [ 4] 0.0-10.0 sec 11.0 GBytes | ||
+ | |||
+ | [root@olympie ~]# iperf -c 157.159.33.76 | ||
+ | ------------------------------------------------------------ | ||
+ | Client connecting to 157.159.33.76, | ||
+ | TCP window size: 27.8 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 157.159.33.77 port 48163 connected with 157.159.33.76 port 5001 | ||
+ | [ ID] Interval | ||
+ | [ 3] 0.0- 1.0 sec 1021 MBytes | ||
+ | [ 3] 1.0- 2.0 sec 1.15 GBytes | ||
+ | [ 3] 2.0- 3.0 sec 1.15 GBytes | ||
+ | [ 3] 3.0- 4.0 sec 1.15 GBytes | ||
+ | [ 3] 4.0- 5.0 sec 1.15 GBytes | ||
+ | [ 3] 5.0- 6.0 sec 939 MBytes | ||
+ | [ 3] 6.0- 7.0 sec 1.06 GBytes | ||
+ | [ 3] 7.0- 8.0 sec 1.15 GBytes | ||
+ | [ 3] 8.0- 9.0 sec 1.15 GBytes | ||
+ | [ 3] 9.0-10.0 sec 1.15 GBytes | ||
+ | [ 3] 0.0-10.0 sec 11.0 GBytes | ||
+ | </ | ||
+ | |||
+ | ==== Tests UDP ==== | ||
+ | |||
+ | Avec les parametres recommandés par l' | ||
+ | |||
+ | < | ||
+ | [root@gates ~]# iperf -s -u -w 32M -i 1 -B 157.159.33.76 | ||
+ | ------------------------------------------------------------ | ||
+ | Server listening on UDP port 5001 | ||
+ | Binding to local address 157.159.33.76 | ||
+ | Receiving 1470 byte datagrams | ||
+ | UDP buffer size: 256 KByte (WARNING: requested 32.0 MByte) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 157.159.33.76 port 5001 connected with 157.159.33.77 port 5001 | ||
+ | [ ID] Interval | ||
+ | [ 3] 0.0- 1.0 sec 79.2 MBytes | ||
+ | [ 3] 1.0- 2.0 sec 78.9 MBytes | ||
+ | [ 3] 2.0- 3.0 sec 79.6 MBytes | ||
+ | [ 3] 3.0- 4.0 sec 79.9 MBytes | ||
+ | [ 3] 4.0- 5.0 sec 79.9 MBytes | ||
+ | [ 3] 5.0- 6.0 sec 79.6 MBytes | ||
+ | [ 3] 6.0- 7.0 sec 79.6 MBytes | ||
+ | [ 3] 7.0- 8.0 sec 79.6 MBytes | ||
+ | [ 3] 8.0- 9.0 sec 79.7 MBytes | ||
+ | [ 3] 0.0-10.0 sec 796 MBytes | ||
+ | [ 3] 0.0-10.0 sec 1 datagrams received out-of-order | ||
+ | |||
+ | [root@olympie ~]# iperf -u -c 157.159.33.76 -w32M -t 10 -l9170 -b10G -B 157.159.33.77 -P1 | ||
+ | ------------------------------------------------------------ | ||
+ | Client connecting to 157.159.33.76, | ||
+ | Binding to local address 157.159.33.77 | ||
+ | Sending 9170 byte datagrams | ||
+ | UDP buffer size: 256 KByte (WARNING: requested 32.0 MByte) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 157.159.33.77 port 5001 connected with 157.159.33.76 port 5001 | ||
+ | [ ID] Interval | ||
+ | [ 3] 0.0-10.0 sec 5.42 GBytes | ||
+ | [ 3] Sent 634705 datagrams | ||
+ | [ 3] Server Report: | ||
+ | [ 3] 0.0-10.0 sec 796 MBytes | ||
+ | [ 3] 0.0-10.0 sec 1 datagrams received out-of-order | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Optimisations ==== | ||
+ | |||
+ | |||
+ | < | ||
+ | Le 23/02/2011 09:43, Guillaume a écrit : | ||
+ | > Hello Jehan, | ||
+ | > | ||
+ | > - Attention aux buffers | ||
+ | > > TCP window size: 27.8 KByte (default) | ||
+ | > > UDP buffer size: 256 KByte (WARNING: requested 32.0 MByte) | ||
+ | > | ||
+ | > Les paramètres donnés à iperf sont non prioritaires par rapport aux paramètres sysctl, donc même si tu demande w32M ça n'est pas forcément utilisé. Je ne me souvient plus exactement quels paramètres kernel sont en jeu, mais peut être: | ||
+ | > net.core.rmem_max = 16777216 | ||
+ | > net.core.wmem_max = 16777216 | ||
+ | > net.ipv4.tcp_rmem = 4096 87380 16777216 | ||
+ | > net.ipv4.tcp_wmem = 4096 65536 16777216 | ||
+ | > (les paramètres tcp sont aussi pour UDP) | ||
+ | > | ||
+ | > - Il me semble avoir lu une histoire de problème de timestamp sur certains tests iperf en UDP: Chaque paquet part avec un timestamp et donc si tu met un seul thread ça fait un goulot d' | ||
+ | > | ||
+ | > - Les valeurs retournées par les tests iperf sont souvent fantaisistes, | ||
+ | > | ||
+ | > Guillaume | ||
+ | </ | ||
+ | |||
+ | |||
+ | Augmentation du nombre de thread a 8 pour parralleliser les transferts | ||
+ | |||
+ | < | ||
+ | [root@olympie ~]# iperf -u -c 157.159.33.76 -w32M -t 10 -l9170 -b10G -B 157.159.33.77 -P8 | ||
+ | bind failed: Address already in use | ||
+ | bind failed: Address already in use | ||
+ | bind failed: Address already in use | ||
+ | bind failed: Address already in use | ||
+ | bind failed: Address already in use | ||
+ | bind failed: Address already in use | ||
+ | bind failed: Address already in use | ||
+ | ------------------------------------------------------------ | ||
+ | Client connecting to 157.159.33.76, | ||
+ | Binding to local address 157.159.33.77 | ||
+ | Sending 9170 byte datagrams | ||
+ | UDP buffer size: 256 KByte (WARNING: requested 32.0 MByte) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 10] local 157.159.33.77 port 33392 connected with 157.159.33.76 port 5001 | ||
+ | [ 3] local 157.159.33.77 port 5001 connected with 157.159.33.76 port 5001 | ||
+ | [ 5] local 157.159.33.77 port 39469 connected with 157.159.33.76 port 5001 | ||
+ | [ 4] local 157.159.33.77 port 36797 connected with 157.159.33.76 port 5001 | ||
+ | [ 7] local 157.159.33.77 port 58107 connected with 157.159.33.76 port 5001 | ||
+ | [ 6] local 157.159.33.77 port 48790 connected with 157.159.33.76 port 5001 | ||
+ | [ 8] local 157.159.33.77 port 38680 connected with 157.159.33.76 port 5001 | ||
+ | [ 9] local 157.159.33.77 port 57872 connected with 157.159.33.76 port 5001 | ||
+ | [ ID] Interval | ||
+ | [ 10] 0.0-10.0 sec 1.44 GBytes | ||
+ | [ 10] Sent 168182 datagrams | ||
+ | [ 3] 0.0-10.0 sec 1.44 GBytes | ||
+ | [ 3] Sent 168473 datagrams | ||
+ | [ 5] 0.0-10.0 sec 1.44 GBytes | ||
+ | [ 5] Sent 168061 datagrams | ||
+ | [ 4] 0.0-10.0 sec 1.44 GBytes | ||
+ | [ 4] Sent 168243 datagrams | ||
+ | [ 7] 0.0-10.0 sec 1.43 GBytes | ||
+ | [ 7] Sent 167800 datagrams | ||
+ | [ 6] 0.0-10.0 sec 1.44 GBytes | ||
+ | [ 6] Sent 168212 datagrams | ||
+ | [ 8] 0.0-10.0 sec 1.43 GBytes | ||
+ | [ 8] Sent 167895 datagrams | ||
+ | [ 9] 0.0-10.0 sec 1.43 GBytes | ||
+ | [ 9] Sent 167909 datagrams | ||
+ | [SUM] 0.0-10.0 sec 11.5 GBytes | ||
+ | </ | ||
+ | |||
+ | |||
+ | {{: | ||
+ |