Forum Linux.général Performance NFS

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
0
17
oct.
2013

Bonjour à tous,

J'ai deux machines chez moi, un serveur tournant sous Debian Testing (msi) et mon portable sous Linux Mint 15 (thinkpad). Sur mon serveur est branché un disque dur externe via USB, partagé via NFS. Les deux machines sont connectées en Wifi à ma Freebox (j'utilisais auparavant le CPL, mais le débit était très faible). Je voudrais pouvoir regarder des vidéos en streaming sur la machine cliente, mais le taux de transfert est bas (environ 500 ko/s), ce qui cause des lenteurs et des freezes.

Voici quelques infos, n'hésitez pas à m'indiquer si j'ai oublié des choses :

Test hdparm sur machine serveur (dd externe) : 28.96 MB/sec.
Ecriture d'un fichier sur la partition NFS depuis le client avec dd : débit de 540 ko/s.
Test de débit entre les deux machines avec iperf : entre 4 et 9 Mits/sec.

lspci sur le serveur : 02:00.0 Network controller: Ralink corp. RT2790 Wireless 802.11n 1T/2R PCIe
lspci sur le client : 05:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter (rev 01)

iwconfig sur le serveur : wlan0 IEEE 802.11bgn ESSID:"Freebox-66A7E5"

Mode:Managed Frequency:2.437 GHz Access Point: 14:0C:76:E5:4B:14

Bit Rate=65 Mb/s Tx-Power=20 dBm

Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=60/70 Signal level=-50 dBm

Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:39609 Invalid misc:700 Missed beacon:0

iwconfig sur le client : wlan0 IEEE 802.11bgn ESSID:"Freebox-66A7E5"

Mode:Managed Frequency:2.437 GHz Access Point: 14:0C:76:E5:4B:14

Bit Rate=72.2 Mb/s Tx-Power=20 dBm

Retry long limit:7 RTS thr=2347 B Fragment thr:off
Power Management:off
Link Quality=56/70 Signal level=-54 dBm

Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:16 Missed beacon:0

Options NFS sur le serveur : rw,no_root_squash,async
Options de montage sur le client : rw,user,rsize=8192,wsize=8192

Quelqu'un aurait une idée ?

