# [NFS & WIFI] => Freeze de TOUT par coup de 20 secondes

## loopx

Bonjour, 

J'utilise du NFS sur mon serveur et tout mes clients sur le réseau chez moi ... Sur mon PC (client), j'ai un souci très très énervant ...

En fait, je déplace, de temps en temps, des gros fichier (min 300 Mo) en direction d'une partition sur le serveur, le tout via NFS. Donc, (sous KDE), il y a chargement du fichier (lecture de beaucoup de Mo à la fois) puis envoye par le Wifi (~500Ko/s)... 

Ce déplacement prend généralement quelques minutes, pendant ce temps, je veux accéder à d'autre fichier via konqueror et, ca freeze (le temps de l'envoye, le temps de l'envoye des X Mo qui ont été précédement lu). Je dois attendre la lecture de la suite du fichier sur le PC pour que le freeze s'arrete... puis, ca le refait ... 

Alors ce freeze s'incruste: 

- dans konqueror

- dans firefox

- dans un emerge!

- dans amsn

bref, tout le système ...

C'est franchement insuportable, surtout si j'ai plusieurs giga à envoyer... Je me demande d'ou provient ce problème. Est-ce que cela pourrait provenir du scheduler (donc, dans le kernel?)...

Franchement, j'ai besoin d'aide. Voilà les exports concernant le serveur pour mon PC:

```

serveur loopx # cat /etc/exports

# /etc/exports: NFS file systems being exported.  See exports(5).

/mnt/data0 10.2.1.6(async,no_subtree_check,rw)

/mnt/data1 10.2.1.6(async,no_subtree_check,rw)

/mnt/data2 10.2.1.6(async,no_subtree_check,rw)

/mnt/data3 10.2.1.6(async,no_subtree_check,rw)

```

coté client:

```

mount -t nfs 10.2.1.62:/mnt/data0 /mnt/serveur/data0

mount -t nfs 10.2.1.62:/mnt/data1 /mnt/serveur/data1

mount -t nfs 10.2.1.62:/mnt/data2 /mnt/serveur/data2

mount -t nfs 10.2.1.62:/mnt/data3 /mnt/serveur/data3

```

Voilà, je sais pas si vous avez besoin de plus... Merci d'avance   :Confused: 

----------

## kwenspc

 *loopx wrote:*   

> 
> 
> Alors ce freeze s'incruste: 
> 
> - dans konqueror
> ...

 

dans ce cas je pense que c'est plus spécifiquement un problème WIFI uniquement plutôt que NFS. Sinon seul NFS serait touché, je veux dire quand tu l'utiliserais. Là si amsn et consors s'y mettent c'est qu'il y a un soucis sur la couche basse du système: driver réseau, scheduler...? faut voir.

----------

## loopx

Non, ce n'est pas le WIFI, quand je dis freeze, c'est freeze... firefox ne répond plus etc... amsn devient tout blanc, le thread est bloqué sur une requette... et la requette juste avant est celle de NFS ... Il se débloque tous quand NFS à fini de transférer son bout de fichier. De plus la console sur le serveur (donc, utilisant le wifi) fonctionne très très très bien, donc ce n'est pas un problème de connectique ... C'est juste que via NFS, les fichiers sont considéré comme "locau" et donc, il doit y avoir un problème avec ca... (un transfert via FTP ne me poserait jamais ce genre de souci).

EDIT: je ne sais pas si ce problème existait avant, je n'y ai jamais fait attention...

EDIT2: je suis en preemptible kernel ... jsais pas si c'est vraiment bien ...

----------

## loopx

Petit up...

Bon, vu que le NFS à une cache trop importante à mon gout (ce qui fait que tout le pc est bloqué sur la requette nfs ...), eh ben je me dis: changeons les valeurs par défauts   :Laughing: 

man nfs:

 *Quote:*   

> 
> 
>    Options for the nfs file system type
> 
>        rsize=n        The  number  of  bytes NFS uses when reading files from an NFS server.  The rsize is negotiated between the server and
> ...

 

Mais, comment connaitre la valeur actuelle de ces 2 options ??????? 

