Saya telah mewarisi sekelompok riset dengan ~ 40TB data di tiga sistem file. Data ini terbentang hampir 15 tahun, dan ada kemungkinan besar jumlah duplikat yang baik karena para peneliti menyalin data satu sama lain untuk alasan yang berbeda dan kemudian hanya bertahan pada salinan.
Saya tahu tentang alat de-duping seperti fdupes dan rmlint. Saya mencoba untuk menemukan satu yang akan bekerja pada set data yang besar. Saya tidak peduli apakah perlu berminggu-minggu (atau bahkan mungkin berbulan-bulan) untuk merayapi semua data - saya mungkin akan mempercepatnya untuk mempermudah sistem file. Tapi saya perlu menemukan alat yang entah bagaimana super efisien dengan RAM, atau dapat menyimpan semua data perantara yang dibutuhkan dalam file daripada RAM. Saya berasumsi bahwa RAM saya (64GB) akan habis jika saya merayapi semua data ini sebagai satu set.
Saya sedang bereksperimen dengan fdupes sekarang di pohon 900GB. Ini 25% dari keseluruhan dan penggunaan RAM telah perlahan-lahan merayap sepanjang waktu, sekarang di 700MB.
Atau, apakah ada cara untuk mengarahkan proses menggunakan RAM yang dipetakan disk sehingga ada lebih banyak tersedia dan tidak menggunakan sistem RAM?
Saya menjalankan CentOS 6.
sumber
Jawaban:
Ya, ini disebut drive swap. Anda mungkin sudah memilikinya. Jika Anda khawatir kehabisan RAM maka meningkatkan ini adalah tempat yang baik untuk memulai. Ini bekerja secara otomatis, jadi tidak perlu melakukan sesuatu yang istimewa.
Saya tidak akan khawatir tentang fdupes. Cobalah, itu harus bekerja tanpa masalah.
sumber
menemukan duplikat berdasarkan hashkey bekerja dengan baik dan sangat cepat.
sumber
Tulis aplikasi cepat untuk berjalan di pohon, baik mendorong (hash, mtime) => filepath ke kamus atau menandai file untuk dihapus jika entri sudah ada. Hash hanya akan menjadi MD5 yang dihitung selama byte N pertama. Anda dapat melakukan beberapa lintasan berbeda, dengan hash di atas N kecil dan kemudian yang lain dengan hash di atas N. besar
Anda mungkin bisa melakukan ini dalam kurang dari dua atau tiga puluh baris Python (menggunakan os.walk ()).
sumber