Merci beaucoup d'avance !

  • # USB ? Wifi ?

    Posté par  . Évalué à 1.

    Essaie de créer un partage à partir du disque système de ton serveur, histoire de voir si le problème ne vient pas du fait que ton disque soit connecté en USB.

    Essaie aussi sans le Wifi (en cablé). J'ai moi aussi des débits un peu miteux en Wifi avec ma box SFR.

    • [^] # Re: USB ? Wifi ?

      Posté par  . Évalué à 1. Dernière modification le 17 octobre 2013 à 13:45.

      meme idée que cfx, essaie d'autres combinaisons.

      car dans ton cas, y a quand meme pas mal d'erreur sur le wifi du serveur

      Tx excessive retries:39609

      pour un pote, il avait du wifi et du filaire chez lui.
      un serveur avec un disque USB partagé.

      le filaire etait à 1Gbps,
      mais il atteignait difficilement 1Mo/s de transfert.

      on a retourner toute son installation (plusieurs switchs connecter entre eux, certains à 1Gbps, d'autres à 100Mbps)…

      jusqu'a ce rendre compte que la machine, bien que brancher en RJ45, tentait de faire les transferts reseaux par le wifi.

      il a coupé la carte wifi, relancé le transfert, hop, 50Mo/s

      • [^] # Re: USB ? Wifi ?

        Posté par  (site web personnel) . Évalué à 1.

        Le problème, c'est que brancher le serveur en Ethernet serait un peu compliqué étant donnée la configuration de l'appartement. Il faut peut-être que je réessaie en CPL, mais pour l'instant, c'est ce qui m'a donné les plus mauvais résultats.

        Merci pour vos réponses.

    • [^] # Re: USB ? Wifi ?

      Posté par  (site web personnel) . Évalué à 1.

      J'ai fait un test avec rsync sur une parition du dd interne du serveur. Effectivement, le débit est plus élevé (de l'ordre de 25 Mb/sec) mais le transfert s'arrête avant la fin de la copie, vers 93%.
      Un rsync avec le même fichier vers le dd externe est très lent (environ 47 ko/s), et le transfert plante très vite aussi.

      Je ne comprends plus rien, d'autant plus que ça marche parfois.

      • [^] # Re: USB ? Wifi ?

        Posté par  (site web personnel) . Évalué à 1.

        Et l'autre truc, c'est que je n'ai aucun problème de connexion Internet depuis le serveur en Wifi (500 ko/sec, soit la même chose qu'en Ethernet).

      • [^] # Re: USB ? Wifi ?

        Posté par  . Évalué à 2.

        Un rsync avec le même fichier vers le dd externe est très lent (environ 47 ko/s), et le transfert plante très vite aussi.

        donc clairement tu as un probleme avec le disque externe.

        ta connexion wifi se fait par USB aussi ou c'est une carte sur un port PCI ?

        ton disque USB, il est en USB 2 ? 3 ? sur le port avant de la machine ?
        si la machine est un peu ancienne, les ports avant etaient parfois de l'USB1.1 alors que les ports arrieres etaient en USB2.

        • [^] # Re: USB ? Wifi ?

          Posté par  (site web personnel) . Évalué à 1.

          Le disque est en USB 2.0. La machine (un EeePC qui date un peu, le MSI Wind U100) ne comporte que des ports USB 2.0, à ma connaissance. La carte Wifi est en PCI.

          Par contre, il y a d'autres disques branchés dessus (mais ce sont des disques de sauvegarde, donc ils sont peu utilisés), ça peut jouer ?

          Merci encore.

          • [^] # Re: USB ? Wifi ?

            Posté par  . Évalué à 3.

            un transfert USB ca consomme un peu de CPU donc sur un eeepc ca peut etre le point qui ralentit tout.

            et les autres disques, ca peut jouer un peu car ils sont quand meme là,
            scanner pour leur presence

            • [^] # Re: USB ? Wifi ?

              Posté par  (site web personnel) . Évalué à 1.

              Y'a du mieux en débranchant les autres disques. Ça transfert à 1 Mb/s pendant un moment, puis ça tombe progressivement à 80 ko/s. La machine n'a pas l'air de souffrir en terme de CPU pendant le transfert, cependant. C'est peut-être un problème de driver de la carte Wifi, non ?

              • [^] # Re: USB ? Wifi ?

                Posté par  . Évalué à 2.

                ca dit quoi le transfert entre le disque interne du eeepc et le disque usb ?
                ca tourne bien ? ca ralentit dans la durée ?

                si tu fait un top pendant le transfert,
                dans l'entete du top, y a une ligne par processeur et tu y trouve us | sy | ni | id | wa | hi | si | st
                y'a-t-il des wa (io wait, des attentes liés aux peripheriques)

                • [^] # Re: USB ? Wifi ?

                  Posté par  (site web personnel) . Évalué à 1.

                  Le transfert, dans ce cas, se fait très rapidement (~30 Mb/sec), sans variation dans la durée. Il y a effectivement des wa, entre 0.1 et 14.

                  Merci pour ton aide.

  • # tester le wifi seul avec iperf

    Posté par  . Évalué à 1.

    En première étape, tu peux déjà tester la bande passante brute de ton wifi (sans nfs) avec iperf:
    Sur le premier pc:

    iperf -s -u -i 5 -t 30
    

    Sur le 2eme:

    iperf -c <ip_du_premier> -u -b100m -r -i 5 -t 30 
    
    • [^] # Re: tester le wifi seul avec iperf

      Posté par  (site web personnel) . Évalué à 1.

      Merci pour ta réponse.

      Voici le résultat :

      Client :

      iperf -c msi -u -b100m -r -i 5 -t 30 
      ------------------------------------------------------------
      Server listening on UDP port 5001
      Receiving 1470 byte datagrams
      UDP buffer size:  208 KByte (default)
      ------------------------------------------------------------
      [  3] local 192.168.1.23 port 5001 connected with 192.168.1.25 port 44550
      ------------------------------------------------------------
      Client connecting to msi, UDP port 5001
      Sending 1470 byte datagrams
      UDP buffer size:  208 KByte (default)
      ------------------------------------------------------------
      [  4] local 192.168.1.23 port 37204 connected with 192.168.1.25 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [  4]  0.0- 5.0 sec  1.85 MBytes  3.10 Mbits/sec
      [  3]  0.0- 5.0 sec   511 KBytes   837 Kbits/sec  81.763 ms 1694/ 2050 (83%)
      [  4]  5.0-10.0 sec  2.21 MBytes  3.71 Mbits/sec
      [  4] 10.0-15.0 sec  1.26 MBytes  2.11 Mbits/sec
      [  4] 15.0-20.0 sec  13.7 MBytes  23.0 Mbits/sec
      [  3]  5.0-10.0 sec  58.9 KBytes  96.4 Kbits/sec  120.797 ms  195/  236 (83%)
      [  3] 10.0-15.0 sec  0.00 Bytes  0.00 bits/sec  120.797 ms    0/    0 (-nan%)
      [  3] 15.0-20.0 sec  0.00 Bytes  0.00 bits/sec  120.797 ms    0/    0 (-nan%)
      [  3] 20.0-25.0 sec   380 KBytes   623 Kbits/sec  15.524 ms 105963/106228 (1e+02%)
      [  4] 20.0-25.0 sec  8.43 MBytes  14.1 Mbits/sec
      [  3]  0.0-29.4 sec   976 KBytes   272 Kbits/sec  311.267 ms 108253/108933 (99%)
      [  3]  0.0-29.4 sec  1 datagrams received out-of-order
      [  4] 25.0-30.0 sec  5.89 MBytes  9.88 Mbits/sec
      [  4]  0.0-30.0 sec  33.3 MBytes  9.32 Mbits/sec
      [  4] Sent 23784 datagrams
      [  4] Server Report:
      [  4]  0.0-31.3 sec  3.13 MBytes   838 Kbits/sec  21.481 ms 21553/23783 (91%)
      [  4]  0.0-31.3 sec  1 datagrams received out-of-order
      

      Serveur :

      Client connecting to 192.168.1.23, UDP port 5001
      Sending 1470 byte datagrams
      UDP buffer size:  176 KByte (default)
      ------------------------------------------------------------
      [  3] local 192.168.1.25 port 44463 connected with 192.168.1.23 port 5001
      [  3]  0.0- 5.0 sec  3.40 MBytes  5.70 Mbits/sec
      [  3]  5.0-10.0 sec  3.68 MBytes  6.18 Mbits/sec
      [  3] 10.0-15.0 sec  4.06 MBytes  6.81 Mbits/sec
      [  3] 15.0-20.0 sec  4.88 MBytes  8.19 Mbits/sec
      [  3] 20.0-25.0 sec  4.00 GBytes  6.88 Gbits/sec
      [  3] 25.0-30.0 sec  8.00 GBytes  13.8 Gbits/sec
      [  3]  0.0-30.0 sec  12.0 GBytes  3.44 Gbits/sec
      [  3] Sent 17337 datagrams
      read failed: Connection refused
      [  3] WARNING: did not receive ack of last datagram after 5 tries.
      
      • [^] # Re: tester le wifi seul avec iperf

        Posté par  . Évalué à 2.

        Il y a clairement un problème avec le wifi.
        Des fois tes débits descendent à 12ko/s (96.4 Kbits/sec) , voire à 0.
        Des fois il est super élevé (14 Gb/s en wifi, c'est pas pour demain :-) mais là il n'y a pas eu d'ACK, autant dire que c'est parti dans le vide.

        • [^] # Re: tester le wifi seul avec iperf

          Posté par  . Évalué à 2.

          Faudrait tester en changeant le canal du wifi.

        • [^] # Re: tester le wifi seul avec iperf

          Posté par  . Évalué à 1. Dernière modification le 17 octobre 2013 à 17:02.

          oui, iperf est tres mal foutu, et il peut afficher des valeurs bidon sur le test udp quand la connexion ne marche pas.

          Tu peux faire le test en tcp pour avoir des valeurs plus réalistes, mais comme il y a les ack ça teste les 2 sens en meme temps et c'est pas pratique pour investiguer:

          iperf -s -i 5 -t 30
          iperf -c <ip> -i 5 -t 30 -r 
          

          Cela dit, ce qu'on voit c'est qu'il y aun problème asymetrique. Dans un sens (lignes marquées [4]) le débit est a peu pres cohérent (même si c'est plutot mauvais et instable, de 2 à 20Mb/s)
          alors que dans l'autre sens ( lignes [3]) c'est en dessous de tout, et les 2 derniers slots sont dans les choux d'apres les logs du serveur.

          Ce genre de symptome me fait penser à un problème d'antenne (peut etre déconnectée) sur le serveur.
          Il faudrait tester avec un autre dongle wifi, pour voir.

          Au cas où, tu pourrais aussi voir ce que ça donne avec les drivers les plus récents récupérés sur compat-drivers: (mais je doute que ça change quelque chose…)
          https://backports.wiki.kernel.org/index.php/Documentation/compat-drivers

          • [^] # Re: tester le wifi seul avec iperf

            Posté par  (site web personnel) . Évalué à 1.

            Merci pour vos réponses.

            Après avoir changé de canal, voici les résultats avec la commande que tu m'as donnée :

            iperf -c msi -i 5 -t 30 -r 
            ------------------------------------------------------------
            Server listening on TCP port 5001
            TCP window size: 85.3 KByte (default)
            ------------------------------------------------------------
            ------------------------------------------------------------
            Client connecting to msi, TCP port 5001
            TCP window size: 22.9 KByte (default)
            ------------------------------------------------------------
            [  5] local 192.168.1.23 port 35590 connected with 192.168.1.25 port 5001
            [ ID] Interval       Transfer     Bandwidth
            [  5]  0.0- 5.0 sec  7.38 MBytes  12.4 Mbits/sec
            [  5]  5.0-10.0 sec  8.12 MBytes  13.6 Mbits/sec
            [  5] 10.0-15.0 sec  7.38 MBytes  12.4 Mbits/sec
            [  5] 15.0-20.0 sec  8.50 MBytes  14.3 Mbits/sec
            [  5] 20.0-25.0 sec  7.00 MBytes  11.7 Mbits/sec
            [  5] 25.0-30.0 sec  6.12 MBytes  10.3 Mbits/sec
            [  5]  0.0-30.1 sec  44.6 MBytes  12.4 Mbits/sec
            [  4] local 192.168.1.23 port 5001 connected with 192.168.1.25 port 58780
            [  4]  0.0- 5.0 sec  7.61 MBytes  12.8 Mbits/sec
            [  4]  5.0-10.0 sec  6.59 MBytes  11.1 Mbits/sec
            [  4] 10.0-15.0 sec  6.03 MBytes  10.1 Mbits/sec
            [  4] 15.0-20.0 sec  7.20 MBytes  12.1 Mbits/sec
            [  4] 20.0-25.0 sec  4.99 MBytes  8.38 Mbits/sec
            [  4] 25.0-30.0 sec  6.43 MBytes  10.8 Mbits/sec
            [  4]  0.0-30.6 sec  39.2 MBytes  10.8 Mbits/sec
            

            Ça a l'air plutôt encourageant, non ? Il n'y a pas d'antenne sur le serveur.
            En revanche, toujours de gros lags pour regarder une vidéo. Le transfert rsync marche mieux : il ne plante plus, mais le débit baisse inexorablement avec le temps, jusqu'à 50 ko/s.

            J'ai essayé d'installer les pilotes officiels de Ralink, mais la compilation plante. Je vais essayer le dernier compat-drivers.

        • [^] # Re: tester le wifi seul avec iperf

          Posté par  . Évalué à 2.

  • # fscache

    Posté par  . Évalué à 2.

  • # get data

    Posté par  (site web personnel) . Évalué à 2.

    http://bl0rg.krunch.be/nfs-perfs.html

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # taille de paquet

    Posté par  (site web personnel) . Évalué à 1.

    Quelques pistes rapides:

    refaire les tests de débit en jouant sur la taille des requètes (options de montage wsize et rsize)

    tester en udp ou tcp (avec l'option de montage idoine)

    tester les différentes versions du protocole (2, 3 voire 4) (toujours avec l'option de montage idoine)

    Mes 3¢

  • # -

    Posté par  (site web personnel) . Évalué à 1.

    Merci encore pour vos réponses.

    Ce qui est très bizarre, c'est que tout fonctionne mieux que jamais aujourd'hui, sans que j'aie changé quoi que ce soit.

    À voir à l'avenir…

    • [^] # Re: -

      Posté par  (site web personnel) . Évalué à 2.

      Salut à tous,

      J'ai résolu, en partie, mon problème, qui était lié au(x) pilote(s) Wifi. Au cas où ça peut aider quelqu'un, il semble que désactiver le 802.11n améliore les performances dans ce cas. Ce qui est bizarre, c'est que je l'avais déjà fait avant sans amélioration notable, mais là, ça semble fonctionner.

      Merci encore pour vos réponses.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.