Conseils pour déboguer les performances de Samba?


8

Samba me donne 24 Mo / s en lecture et 44 Mo / s en écriture, tandis que ftp donne 97 et 112 Mo / s dans les mêmes circonstances.

La documentation indique que

En règle générale, vous devriez constater que Samba fonctionne de la même manière que ftp à la vitesse de transfert brute.

Dans mon cas, ce n'est clairement pas le cas.

Où puis-je trouver des conseils sur la façon de déboguer les performances de Samba?

Ou bien des conseils pour remplacer Samba par autre chose? (Je ne peux malheureusement pas utiliser ftp, car j'ai besoin de quelque chose qui peut être utilisé avec rsync / rsnapshot.)

Plus de détails:

  • Les deux ordinateurs exécutent Ubuntu 10.10 (en utilisant Samba parce que j'ai aussi un Mac)
  • Le partage Samba se trouve sur un réseau domestique local, monté comme

    $ mount
    ...
    //server.local/share/ on /mnt/share type cifs (rw,mand)
    
  • Les performances de Samba ont été testées en copiant ( cp) un fichier unique de ~ 4 Go vers et depuis le partage, en utilisant timepour le chronométrage et le calcul de la vitesse de transfert à la main.

  • Les performances ftp sont les nombres du client ftp pour obtenir / mettre le même fichier.
  • iperf donne la vitesse du réseau ~ 900 Mbits / s
  • bonnie++ donne des vitesses de disque> 200 Mo / s des deux côtés pour les lectures de bloc ainsi que les écritures de bloc
  • J'ai essayé de changer les paramètres suggérés dans le HOWTO sur le réglage des performances (lecture / écriture brute, taille de lecture, options de socket), la plupart d'entre eux ne faisaient que peu ou pas de différence. (Celui qui a fait la différence a fait chuter la vitesse d'écriture de 50%.)

Mise à jour: Selon la liste de diffusion Samba anno 2009, les problèmes de performances proviennent de smbfs / cifs plutôt que du serveur Samba.
jg-faustus

Réponses:


3

En fait, FTP a un taux de débit de données assez efficace une fois qu'il démarre. Le surcoût qui ralentit les choses est d'obtenir le téléchargement d'un fichier en premier lieu. Cela ne veut pas dire qu'il n'y a pas de problème avec Samba ici. Il devrait fonctionner de manière presque identique.

Pour être honnête, je ne sais pas trop où vous devriez commencer à essayer de résoudre ce problème.

Idéalement, vous pourrez y déposer un autre ordinateur avec une installation de référence de Samba (par exemple Windows) et le tester en tant que client et serveur contre les machines Ubuntu. Ensuite, vous sauriez quelle machine était le problème, si ce n'était qu'une direction qui était le problème et alors vous seriez en mesure de signaler des bogues en fonction de cela et / ou de trouver une solution de contournement pour l'intérim.

Il y a quelque temps, j'ai vu quelque chose sur certains problèmes de matériel réseau sous Samba. Il s'agissait à la fois de commutateurs et d'adaptateurs réseau, mais je ne peux rien y trouver pour la vie. C'était probablement un cas tellement délicat qu'il ne valait pas la peine d'être considéré.

Que diriez-vous de contourner Samba? FTP pourrait ne pas fonctionner mais qu'en est-il de NFS ? Il a probablement les vitesses de transfert les plus élevées du lot (selon mon expérience) et il devrait gérer correctement rsync.

Vous pouvez également regarder le montage FUSE du serveur FTP afin que rsync puisse l'intimider.


Merci pour le conseil et les commentaires - je ne savais pas qu'il était possible de monter des cifs sur FTP? J'examinerai également NFS. Si les mauvaises performances de Samba sont quelque chose de non trivial et non lié à Ubuntu, peut-être qu'elles appartiennent à la liste de diffusion Samba ou à d'autres plutôt qu'ici?
jg-faustus

La vôtre est probablement la meilleure réponse que je vais obtenir :) Merci encore.
jg-faustus

1
vous pouvez monter la ressource ftp: curlftpfs [user @] hôte: [dir] mountpoint [options]
jet

1

Quel genre de performances obtenez-vous en exécutant rsync sur ssh? Peut-être pourriez-vous faire votre rsync avec ssh et ensuite utiliser samba pour quand vous devez transférer des trucs entre votre Mac?


rsync sur ssh donne 60 Mo / s, à mi-chemin entre Samba et FTP. Mais je viens de voir une astuce ailleurs que rsync en mode démon (avoir une machine comme serveur rsync) peut être comparable à FTP, je vais essayer cela ensuite.
jg-faustus

1

vous pouvez essayer ceci dans smb.conf

socket options = SO_KEEPALIVE SO_REUSEADDR \
   SO_BROADCAST TCP_NODELAY IPTOS_LOWDELAY \
   IPTOS_THROUGHPUT SO_SNDBUF=8192 SO_RCVBUF=8192

oplocks = yes

write raw = yes
read raw = yes

J'en ai essayé certains. TCP_NODELAY: Petite amélioration. écrire brut et lire brut: aucune différence discernable. SO_SNDBUF et SO_RCVBUF: performances d'écriture réduites de 50%, n'a pas poursuivi. Je vérifierai le reste quand j'en aurai l'occasion.
jg-faustus
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.