Mana yang lebih cepat, dan mengapa: mentransfer beberapa file kecil atau beberapa file besar?

17

Saya segera akan memiliki folder dengan ribuan file, masing-masing file dalam urutan beberapa KB. Saya perlu mentransfer ini melalui jaringan Windows dari satu saham UNC ke yang lain. Secara umum, apakah lebih cepat hanya menyalin file secara massal, atau lebih cepat untuk zipnya (misalnya, menggunakan 7zip dalam mode tercepat) dan mengirim satu atau beberapa file besar? Atau apakah tidak ada perbedaan dalam praktik?

Kestes
sumber

Jawaban:

37

Lebih cepat mentransfer satu file besar daripada banyak file kecil karena overhead negosiasi transfer. Negosiasi dilakukan untuk setiap file, jadi mentransfer satu file itu harus dilakukan sekali, mentransfer n file berarti perlu dilakukan n kali.

Anda akan menghemat banyak waktu jika melakukan zip terlebih dahulu sebelum transfer.

Jon Cahill
sumber
1
en.wikipedia.org/wiki/Slow-start juga mendukung file berukuran besar.
Komandan Keen
4
Pertimbangkan bahwa kompresi juga akan memakan waktu. Jika data Anda tidak dapat dikompresi (mis. JPEG, ZIP, JAR, dan format lain yang sudah dikompresi) Anda hanya perlu TAR mereka (atau ZIP tanpa kompresi). Ini akan menghemat waktu CPU untuk upaya sia-sia untuk kompres data Anda lebih lanjut.
Daniel Schneller
Bahwa banyak file kecil akan menyebabkan Anda sangat kesakitan - di antara paket-paket kecil dan melakukan jabat tangan SMB untuk masing-masing, zip mungkin akan mencukur 60% dari waktu salinan Anda.
user2278
+1 untuk TAR karena Anda dapat menyalin / mengekstrak arsip parsial.
Cristian Vat
Jawaban ini benar, tetapi pada Windows 7 (setidaknya) ada bug yang dikenal di mana menyalin set file yang sama persis pada XP jauh lebih cepat daripada pada Windows 7: social.technet.microsoft.com/Forums/en-US/ w7itproperf / utas / ...
tbone
5

Jon Cahill sangat benar, satu file akan lebih cepat. Namun perlu diingat bahwa jika ada ketidakstabilan dalam koneksi, file individual (atau grup berukuran sedang dalam file zip) mungkin lebih baik, karena jika transfer gagal Anda harus memulai dari awal lagi, sedangkan dengan banyak file Anda hanya perlu melakukan ulang file terakhir dimulai

Glenn Slaven
sumber
5
Kecuali jika protokol transfer melanjutkan.
Unkwntech
1

Banyak file kecil juga akan lebih mahal untuk ditulis ke sistem file daripada satu file besar. Perlu melakukan hal-hal seperti:

  • Periksa nama file unik
  • Tuliskan entri tabel file

Ketika Anda mendapatkan semakin banyak file dalam direktori ini bisa menjadi sangat mahal. Dan masing-masing langkah ini dapat menambah latensi pada proses penyalinan dan memperlambat semuanya.

Luke Quinane
sumber
1
Saya kira dia masih akan membutuhkan semua file kecil di sistem target, jadi dia mungkin harus mengekstrak zip nanti, yaitu filesystem masih harus melakukan pekerjaan. Mengirim file besar dan membuka ritsleting masih akan jauh lebih cepat daripada mentransfer semua file kecil melalui net.
BlaM
@ BlaM, seperti yang saya katakan di jawaban semuanya bermuara pada latensi. Jika latensi jaringan ditambahkan ke setiap operasi CreateFile total waktu bisa jauh lebih lama. Jika salinan cukup pintar untuk membuat file secara bersamaan, mungkin itu tidak akan berdampak pada operasi.
Luke Quinane
0

Ukuran paket rata-rata relatif terhadap ukuran file rata-rata mungkin penting di sini. Dengan banyak file kecil Anda mungkin menemukan diri Anda mengirimkan banyak paket kecil. Paket kecil masih dikenakan overhead TCP; Anda dapat berakhir dengan menggandakan jumlah lalu lintas sebagai hasilnya.

Sistem modern dan bahkan yang relatif kuno dapat mengirim banyak file melalui satu koneksi TCP, menghindari biaya jabat tangan itu.

jldugger
sumber
0

Seperti yang saya temukan, tetapi jika Anda menginginkan transfer yang lebih cepat, lakukan transfer dari komputer lokal, dan salin ke drive lokal.

Yaitu salin \ computer1 \ myshare ke c: \ files \ myshare, jangan gunakan komputer ketiga dan salin dari \ computer1 \ myshare ke \ computer2 \ mynewshare.

Tubs
sumber
0

Perlu juga diingat bahwa pilihan protokol mempengaruhi waktu keseluruhan untuk menyelesaikan - misalnya, untuk file FTP dari satu host ke yang lain, dapat terasa lebih cepat daripada menggunakan file sharing windows (tentu saja, hal-hal seperti izin domain dan sejenisnya juga hilang, tetapi dalam beberapa situasi, ini bisa menjadi trade off yang dapat diterima - Lagi pula, ini juga akan hilang dengan zipping / unzipping)

Rowland Shaw
sumber