(Ubuntu) Linux dosya kopyalama algoritması Windows 7'den daha mı iyi?


13

Windows Kopyalama, Windows Vista'dan beri gerçek bir karmaşa. Microsoft, performansı kullanıcı açısından geliştirdiğini iddia etse bile, bu pek görünmüyor. Tek bir dosyada bile, kopyalama penceresi 'Hesaplama' ve daha sonra kopyayı bitirme için çok fazla zaman görünür (% 100 tamamlandıktan sonra bile, iletişim kutusu aktif kalır).

Aynı zamanda Ubuntu Linux'ta bazı dosyaları yedekliyordum. Gerçekten hızlı olduğunu hissettim. Daha hızlı kullanıcı arayüzü güncellemelerinin neden olduğu bir his olabilir.

Birkaç yıl önce Windows Dosya Kopyalama hakkında Jeff Atwood'dan bilgilendirici bir yazı okudum . ama benim özel sorularım

  • (Ubuntu) Linux dosya performansı Windows-7'den daha iyi mi?
  • Hem algoritmalar hem de Windows ve Linux, hızı artırmak için birden fazla iş parçacığı ve boru hattı mekanizması kullanıyor mu? Evet ise, hangisi daha iyi?

3
Windows'da xcopy, hatta kullanın robocopy. Çok daha iyi. Örneğin, ikincisiyle iki geçiş yapabilirsiniz, önce tüm dizinleri oluşturmak, ancak herhangi bir dosyayı kopyalamak değil, ikincisi de gerçek dosyaları kopyalamak, böylece hedefte herhangi bir parçalamaya neden olmaz.
Kerrek SB

1
Veya RichCopy ( blogs.technet.com/b/ken ve indirme )
sehe

Dosya sistemine de bağlıdır - sisteminiz muhtemelen ext3/4NTFS ile rekabet eden gibi bir şey kullanıyor . Ayrıca deneyebilir reiserfsve xfs- her ikisi de küçük dosyalarla hızlı işlemler için optimize edilmiştir.
yeni123456