Une idée ????

EDIT:

Sur un forum:

 *Quote:*   

> I also highly recommend the intr option to all NFS mounts.  This
> 
> largely eliminates the "unkillable process" problem.

 

man:

 *Quote:*   

> 
> 
> intr           If an NFS file operation has a major timeout and it is hard mounted, then allow signals to interupt the file operation
> 
>                       and cause it to return EINTR to the calling program.  The default is to not allow file operations to be interrupted.

 

Donc, cette option va faire quoi ? Flinguer le transfert du fichier en cours, faudra le relancer à chaque fois ???? C'est un truc de ouf ca   :Shocked: 

----------

## nonas

J'ai vu ça ce matin : (http://gentoo-wiki.com/HOWTO_Using_a_shared_portage_via_NFS)

 *Quote:*   

> If you have a problem with blocking emerge processes on the client or very bad performance, your network setup might have a problem. In my case, the client was connected on 10 MBit/sec, the server with 100 MBit/sec. Both should be connected at the same rate, also check duplex mode! I could not change this and got lots of packet fragmentation and failed re-assembly of packets (see output of netstat -s and nfsstat -o net). Solution: I set the NFS block size to the largest multiple of 1024 below the MTU size. In an ethernet the MTU is typically 1500, so the NFS uses only packets of 1024 bytes (parameters rsize and wsize):
> 
> In /etc/fstab:
> 
> 192.168.x.x:/usr/portage  /mnt/nfs_portage  nfs  rw,noatime,rsize=1024,wsize=1024 0 0
> ...

 

----------

## loopx

Je vais tester une valeur plus faible pour r/wsize.

Concernant les stats:

```

loopx@loop / $ netstat -s

Ip:

    139466 total packets received

    2 with invalid addresses

    0 forwarded

    0 incoming packets discarded

    139464 incoming packets delivered

    99058 requests sent out

    10 dropped because of missing route

Icmp:

    15 ICMP messages received

    0 input ICMP message failed.

    Histogramme d'entrée ICMP

        destination unreachable: 5

        echo requests: 4

        echo replies: 6

    9 ICMP messages sent

    0 ICMP messages failed

    Histogramme de sortie ICMP

        destination unreachable: 5

        echo replies: 4

Tcp:

    240 active connections openings

    0 passive connection openings

    1 failed connection attempts

    22 connection resets received

    7 connections established

    138797 segments received

    98526 segments send out

    93 segments retransmited

    0 bad segments received.

    46 resets sent

Udp:

    650 packets received

    0 packets to unknown port received.

    0 packet receive errors

    419 packets sent

    RcvbufErrors: 0

    SndbufErrors: 0

UdpLite:

    InDatagrams: 0

    NoPorts: 0

    InErrors: 0

    OutDatagrams: 0

    RcvbufErrors: 0

    SndbufErrors: 0

TcpExt:

    ArpFilter: 0

    86 TCP sockets finished time wait in fast timer

    6308 delayed acks sent

    5 delayed acks further delayed because of locked socket

    Quick ack mode was activated 162 times

    104381 packets directly queued to recvmsg prequeue.

    21152 packets directly received from backlog

    114913206 packets directly received from prequeue

    30116 packets header predicted

    82263 packets header predicted and directly queued to user

    TCPPureAcks: 521

    TCPHPAcks: 3565

    TCPRenoRecovery: 0

    TCPSackRecovery: 7

    TCPSACKReneging: 0

    TCPFACKReorder: 0

    TCPSACKReorder: 0

    TCPRenoReorder: 0

    TCPTSReorder: 0

    TCPFullUndo: 0

    TCPPartialUndo: 0

    TCPDSACKUndo: 0

    TCPLossUndo: 44

    TCPLoss: 4

    TCPLostRetransmit: 0

    TCPRenoFailures: 0

    TCPSackFailures: 8

    TCPLossFailures: 0

    TCPFastRetrans: 7

    TCPForwardRetrans: 0

    TCPSlowStartRetrans: 1

    TCPTimeouts: 65

    TCPRenoRecoveryFail: 0

    TCPSackRecoveryFail: 2

    TCPSchedulerFailed: 22

    TCPRcvCollapsed: 0

    TCPDSACKOldSent: 163

    TCPDSACKOfoSent: 0

    TCPDSACKRecv: 20

    TCPDSACKOfoRecv: 0

    TCPAbortOnSyn: 0

    TCPAbortOnData: 9

    TCPAbortOnClose: 19

    TCPAbortOnMemory: 0

    TCPAbortOnTimeout: 1

    TCPAbortOnLinger: 0

    TCPAbortFailed: 0

    TCPMemoryPressures: 0

IpExt:

    InNoRoutes: 0

    InTruncatedPkts: 0

    InMcastPkts: 0

    OutMcastPkts: 0

    InBcastPkts: 239

    OutBcastPkts: 0

```

