Saat ini saya sedang menjalankan tar czf
untuk menggabungkan file cadangan. File-file berada di direktori tertentu.
Namun jumlah file terus bertambah. Menggunakan tzr czf
terlalu banyak waktu (lebih dari 20 menit dan terus bertambah).
Saya perlu menggabungkan file lebih cepat dan dengan cara yang dapat diukur.
Saya telah menemukan genisoimage
, readom
dan mkisofs
. Tapi saya tidak tahu mana yang tercepat dan apa batasannya untuk masing-masing.
tar
memperkenalkan overhead yang signifikan, membaca file adalah operasi yang mahal di sini. Anda harus memodifikasi cara file Anda disimpan, atau menggunakan pendekatan yang sangat berbeda (salin sistem file secara keseluruhan). Kami tidak dapat banyak membantu Anda tanpa mengetahui bagaimana file Anda disusun.Jawaban:
Anda harus memeriksa apakah sebagian besar waktu Anda dihabiskan untuk CPU atau I / O. Either way, ada cara untuk memperbaikinya:
A: jangan kompres
Anda tidak menyebutkan "kompresi" dalam daftar persyaratan sehingga mencoba menjatuhkan "z" dari daftar argumen Anda:
tar cf
. Ini mungkin mempercepat hal-hal sedikit.Ada teknik lain untuk mempercepat proses, seperti menggunakan "-N" untuk melewatkan file yang sudah Anda buat cadangan sebelumnya.
B: backup seluruh partisi dengan dd
Atau, jika Anda mencadangkan seluruh partisi, gunakan salinan seluruh gambar disk. Ini akan menghemat pemrosesan dan banyak kepala disk mencari waktu.
tar
dan setiap program lain yang bekerja pada level yang lebih tinggi memiliki overhead karena harus membaca dan memproses entri direktori dan inode untuk menemukan di mana konten file berada dan untuk melakukan lebih banyak mencari head disk , membaca setiap file dari tempat yang berbeda dari disk.Untuk membuat cadangan data yang mendasarinya jauh lebih cepat, gunakan:
dd bs=16M if=/dev/sda1 of=/another/filesystem
(Ini mengasumsikan Anda tidak menggunakan RAID, yang dapat mengubah sedikit hal)
sumber
pigz
jika ada dalam sistem lebih dari satu prosesor.Untuk mengulangi apa yang dikatakan orang lain: kita perlu tahu lebih banyak tentang file yang sedang dicadangkan. Saya akan pergi dengan beberapa asumsi di sini.
Tambahkan ke file tar
Jika file hanya ditambahkan ke direktori (yaitu, tidak ada file yang dihapus), pastikan Anda menambahkan ke file tar yang ada daripada menciptakannya kembali setiap waktu. Anda bisa melakukan ini dengan menentukan nama file arsip yang ada di
tar
perintah Anda alih-alih yang baru (atau menghapus yang lama).Tulis ke disk yang berbeda
Membaca dari disk yang sama dengan yang Anda tulis mungkin akan mematikan kinerja. Cobalah menulis ke disk lain untuk menyebarkan muatan I / O. Jika file arsip harus di disk yang sama dengan file asli, pindahkan setelah itu.
Jangan kompres
Mengulangi apa yang dikatakan @Yves. Jika file cadangan Anda sudah dikompresi, tidak perlu banyak kompres lagi. Anda hanya akan membuang-buang siklus CPU.
sumber
Menggunakan tar dengan lz4 crompression seperti di
memberi Anda yang terbaik dari kedua dunia (kompresi DAN kecepatan agak baik). Harapkan rasio kompresi sekitar 3 bahkan jika data Anda berisi file biner.
Bacaan lebih lanjut: perbandingan algoritma kompresi Cara tar dengan lz4
sumber
Saya terkejut bahwa tidak ada yang menyebutkan dump dan restore. Ini akan jauh lebih cepat daripada dd jika Anda memiliki ruang kosong di sistem file.
Perhatikan bahwa tergantung pada sistem file yang dimaksud, Anda mungkin memerlukan alat yang berbeda:
Perhatikan bahwa beberapa program tidak memiliki kompresi bawaan (semua kecuali dump) - pipa untuk stdout dan menggunakan pigz sesuai kebutuhan. ;-)
sumber