Programmation » lecture réseau & performance
       
    lecture réseau & performance
    Published 04/08/2010 @ 20:10:12,
    By Altar
    Hello 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 ? :tinostar:

    Merchi ^^
       
    lecture réseau & performance
    Published 05/08/2010 @ 12:59:35,
    By Dr_Dan
    Essaye d'augmenter la taille des bloc de la fonction read :petrus:
    Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root. :petrus:
       
    lecture réseau & performance
    Published 05/08/2010 @ 14:29:10,
    By Altar
    Dr_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.
       
    lecture réseau & performance
    Published 05/08/2010 @ 17:31:03,
    By zion
    Très bonne question et euh...

    Ben voila quoi :oh:
    Je suis le Roy :ocube:
       
    lecture réseau & performance
    Published 05/08/2010 @ 18:27:11,
    By Clandestino
    En mettant des poils, ça glissera mieux ?

    :topicalacon:
       
    lecture réseau & performance
    Published 06/08/2010 @ 13:06:30,
    By Altar
    Bon 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 :ocube:

    Latest Edition: 06/08/2010 @ 13:26:23
    Informaticien.be - © 2002-2025 AkretioSPRL  - Generated via Kelare
    The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?