@KerrekSB, lütfen yorumunuzu yanıtlayın, böylece oyunuzu yükseltebilirim. (Sadece yorumu + 1'ledim, ama ne demek istediğimi biliyorsun.) Cevap bu.
CarlF

Robocopy / CREATE'in, eksiksiz bir dizin yapısını boş dosyalarla çoğaltmak için çok yararlı olmasına rağmen, hedef dosyalarının tek başına bölünmesini engellemediğine dikkat edilmelidir (8 yıl sonra!). Yapı MFT'de oluşturulur, ancak daha sonra dosyaların içeriği herhangi bir yere kaydedilebilir. Normalde, Robocopy tek iş parçacıklı çalışıyorsa ve bir seferde bir dosya kopyalıyorsa, tek geçişte bile, yine de parçalanma olmamalıdır (ve çok iş parçacıklı bir sürücüyü çalıştırmak, bir HDD'den HDD'ye kopyalamayı performansını ciddi şekilde azalttığı için kötü bir fikirdir, çünkü mekanik tahrik çok daha fazla “öğütmelidir”.
GabrielB

Yanıtlar:


6

copyWindows'daki standart yerleşik çok iyi değil, ancak Windows çok daha verimli iki gelişmiş komutla birlikte geliyor: xcopyve robocopy. Özellikle ACL'ler veya alternatif veri akışları gibi gelişmiş dosya sistemi özellikleri üzerinde tam kontrole ihtiyaç duyduğunuzda robocopy, tercih edilen araçtır.

Örnek olarak, büyük bir dizin yapısını kopyalıyorsanız, hedefin parçalarının ayrılmasını isteyebilirsiniz . Standart çağırma robocopyzaten bu konuda oldukça iyi, ancak alt dizinler oluşturuldukça dizin girişleri güncellendiğinden, yine de parçalanmış dizinler alabilirsiniz. Bunu önlemek için, robocopybirincisi yalnızca herhangi bir dosya içeriğini kopyalamadan hedef dizin yapısını yaratan ve ikincisi dosya gövdelerini gerçekten kopyalamak için iki geçişte çalışabilirsiniz .

Tamamen robocopyçok verimli ve NTFS özelliklerinin tamamen farkında.


NTFS ext3 / 4'ten daha mı verimli?
sarat

İki geçişli bir robokopi, gerçek içerik daha sonra kopyalanacağı için parçalanmayı azaltmamıza nasıl yardımcı olur. Disk tahsisi tamamen dosya yöneticisi tarafından kontrol edilir hayır?
sarat

Dosyaları kopyalamak için Beyond Compare'i kullanmak gibi bazı hileler yapıyorum. Bant genişliği kullanımını en üst düzeye çıkarmak için birden çok kopyalama işlemi çalıştırabilirim. Ama nasıl parçalanacağından emin değilim
sarat

2
@Karath: Parçalanma ile ilgili olarak: Dizine yeni dosyalar ve alt dizinler eklendikçe dizin girdileri büyür. Sadece dizini saf bir şekilde oluşturup dosyaları koymaya başlarsanız, sonuçta orijinal dizin kaydı çok küçük olur ve genişletilmesi gerekir, ancak artık boşluk vermez, çünkü onu izleyen dosya verilerine zaten sahipsiniz. İle /CREATEseçeneği, boş dosya ve altklasörlere işgal eden oluşturulur hiçbir boşluk ve böylece dizin girişleri bitişik tam olarak yazılmak için izin verir.
Kerrek SB

1
@Sarath: NTFS'yi Ext ile karşılaştırmaya gelince, söyleyemem, çünkü NTFS açık değil ve verimlilik sorunu oldukça belirsiz. NTFS kesinlikle çok sayıda özelliğe sahip iyi bir teknoloji parçasıdır. Yine de gerçekten bir seçenek yok, çünkü Windows'ta NTFS ve Linux'ta Ext (veya BTRFS) kullanacaksınız ve hepsi bu.
Kerrek SB

4

Ubuntu Linux'ta gördüğünüz hızın bir kısmı muhtemelen dosya önbelleğe almadır. Bildiğim kadarıyla Linux'ta dosya kopyalama, dosya önbelleğinin kullanımını en aza indirmek için hiçbir çaba sarf etmiyor.

Linux'ta RAM'inizin yaklaşık% 50'sinden daha küçük bir dosyayı kopyaladığınızda, tüm dosya dosya önbelleğine kopyalanır ve daha sonra zamanın izin verdiği şekilde diske yazılır. Bu çok hızlı görünüyor, ancak diğer daha kullanışlı dosyaları önbellekten dışarı zorlar. Bunlar web önbellek dosyaları, e-postalar, yapılandırma dosyaları, yazı tipi dosyaları vb. Olabilir.

Windows XP, dosya önbelleğine de bakmadan kopyalardı. Ancak Windows Vista'da Microsoft , Explorer'ı kopyaladığında sınırlı miktarda dosya önbelleği kullanması için değiştirdi . Bu, büyük dosya kopyalarının sistemin geri kalanına etkisini azaltır. Ancak, nispeten küçük dosya kopyalarının bile sabit diskin hızını azaltır.


Dosya önbellekleme mekanizmasını kullanarak Yea Ubuntu. Kopyalama işlemi devam ederken göz atmanın biraz yavaş olduğunu da fark ettim. Ayrıca, özellikle çok sayıda dosyayı kopyalarken hızın sürekli olarak arttığını fark ettim
sarat

Soruyu neredeyse tamamen ele alan cevap bu.
Nandakumar Edamana

2

Windows'da Teracopy kullanın - Explorer'ın sahip olduğu genel aptallık sorununu çözecektir.

Ubuntu'da dosya kopyalamanın çok hızlı olduğunu gördüm.

Çıkarılabilir sürücüler kullandığınızda yine de "Dosya Çalıştırma" iletişim kutusu kaybolmaz. İletişim kutusu kaybolduktan hemen sonra sürücüyü güvenle çıkarmaya çalışırsanız, bazı hata mesajları alırsınız. Veriler olsa geçiyor.

Güncelleme: Windows dosya işlemleri muhtemelen hizmetler ve kayıt defteri ile tüm entegrasyon yavaş. Nautilus (Gnome'da) sadece sanırım basit bir süreçtir veya en azından Explorer'ın sahip olduğu yük / kesintilere sahip değildir.


Aptallığı, açık kalması gereken başka bir GUI ekleyerek çözün :) Ubuntu'da, deneyimim kopyala / taşı iletişim kutusunu kapatabileceğiniz ve bittiğinde bir bildirim göstererek sistem tepsisine gidecek olmasıdır. Emin değilim yaklaşık Natty Birlik masaüstü ile bunu yapmaz nasıl
sehe

Terakopi Explorer ile yüklenir. Açık tutmak zorunda değilsiniz. Böylece, Teracopy herhangi bir kullanıcı çabası olmadan belleğe yüklenir ve göze çarpmadan çalışır. Ubuntu'nun böyle bir şeye ihtiyacı yoktur, çünkü Nautilus'ta yerleşik olan tüm bu zekaya sahiptir, yani "birleştir" ve "tümünü atla" seçenekleri.
BZ1

+1: TeraCopy'yi dikkatime sunduğunuz için teşekkürler!
sehe

Fastcopy adlı ücretsiz ve açık kaynaklı bir araç kullanıyordum. [ ipmsg.org/tools/fastcopy.html.en]
sarat

-1

Linux'ta dosyaları taşımak ve kopyalamak doğal olarak hızlı bir işlemdir. Dosyaları çok hızlı bir şekilde taşıyabilmeniz ve kopyalayabilmenizin nedeni hem kaynak hem de hedefin aynı bölümde olmasıdır. İşlemin yalnızca düğümleri değiştirmesi gerekir. Dosyaları farklı bölümler arasında taşımak hala çok hızlıdır (1-gig dosyası için sadece bir dakika kadar). Windows'da, dosya yönetiminin dağınık olması nedeniyle, dosyaları aynı bölümdeki hedeflere taşımak biraz zaman alır. (Dosya parçalanmasını ve Windows'un sabit diskleri nasıl biçimlendirdiğini düşünün.)


Bölmelerde taşınmanın oldukça hızlı olduğuna katılıyorum. Ancak kopyalama işlemi her zaman diskte yinelenen bir tarih olmasını ve yeni düğümler oluşturmak istemiştir. Ayrıca, bölümler arasında dosyaları taşımaktan şüpheliyim çünkü fiziksel dosya hareketi oluyor. Eğer Yanlışsam beni düzelt.
sarat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.