Programmation » lecture réseau & performance
lecture réseau & performance
Publié le 04/08/2010 @ 20:10:12,
Par AltarHello les amiches \o/
J'ai un petit soucis de performance avec la lecture d'un fichier sur un serveur de fichiers avec win7.
Serveur de fichiers sous linux (centOS 5.4) avec samba 3.4 / connexion fiber 10g, client sous windows 7 avec une connexion gigabit.
Taille moyenne d'un fichier 25Gib.
Si j'effectue une copie d'un fichier vers le/du nas du/vers le client avec explorer, j'obtiens une vitesse de 110Mib/sec. L'interface gigabit étant le bottleneck.
Si j'essaye de faire une simple boucle while(read()!=0) en c# sur un fichier stocké sur le nas, j'obtiens 25mo/sec... pathétique hein ? en c, en utilisant un handle asynchrone et non bufferé sur le fichier, j'arrive à monter à 66Mib/sec de moyenne avec un buffer de 1Mib.
Il a quoi de magique l'explorer ?
Merchi ^^
J'ai un petit soucis de performance avec la lecture d'un fichier sur un serveur de fichiers avec win7.
Serveur de fichiers sous linux (centOS 5.4) avec samba 3.4 / connexion fiber 10g, client sous windows 7 avec une connexion gigabit.
Taille moyenne d'un fichier 25Gib.
Si j'effectue une copie d'un fichier vers le/du nas du/vers le client avec explorer, j'obtiens une vitesse de 110Mib/sec. L'interface gigabit étant le bottleneck.
Si j'essaye de faire une simple boucle while(read()!=0) en c# sur un fichier stocké sur le nas, j'obtiens 25mo/sec... pathétique hein ? en c, en utilisant un handle asynchrone et non bufferé sur le fichier, j'arrive à monter à 66Mib/sec de moyenne avec un buffer de 1Mib.
Il a quoi de magique l'explorer ?
Merchi ^^
lecture réseau & performance
Publié le 05/08/2010 @ 12:59:35,
Par Dr_DanEssaye d'augmenter la taille des bloc de la fonction read
Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root.
lecture réseau & performance
Publié le 05/08/2010 @ 14:29:10,
Par AltarDr_Dan > c'est bien ce que j'ai fait xD
J'ai essayé 32kib / 64kib / 128kib / 256kib / 512kib / 1Mib / 2Mib / 4Mib avec handle avec tampon et sans tampon.
64kib semble être la meilleur valeur avec un handle avec tampon et 1Mib avec un handle sans tampon.
J'ai essayé 32kib / 64kib / 128kib / 256kib / 512kib / 1Mib / 2Mib / 4Mib avec handle avec tampon et sans tampon.
64kib semble être la meilleur valeur avec un handle avec tampon et 1Mib avec un handle sans tampon.
lecture réseau & performance
Publié le 05/08/2010 @ 17:31:03,
Par zionTrès bonne question et euh...
Ben voila quoi
Ben voila quoi
Je suis le Roy
lecture réseau & performance
Publié le 05/08/2010 @ 18:27:11,
Par Clandestino
lecture réseau & performance
Publié le 06/08/2010 @ 13:06:30,
Par AltarBon voilà , j'ai implémenté un simple envoi d'un fichier à travers un socket tcp en c. Petit tuning du socket TCP avec le SO_SNDBUF à 256kib. Pareil pour le client en c#, sauf qu'on modifie le SO_RCVBUF et magie, je suis à 110Mio/sec... c'est ce que je devrais avoir avec smb aussi.
Ca sent la sodo made in microsoft ça ...
Je le savais que j'aurais du faire développeur web et rejeter tous les soucis de performances sur les développeurs de butineurs
Dernière édition: 06/08/2010 @ 13:26:23
Ca sent la sodo made in microsoft ça ...
Je le savais que j'aurais du faire développeur web et rejeter tous les soucis de performances sur les développeurs de butineurs
Dernière édition: 06/08/2010 @ 13:26:23