Pour la deuxième commande, je regarderais après. Pour l'instant, j'essaie déséspérément de DEMONTER ce f***** partage NFS!!!!

```

loop mnt # mount

/dev/sda1 on / type reiserfs (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)

udev on /dev type tmpfs (rw,nosuid)

devpts on /dev/pts type devpts (rw,nosuid,noexec)

/dev/sda3 on /mnt/data type reiserfs (rw)

none on /dev/shm type tmpfs (rw)

usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)

binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

10.2.1.62:/mnt/share on /mnt/serveur type nfs (rw,addr=10.2.1.62)

loop mnt # umount -t nfs 10.2.1.62:/mnt/share

loop mnt # mount -t nfs -o noac 10.2.1.62:/mnt/share /mnt/serveur

mount.nfs: /mnt/serveur is already mounted or busy

loop mnt # umount -t nfs 10.2.1.62:/mnt/share

umount: 10.2.1.62:/mnt/share: n'a pas été trouvé

loop mnt # umount -t nfs 10.2.1.62:/mnt/share

umount: 10.2.1.62:/mnt/share: n'a pas été trouvé

ALORS QUE!!!!!!!! :

loopx@loop /mnt $ cd serveur/

loopx@loop /mnt/serveur $ ls

data0  data1  data2  data3  test

loopx@loop /mnt/serveur $ mount

/dev/sda1 on / type reiserfs (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)

udev on /dev type tmpfs (rw,nosuid)

devpts on /dev/pts type devpts (rw,nosuid,noexec)

/dev/sda3 on /mnt/data type reiserfs (rw)

none on /dev/shm type tmpfs (rw)

usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)

binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

```

Rahhhhhhh, jvais le BOUFFER CE NFS! C'est dingue, c'est DEMONTé, mais pourtant, c'est toujours monté; zy comprend rien   :Crying or Very sad:   jfais une pause!   :Very Happy: 

EDIT: voilà, j'ai testé les options r/wsize=1024... ca ne change ABSOLUMENT RIEN   :Crying or Very sad:    mon wifi tourne à 800Ko/s (en up vers le serveur) et dès que je lance un transfert de fichier (via konqueror), celui ci lit à 30 Mo/s (mise en cache) puis envoye lentement vers le serveur. Il faut attendre la relecture de donnée pour débloquer tout. Dans le genre, je click sur l'icone de firefox pour le lancer, j'ai du attendre 1 minute.

Je suis complètement décu et je ne sais toujours pas d'ou provient le problème. Fin voilà, je désespère.µ

EDIT2: je viens de tester un transfert via FTP (tjs vers le serveur) et la oh miracle, aucun ralentissement, tout est normal. La vitesse est la meme MAIS aucun ralentissement. J'utilise toujours konqueror.

Je suis quand meme pas le seul à connaitre ce genre de souci ?   :Confused: 

Question: ca se fait de: 

- mettre le NFS en lecture ONLY

- utiliser le transfert FTP pour tout ce qui est UPLOAD

????

----------

## loopx

tit up   :Embarassed: 

pour dire que, une copie sur NFS via la console ... eh ben ca fait quand meme freeze tout pendant X secondes.

Donc en gros, NFS c'est bien SI il a une connexion haut débit... ou alors, il faut travailler avec des ptits fichiers ...

----------

