Saya seorang mahasiswa pascasarjana, dan kelompok tempat saya bekerja mengelola sebuah cluster Linux. Setiap node cluster memiliki disk lokal sendiri, tetapi disk lokal ini relatif kecil dan tidak dilengkapi dengan cadangan otomatis. Jadi grup memiliki server file dengan banyak TB ruang penyimpanan. Saya seorang pemula Linux yang relatif, jadi saya tidak yakin apa spesifikasi dari server file dalam hal kecepatan, kemampuan jaringan, dll. Saya tahu dari pengalaman bahwa disk lokal secara signifikan lebih cepat daripada server file dalam hal I / O . Sekitar selusin orang menggunakan server file.
Menggunakan cp
untuk menyalin file ~ 20 GB dari server file ke salah satu disk lokal rata-rata membutuhkan waktu sekitar 11,5 menit (menurut time
). Saya tahu bahwa cp
operasi ini tidak terlalu efisien karena (1) time
memberi tahu saya bahwa waktu sistem untuk salinan seperti itu hanya ~ 45 detik; dan karena (2) ketika saya memeriksa top
selama penyalinan, % CPU cukup rendah (dengan inspeksi, rata-rata 0-10% ).
Menggunakan cp
untuk menyalin file ~ 20 GB yang sama dari satu folder pada disk lokal ke folder lain pada disk lokal yang sama membutuhkan waktu lebih sedikit - sekitar 9 menit dalam waktu nyata (~ 51 detik dalam waktu sistem, menurut time
). Jadi ternyata fileserver lebih lambat dari disk lokal, seperti yang diharapkan, tetapi mungkin tidak lebih lambat secara signifikan. Saya terkejut bahwa penyalinan dari lokal ke lokal yang sama tidak lebih cepat dari 9 menit.
Saya perlu menyalin ~ 200 file besar - masing-masing ~ 20 GB - dari server file ke salah satu disk lokal. Jadi, pertanyaan saya adalah: Apakah ada alternatif yang lebih cepat cp
untuk menyalin file besar di Linux? (Atau apakah ada bendera di dalam cp
yang bisa saya gunakan yang akan mempercepat penyalinan?) Bahkan jika saya entah bagaimana bisa mencukur satu menit dari waktu penyalinan ini, itu akan sangat membantu.
Saya yakin itu membeli disk perangkat keras baru yang lebih cepat, tetapi saya tidak memiliki akses ke sumber daya seperti itu. Saya juga bukan administrator sistem - saya hanya pengguna (pemula) - jadi saya tidak memiliki akses ke informasi lebih rinci tentang beban yang ada di disk. Saya tahu bahwa sementara sekitar selusin orang menggunakan server file setiap hari, saya adalah satu-satunya orang yang menggunakan disk lokal / node ini.
dd
dan rsync
membandingkan mana yang bekerja lebih cepat di lingkungan Anda
dd
, tetapi saya hanya mencoba rsync
. Waktu sebenarnya adalah sekitar 11,5 menit dan waktu sistem sekitar 1,5 menit, menurut time
.
/dev/sda1
ke /dev/sdb1
akan lebih cepat daripada menyalin dari satu lokasi /dev/sda1
ke lokasi lain pada /dev/sda1
atau partisi lain /dev/sda
karena hard drive tidak perlu melakukan pencarian tambahan antara membaca dan menulis (dengan asumsi hard drive tradisional dengan disk berputar dan kepala bergerak; SSD jelas berbeda).