Kiat untuk debugging kinerja Samba?

8

Samba memberi saya 24 MB / s read dan 44 MB / s write, sementara ftp memberi 97 dan 112 MB / s dalam kondisi yang sama.

The dokumentasi mengatakan bahwa

Secara umum, Anda harus menemukan bahwa Samba melakukan mirip dengan ftp pada kecepatan transfer mentah.

Dalam kasus saya jelas tidak.

Di mana saya dapat menemukan tips tentang cara men-debug kinerja Samba?

Atau alternatifnya untuk mengganti Samba dengan yang lain? (Sayangnya, saya tidak dapat menggunakan ftp, karena saya membutuhkan sesuatu yang dapat digunakan dengan rsync / rsnapshot.)

Keterangan lebih lanjut:

  • Kedua komputer menjalankan Ubuntu 10.10 (menggunakan Samba karena saya punya Mac juga)
  • Samba berbagi di jaringan rumah lokal, dipasang sebagai

    $ mount
    ...
    //server.local/share/ on /mnt/share type cifs (rw,mand)
    
  • Kinerja Samba diuji dengan menyalin ( cp) satu file ~ 4GB ke dan dari share, digunakan timeuntuk menentukan waktu dan menghitung kecepatan transfer dengan tangan.

  • Kinerja ftp adalah angka dari klien ftp untuk mendapatkan / memasukkan file yang sama.
  • iperf memberikan kecepatan jaringan ~ 900 Mbits / s
  • bonnie++ memberikan kecepatan disk> 200 MB / s di kedua sisi untuk membaca blok serta menulis blok
  • Mencoba mengubah parameter yang disarankan dalam HOWTO tuning kinerja (baca / tulis mentah, ukuran baca, opsi soket), kebanyakan dari mereka membuat sedikit atau tidak ada perbedaan. (Yang membuat perbedaan menyebabkan kecepatan tulis turun 50%.)
jg-faustus
sumber
Pembaruan: Menurut mailing list Samba anno 2009 masalah kinerja berasal dari smbfs / cif daripada server Samba.
jg-faustus

Jawaban:

3

Sebenarnya FTP memiliki laju throughput data yang cukup efisien begitu mulai berjalan. Overhead yang memperlambat segalanya adalah dengan mendapatkan unduhan file di tempat pertama. Itu bukan untuk mengatakan bahwa tidak ada masalah dengan Samba di sini. Itu harus melakukan hampir identik.

Sejujurnya, saya tidak punya banyak petunjuk di mana Anda harus mulai mencoba memperbaikinya.

Idealnya Anda dapat menjatuhkan komputer lain di sana dengan instalasi referensi Samba (misalnya Windows) dan mengujinya sebagai klien dan server terhadap mesin Ubuntu. Maka Anda akan tahu mesin mana yang menjadi masalah, jika itu hanya satu arah yang menjadi masalah dan kemudian Anda akan dapat melaporkan bug berdasarkan ini dan / atau menemukan solusi untuk sementara.

Beberapa waktu yang lalu saya melihat sesuatu tentang glitching perangkat keras jaringan tertentu di bawah Samba. Itu adalah switch dan adapter jaringan tetapi saya tidak bisa seumur hidup menemukan sesuatu tentang itu. Itu mungkin merupakan kasus tepi yang tidak layak dipertimbangkan.

Bagaimana kalau kita menghindari Samba? FTP mungkin tidak berfungsi tetapi bagaimana dengan NFS ? Mungkin memiliki kecepatan transfer tertinggi dari yang banyak (dalam pengalaman saya) dan harus menangani rsync dengan baik.

Anda juga dapat melihat FUSE-mount server FTP sehingga rsync dapat menggertaknya.

Oli
sumber
Terima kasih atas tip dan umpan baliknya - Saya tidak tahu apakah mungkin untuk menginstal FTP-cifs? Saya akan melihat NFS juga. Jika kinerja Samba yang buruk adalah sesuatu yang tidak sepele dan tidak terkait dengan Ubuntu, mungkin itu termasuk dalam milis Samba atau semacamnya, bukan di sini?
jg-faustus
Anda mungkin jawaban terbaik yang akan saya dapatkan :) Terima kasih lagi.
jg-faustus
1
Anda dapat me-mount resource ftp: curlftpfs [user @] host: [dir] mountpoint [options]
jet
1

Kinerja seperti apa yang Anda dapatkan dari menjalankan rsync over ssh? Mungkin Anda bisa melakukan rsync Anda dengan ssh dan kemudian juga menggunakan samba ketika Anda perlu mentransfer barang di antara mac Anda?

Azendale
sumber
rsync over ssh memberikan 60 MB / s, sekitar pertengahan antara Samba dan FTP. Tetapi hanya melihat tip di tempat lain bahwa rsync dalam mode daemon (memiliki satu mesin menjadi server rsync) dapat setara dengan FTP, saya akan coba yang berikutnya.
jg-faustus
1

Anda dapat mencoba ini di 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
jet
sumber
Saya sudah mencoba beberapa dari mereka. TCP_NODELAY: Peningkatan kecil. tulis mentah dan baca mentah: Tidak ada perbedaan mencolok. SO_SNDBUF dan SO_RCVBUF: Mengurangi kinerja penulisan dengan 50%, tidak mengejar lebih jauh. Saya akan memeriksa sisanya ketika saya mendapat kesempatan.
jg-faustus