Saya mencoba mentransfer sekitar 100k file dengan jumlah total 90GB. Saat ini saya menggunakan daemon rsync tetapi 3.4mb / s lambat dan saya perlu melakukan ini beberapa kali. Saya bertanya-tanya opsi apa yang saya miliki yang akan memaksimalkan koneksi 100mbit melalui internet dan menjadi sangat andal.
rsync
file-transfer
penyamaran2
sumber
sumber
Jawaban:
Sudahkah Anda mempertimbangkan Sneakernet ? Dengan set data besar pengiriman dalam semalam sering kali akan menjadi lebih cepat dan lebih murah daripada mentransfer melalui Internet.
sumber
Bagaimana? Atau TL; DR
Metode tercepat yang saya temukan adalah kombinasi dari
tar
,mbuffer
danssh
.Misalnya:
Dengan ini saya telah mencapai transfer jaringan lokal yang berkelanjutan lebih dari 950 Mb / s pada tautan 1Gb. Ganti jalur di setiap perintah tar agar sesuai untuk apa yang Anda transfer.
Mengapa? mbuffer!
Hambatan terbesar dalam mentransfer file besar melalui jaringan adalah, sejauh ini, disk I / O. Jawabannya adalah
mbuffer
ataubuffer
. Mereka sebagian besar mirip tetapimbuffer
memiliki beberapa keunggulan. Ukuran buffer default adalah 2MB untukmbuffer
dan 1MB untukbuffer
. Buffer yang lebih besar cenderung tidak pernah kosong. Memilih ukuran blok yang merupakan kelipatan umum terendah dari ukuran blok asli pada sistem file target dan tujuan akan memberikan kinerja terbaik.Buffering adalah hal yang membuat semua perbedaan! Gunakan jika Anda memilikinya! Jika Anda tidak memilikinya, dapatkan! Menggunakan
(m}?buffer
plus apa pun lebih baik daripada apa pun dengan sendirinya. hampir secara harfiah merupakan obat mujarab untuk transfer file jaringan yang lambat.Jika Anda mentransfer banyak file, gunakan
tar
untuk "menyatukan" keduanya menjadi satu aliran data. Jika itu adalah file tunggal yang dapat Anda gunakancat
atau I / O redirection. Overheadtar
vscat
secara statistik tidak signifikan jadi saya selalu menggunakantar
(atau dizfs -send
mana saya bisa) kecuali itu sudah tarball . Tidak satu pun dari ini dijamin memberi Anda metadata (dan khususnyacat
tidak akan). Jika Anda ingin metadata, saya akan meninggalkan itu sebagai latihan untuk Anda.Akhirnya, menggunakan
ssh
untuk mekanisme transportasi aman dan membawa sedikit overhead. Sekali lagi, overheadssh
vsnc
secara statistik tidak signifikan.sumber
tar -cf - .|mbuffer -m128k -s 256M -I 9090 & mbuffer -m128k -s 256M -O host:9090 | tar -xf -
ssh
membuat hal itu sederhana. Menggunakanstunnel
,socat
atauopenssl
bekerja juga, tetapi lebih rumit untuk diatur untuk transfer sederhana.Anda menyebutkan "rsync," jadi saya berasumsi Anda menggunakan Linux:
Mengapa Anda tidak membuat file tar atau tar.gz? Waktu transfer jaringan dari satu file besar lebih cepat daripada banyak file kecil. Anda bahkan dapat mengompresnya jika Anda mau ...
Tar tanpa kompresi:
Di server sumber:
Kemudian di ujung penerima:
Tar dengan kompresi:
Di server sumber:
Kemudian di ujung penerima:
Anda cukup menggunakan rsync untuk melakukan transfer file (tar | tar.gz) yang sebenarnya.
sumber
Anda dapat mencoba
tar
danssh
trik yang dijelaskan di sini :ini harus ditulis ulang sebagai berikut :
Anda akan kehilangan
--partial
fiturrsync
dalam prosesnya. Jika file tidak terlalu sering berubah, hidup dengan inisial yang lambatrsync
bisa sangat bernilai - karena akan jauh lebih cepat di masa depan.sumber
Anda dapat menggunakan berbagai opsi kompresi rsync.
rasio kompresi untuk file biner sangat rendah, sehingga Anda dapat melewati file-file tersebut menggunakan --skip-kompres misalnya iso, sudah terarsip dan tarbal terkompresi dll.
sumber
Saya penggemar berat SFTP. Saya menggunakan SFTP untuk mentransfer media dari komputer utama saya ke server saya. Saya mendapatkan kecepatan yang baik, melalui LAN.
SFTP dapat diandalkan, saya akan mencobanya, karena mudah diatur, dan bisa lebih cepat dalam beberapa kasus.
sumber