Suggerimenti per il debug delle prestazioni di Samba?


8

Samba mi dà 24 MB / s in lettura e 44 MB / s in scrittura, mentre ftp fornisce 97 e 112 MB / s nelle stesse circostanze.

La documentazione dice che

In generale, dovresti scoprire che Samba si comporta in modo simile a ftp a velocità di trasferimento non elaborata.

Nel mio caso chiaramente no.

Dove posso trovare suggerimenti su come eseguire il debug delle prestazioni di Samba?

O in alternativa suggerimenti per sostituire Samba con qualcos'altro? (Non posso usare ftp, sfortunatamente, poiché ho bisogno di qualcosa che possa essere usato con rsync / rsnapshot.)

Più dettagli:

  • Entrambi i computer eseguono Ubuntu 10.10 (usando Samba perché anch'io ho un Mac)
  • La condivisione Samba si trova su una rete domestica locale, montata come

    $ mount
    ...
    //server.local/share/ on /mnt/share type cifs (rw,mand)
    
  • Le prestazioni di Samba sono state testate copiando ( cp) un singolo file di ~ 4 GB da e verso la condivisione, usando timeper il tempismo e il calcolo manuale della velocità di trasferimento.

  • Le prestazioni ftp sono i numeri dal client ftp per ottenere / mettere lo stesso file.
  • iperf fornisce velocità di rete ~ 900 Mbits / s
  • bonnie++ fornisce velocità del disco> 200 MB / s su entrambi i lati per le letture dei blocchi e per le scritture dei blocchi
  • Ho provato a cambiare i parametri suggeriti nell'HOWTO di tuning delle prestazioni (lettura / scrittura raw, dimensioni di lettura, opzioni socket), la maggior parte di essi ha fatto poca o nessuna differenza. (Quello che ha fatto la differenza ha causato un calo della velocità di scrittura del 50%.)

Aggiornamento: Secondo la mailing list di Samba del 2009, i problemi di prestazioni derivano da smbfs / cifs piuttosto che dal server Samba.
jg-faustus,

Risposte:


3

In realtà FTP ha una velocità di trasmissione dati piuttosto efficiente una volta avviato. Il sovraccarico che rallenta le cose è in primo luogo il download di un file. Questo non vuol dire che qui non c'è un problema con Samba. Dovrebbe funzionare in modo quasi identico.

Ad essere sincero, non ho molti indizi su dove dovresti iniziare a provare a risolvere questo problema.

Idealmente, potresti inserire un altro computer con un'installazione di riferimento di Samba (ad esempio Windows) e testarlo come client e server su macchine Ubuntu. Quindi sapresti quale macchina era il problema, se fosse solo una direzione che era il problema e quindi saresti in grado di segnalare bug basati su questo e / o trovare una soluzione temporanea per il provvisorio.

Qualche tempo fa ho visto qualcosa su un certo hardware di rete che luccicava sotto Samba. Si trattava sia di switch che di adattatori di rete, ma per la vita non riesco a trovarlo. Probabilmente è stato un caso così marginale che non vale la pena considerare.

Che ne dici di eludere Samba? FTP potrebbe non funzionare, ma per quanto riguarda NFS ? Probabilmente ha la massima velocità di trasferimento dal lotto (secondo la mia esperienza) e dovrebbe gestire bene rsync.

Puoi anche guardare FUSE che monta il server FTP in modo che rsync possa opprimerlo.


Grazie per suggerimenti e feedback: non avevo idea che fosse possibile cifrare FTP? Esaminerò anche NFS. Se le scarse prestazioni di Samba sono qualcosa di non banale e non correlato a Ubuntu, forse appartiene alla mailing list di Samba o ad altre piuttosto che qui?
jg-faustus,

La tua è probabilmente la migliore risposta che sto per ottenere :) Grazie ancora.
jg-faustus,

1
puoi montare la risorsa ftp: curlftpfs [user @] host: [dir] mountpoint [opzioni]
jet

1

Che tipo di prestazioni ottieni dall'esecuzione di rsync su ssh? Forse potresti fare il tuo rsync con ssh e quindi usare anche samba per quando hai bisogno di trasferire cose tra il tuo mac?


rsync over ssh fornisce 60 MB / s, circa a metà strada tra Samba e FTP. Ma ho appena visto un suggerimento altrove che rsync in modalità demone (avendo una macchina essere server rsync) può essere alla pari con FTP, lo proverò dopo.
jg-faustus,

1

puoi provare questo in 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

Ne ho provati alcuni. TCP_NODELAY: piccolo miglioramento. scrivere raw e leggere raw: nessuna differenza evidente. SO_SNDBUF e SO_RCVBUF: le prestazioni di scrittura ridotte del 50% non sono andate oltre. Controllerò il resto quando ne avrò la possibilità.
jg-faustus,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.