{"id":1097,"date":"2015-07-20T13:28:09","date_gmt":"2015-07-20T17:28:09","guid":{"rendered":"http:\/\/www.hoplawego.com\/blog\/?p=1097"},"modified":"2015-07-20T13:28:44","modified_gmt":"2015-07-20T17:28:44","slug":"quand-iperf-nous-sauve-la-vie-informatiquement-parlant","status":"publish","type":"post","link":"https:\/\/www.hoplawego.com\/blog\/quand-iperf-nous-sauve-la-vie-informatiquement-parlant\/","title":{"rendered":"Quand iPerf nous sauve la vie (informatiquement parlant)"},"content":{"rendered":"<p>Nous utilisons plusieurs chassis de blades remplis de Dell m620 ronronnant sous vSphere. Nous remarquons que plusieurs VMs perdent r\u00e9gulierement le r\u00e9seau. Apr\u00e8s plusieurs jours d&rsquo;investigation,<br \/>\nnous venons \u00e0 comprendre que le probl\u00e8me est sur un seul chassis. C&rsquo;est ici que iPerf rentre en jeu.<\/p>\n<p>Le principe de iPerf est simple. Une cible et un initiateur. Un serveur, un client.<br \/>\niPerf (https:\/\/iperf.fr\/) est un petit programme qui teste le r\u00e9seau sans jamais toucher \u00e0 un disque dur. Contrairement \u00e0 dd ou aux autres logiciels qui utilisent un buffer sur le disque dur, iPerf,<br \/>\nest seulement r\u00e9seau. Le serveur \u00e9coute sur un port sp\u00e9cifi\u00e9 et le client se connecte et transfert du data. Aussi simple que ca.<\/p>\n<p>Dans notre ca, nous avons r\u00e9ussi \u00e0 trouver que le port X du module Y de la switch Z du chassis \u00e9tait d\u00e9fectueux.<\/p>\n<p>Voici comment ca fonctionne:<\/p>\n<p>&nbsp;<\/p>\n<blockquote>\n<pre>Cr\u00e9ez deux VMs. Linux ou Windows.\r\n Copiez iPerf ou installez-le (disponible sur les repos linux).\r\n Sur le serveur, d\u00e9marrez le iPerf:\r\n <em>iperf -s<\/em>\r\n Sur le client lancez la connexion:\r\n <em>iperf -c AdresseDuServeur<\/em>\r\n C'est fait un premier test. Vous connaitrez la vitesse et la taille de la bandwidth que le programme sent.\r\n On peut aussi lancer la commande de maniere mirror, donc client serveur et serveur client ensuite:\r\n <em>iperf -c AdresseDuServeur -r\r\n\r\n\r\n<\/em><\/pre>\n<\/blockquote>\n<p>J&rsquo;ai cr\u00e9e un petit script qui fait 10 tests et donne une moyenne. Il est aussi pratique pour voir si le lien est stable ou instable.<\/p>\n<p>Il faut ouvrir le serveur avec<br \/>\n<em>iperf -s<\/em><\/p>\n<p>et rouler (sh) ce script de la maniere suivante:<\/p>\n<p><em>sh iperf.sh 10 AdresseDuServeur<\/em><br \/>\n()lanceur, NomDuScript NombreDeRepetitions AdresseDuServeur)<\/p>\n<blockquote>\n<pre>###\r\n #!\/bin\/bash<\/pre>\n<pre>if [ \"$#\" -ne \"2\" ]; then\r\n echo \"ERREUR: Le script cherche quatre arguments, donc:\"\r\n echo\r\n echo \"1. Nombre de repetitions (ex: 10)\"\r\n echo \"2. Serveur qui roule iperf -s ' (ex: IP)\"\r\n echo\r\n echo \"Par exemple:\"\r\n echo \" $(basename $0) 10 serveur\"\r\n echo\r\n exit 1\r\n else\r\n runs=$1\r\n host=$2\r\n fi<\/pre>\n<pre>log=iperf.$host.log<\/pre>\n<pre>if [ -f $log ]; then\r\n echo removing $log\r\n rm $log\r\n fi<\/pre>\n<pre>echo \"==================================================================\"\r\n echo \" Results\"\r\n echo \"==================================================================\"\r\n echo \" target host .... $host\"\r\n echo \"------------------------------------------------------------------\"<\/pre>\n<pre>for run in $(seq 1 $runs); do\r\n iperf -c $host -f m &gt;&gt; $log\r\n echo -e \" run $run: \\t $(awk '\/Bandwidth\/ {getline}; END{print $7, $8}' $log)\"\r\n done<\/pre>\n<pre>avg=$(awk -v runs=$runs '\/Bandwidth\/ {getline; sum+=$7; avg=sum\/runs} END {print avg}' $log)\r\n echo \"------------------------------------------------------------------\"\r\n echo \" moyenne ....... $avg Mbits\/sec\"\r\n echo\r\n echo \"lire $log pour les details\"\r\n##\r\n\r\n\r\nVoila une autre raison d'aimer les logiciels libres.<\/pre>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Nous utilisons plusieurs chassis de blades remplis de Dell m620 ronronnant sous vSphere. Nous remarquons que plusieurs VMs perdent r\u00e9gulierement le r\u00e9seau. Apr\u00e8s plusieurs jours d&rsquo;investigation, nous venons \u00e0 comprendre que le probl\u00e8me est sur un seul chassis. C&rsquo;est ici que iPerf rentre en jeu. Le principe de iPerf est simple. Une cible et un &hellip; <\/p>\n","protected":false},"author":1,"featured_media":1105,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3,5,4,8],"tags":[],"class_list":["post-1097","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-t-i","category-vcap","category-vcdx","category-vcp","category-vmware","grid-sizer"],"_links":{"self":[{"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/posts\/1097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/comments?post=1097"}],"version-history":[{"count":7,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/posts\/1097\/revisions"}],"predecessor-version":[{"id":1107,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/posts\/1097\/revisions\/1107"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/media\/1105"}],"wp:attachment":[{"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/media?parent=1097"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/categories?post=1097"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hoplawego.com\/blog\/wp-json\/wp\/v2\/tags?post=1097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}