2013-03-07 8 views
8

kullanarak büyük dosyalar için iki büyük boyutlu klasör (~ 7GB) kullanarak bir yama oluşturmaya çalışıyorum. İştebellek tükendi: diff

ben yapıyorum nasıl:

$ # fark -Naurbw. ../other-folder> file.patch

Ama belki nedeniyle dosya boyutları, yama oluşturulan ve bir hata vererek almıyor:

fark: Bellek tükendi

Süreye yapma çalıştı 15 GB'den fazla ama yine de sorun devam ediyor.

Birisi kullanmam gereken bayraklarla bana yardımcı olabilir mi?

+2

"diff large files linux" dosyasına girdim ve diğer bağlantıların arasında [bu] (http://unix.stackexchange.com/questions/2150/diffing-two-big-text-files) buldum. En azından bazı araştırmalar yapmış gibi yapıyorsun ... bu da konu dışı. – Thomas

+1

evet, googling denedim ve bazı parametre değişiklikleri bulundu ve "--speed-büyük dosyaları" bayrağı kullanmasa bile, "bellek tükenmiş" hata hala var. – pritam

+1

Birden çok adımda onları dağıtmaya ne dersin? Örneğin. klasörleri, 1GB blokları, diff, daha sonra yama birleştirmek, ancak bu kadar ayrılabilir (böylece yama uygulamak için bazı ekstra mantık gerekebilir) emin değilim rağmen, bölünmüş. Neden ilk etapta 7GB klasörleri ayırıyorsunuz? Elbette içinde sadece bazı dosya/klasörler değişti? – Thomas

cevap

12

Geçtiğimiz günlerde, iki büyük dosyayı (her biri 5 Gb) ayırt etmek gerektiğinde buna rastladım.

Farklı seçeneklerle 'diff' kullanmayı denedim, ancak --speed-large-files'un bile bir etkisi olmadı. Dosyaları xdelta kullanarak veya this suggestion numaralı dosyalara göre ayırmak gibi diğer yöntemler de yardımcı olmadı. Elimde çok güçlü bir VM (> 72Gb RAM) var, ancak hala bu memory exhausted hata var.

vm.overcommit_memory=1 

parametre gerçekten sen

sudo sysctl -p 

unutma çalıştırabilirsiniz uygulandığı emin olmak için:

Sonunda sysctl.conf aşağıdaki parametreyi (sudo vim /etc/sysctl.conf) ekleyerek çalışmak lazım bitirdiğinizde bu parametreyi değiştirmek için!

+1

Düzenleme için teşekkürler, stackoverflow'ta yeniyim. Ayrıca, bazıları bu parametreyi açıklar: vm.overcommit_memory üç değere (0,1,2) sahiptir ve çekirdek sanal bellek hesap modunu ayarlar. 'erkek 5 proc' 0: sezgisel overcommit (bu varsayılan) 1: her zaman overcommit, asla kontrol et 2: her zaman kontrol edin, hiçbir zaman üstesinden gelme – Igor

+1

Gerçekten bu konuda ilginç ve standart olmayan bir şey hakkında biraz üzgünüm Benim ve paylaşılan tarafından bulunan anwser, benim için sadece +2 temsilcileri yaptı. scho0l hikayesi, python ile nasıl çaldığımı, çok daha fazla sıkıcı, bana daha fazla verdi @pritam – Igor

+1

Katılıyorum, ilginç, standart olmayan ve benim için çalıştı! İki 70GB dosyayı karşılaştırdığımızda, ör.317TB sanal ve 150 TB yerleşik RAM ... 250 GB RAM ile bile daha önce çalışamayan bir karşılaştırma artık tamamlandı. Çok zeki! –