Saat ini saya sedang menjalankan rsync untuk 2,2 juta file total 250GB dan itu hanya membutuhkan waktu 700 ribu file dalam 6 jam.
Apakah ada yang tahu alat seperti rsync yang dapat melakukan ini dengan beberapa utas sehingga berjalan lebih cepat?
Saat ini saya sedang menjalankan rsync untuk 2,2 juta file total 250GB dan itu hanya membutuhkan waktu 700 ribu file dalam 6 jam.
Apakah ada yang tahu alat seperti rsync yang dapat melakukan ini dengan beberapa utas sehingga berjalan lebih cepat?
Jawaban:
Saya ragu cpu adalah faktor pembatas di sini. Kemungkinan besar Anda dibatasi oleh bandwidth jaringan untuk transfer, dan IO disk; terutama latensi untuk semua panggilan stat tersebut.
Bisakah Anda memecah hierarki sistem file menjadi potongan-potongan kecil untuk diproses secara paralel?
Apa file sumbernya, dan apa yang menulis atau memodifikasinya? Apakah mungkin untuk mengirim perubahan saat terjadi di tingkat aplikasi?
Jika subsistem disk dari server penerima adalah array dengan banyak disk, menjalankan beberapa proses rsync dapat meningkatkan kinerja. Saya menjalankan 3 proses rsync untuk menyalin file ke server NFS (RAID6 dengan 6 disk per grup serangan) untuk memenuhi Gigabit Ethernet.
Orang ini melaporkan harness python dasar yang memunculkan beberapa proses rsync http://www.reliam.com/company/featured_geek
Saya sudah membaca banyak pertanyaan yang mirip dengan ini. Saya pikir satu-satunya jawaban nyata adalah memecah salinan / pindah secara manual. IOps akan menjadi masalah di sini. Jika itu membuat Anda merasa lebih baik, saya sedang dalam proses memindahkan ~ 200 million file yang menghabiskan lebih dari 100TB ruang disk.
Anda dapat mempertimbangkan untuk memeriksa klon cp multithreaded untuk linux (open source): http://static.usenix.org/event/lisa10/tech/slides/kolano.pdf