Dosyaları kopyalarken Linux 30x neden Windows 10'dan daha hızlı?


20

Toplam 100 bin + öğeden oluşan 20.3 Gig dosya ve klasör aldım. Tüm bu dosyaları Windows 10'dan tek bir dizinde çoğalttım ve çok zorlu bir 3 saatlik kopyalama sürdü. Bitti.

Geçen gün, Linux Fedora 24'te önyükleme yaptım, aynı klasörü ve bam'yı kopyaladım! Aynı yerde ama farklı bir dizinde çoğaltmak sadece 5 dakika sürdü.

Linux neden bu kadar hızlı? Ve Windows titizlikle yavaş mı?

Burada benzer bir soru var

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

Ancak kabul edilen cevap oldukça eksik.


Dosyaları kopyalamak için "Windows" veya "Linux" kullanmıyorsunuz, bu işletim sistemlerinin her birinde çalışan belirli bir program kullanıyorsunuz. Programlar kullandıkları yöntemlere ve yaptıkları değişimlere göre büyük farklılıklar gösterir. Hangisini kullanıyordunuz? Ve nasıl?
kreemoweet

5
@kreemoweet: İşletim sistemleri de öyle - Windows NTFS'nin diğer dosya sistemlerine kıyasla çok sayıda küçük dosyayla çok zayıf başa çıktığı biliniyor.
user1686 15:16

2
Ve bir Windows fan ha güzel vekil. Gördüğünüz gibi, dosyaları kopyalamak, basit olsa da iş veri yedeklemesinden bilimsel çalışmalara kadar birçok uygulamaya sahiptir. Örneğin, CERN'de ele alınacak Petabyte veri vardır, yavaş kopyalama kabul edilemez.
Jones G

Aynı bağlantıdan - alttan 2. cevabı kontrol edin. Linux tüm dosyaları kullanılabilir RAM'de önbelleğe alır ve mümkün olduğunda diske yazar - bu yüzden neden daha hızlı görünüyor (sadece şimdilik okuması ve mümkün olduğunda yazması gerektiği için).
Darius

@DominicGuana Dosya sistemleri üzerlerine düşeni yapar (ext3 / ext4 bir kerede 100Mb boyutlarını ayırabilir). Windows altındaki antivirüsün de (yavaşlayan) bir rol oynayabileceğini mi düşündünüz? BTAC, SLAC veri toplama akışındaki benzer problemler için (1. seviye tetikleyiciden sonra çok fazla veri vardı) paralel olarak HDD'ye yazmayı öğrendik ...
Hastur

Yanıtlar:


25

Temelleri toplam sistemin birkaç temel bileşenine ayrılır: UI öğesi (grafik kısım), çekirdeğin kendisi (donanıma ne konuşur) ve verinin saklandığı format (yani dosya sistemi) ).

Geriye gitmek NTFS, bir süredir Windows için fiili iken, büyük Linux varyantları için fiili extdosya sistemidir. Windows XP'den (2001) beri NTFS dosya sisteminin kendisi değişmedi, varolan birçok özellik (bölüm küçülmesi / iyileşmesi, işlem NTFS, vb.) İşletim sisteminin özellikleridir (Windows Vista / 7/8/10) ve değil kendisini NTFS. extDosya sistemi 's son büyük istikrarlı salınımını (vardı ext4kendisi yönetir nasıl ve nerede dosyaları kullanıyorsanız, erişilen budur dosya sisteminde yana 2008 yılında) ext4NTFS üzerinde hıza değişikliği fark edeceksiniz bir olasılıkla şans var; ancak kullandıysanız ext2, hız açısından karşılaştırılabilir olduğunu fark edebilirsiniz.

Bir bölümün diğerinden daha küçük parçalar halinde biçimlendirilmesi de olabilir. Çoğu sistem için varsayılan değer 4096 byte 1 , 2 küme boyutudur, ancak ext4bölümünüzü 16k 3 gibi bir şeyle biçimlendirdiyseniz , ext4sistemdeki her okuma NTFS sistemine karşı 4x veri alır (bu , depolanana bağlı olarak dosyaların 4x anlamına gelebilir) nerede / nasıl ve ne kadar büyük, vs.). Dosyaların parçalanması da hızlarda rol oynayabilir. NTFS, dosya parçalanmasını extdosya sisteminden çok farklı bir şekilde işler ve 100k + dosyalarda, parçalanma olasılığı yüksektir.

Bir sonraki bileşen çekirdeğin kendisidir (UI değil, aslında donanımla, gerçek işletim sistemiyle konuşan kod). Burada dürüst olmak gerekirse pek bir fark yok. Her iki çekirdek de, okuma ve algılanan yazma işlemlerini hızlandırmak için disk önbelleğe alma / arabelleğe alma gibi belirli şeyleri yapacak şekilde yapılandırılabilir, ancak bu yapılandırmalar işletim sisteminden bağımsız olarak genellikle aynı değiş tokuşlara sahiptir; önbellekleme, kopyalama / kaydetme hızını büyük ölçüde artırıyor gibi görünebilir, ancak önbellek yazma sırasında güç kaybederseniz (veya USB sürücüsünü dışarı çekerseniz), gerçekte diske yazılmamış tüm verileri kaybedersiniz ve hatta zaten yazılmış veriler bozulur diske.

Örnek olarak, birçok dosyayı Windows ve Linux'ta FAT biçimli bir USB sürücüsüne kopyalayın. Windows'da Linux'ta 10 dakika, Linux'ta 10 saniye; dosyaları kopyaladıktan hemen sonra, sürücüyü çıkararak güvenle çıkarın. Windows'da hemen sistemden çıkarılır ve böylece sürücüyü USB bağlantı noktasından çıkarabilirsiniz, Linux'ta sürücüyü gerçekten çıkarmanız 10 dakika sürebilir; önbelleğe alma nedeniyle (yani Linux dosyaları RAM'e yazdı, sonra arka planda diske yazdı, önbelleksiz Windows dosyaları hemen diske yazdı).

Son olarak kullanıcı arayüzü (kullanıcının etkileşimde bulunduğu grafik kısım). Kullanıcı arayüzü, kaç tane dosyanın kopyalandığına ve hepsinin ne kadar büyük olduğuna ve ne kadar süre alacağına dair genel bir fikir veren bazı harika grafiklere ve hoş çubuklara sahip hoş bir pencere olabilir; kullanıcı arayüzü, ne zaman yapıldığı dışında herhangi bir bilgi yazdırmayan bir konsol da olabilir . Kullanıcı arabiriminin, kaç dosya olduğunu ve bunların ne kadar büyük olduklarını belirlemek için önce her bir klasör ve dosyadan geçmesi gerekiyorsa ve gerçekten kopyalamaya başlamadan önce kabaca bir tahmin verdiyseniz, kullanıcı arabirimi, Bunu yap. Yine, bu işletim sisteminden bağımsız olarak doğrudur.

Bazı şeyleri eşit olacak şekilde yapılandırabilirsiniz (disk önbellekleme veya küme boyutu gibi), ancak gerçekçi bir şekilde konuşursak, sistemin çalışmasını sağlamak için tüm parçaların nasıl bağlandığına ve daha spesifik olarak bu kod parçalarının gerçekten ne sıklıkla güncellendiğine gelir. Windows işletim sistemi, Windows XP'den bu yana çok yol kat etti, ancak disk alt sistemi, yıllardır tüm sürümlerde işletim sisteminde çok fazla TLC görmeyen bir alandır ( bazı yeni FS'yi gören Linux ekosistemine kıyasla) veya oldukça sık iyileşme).

Umarım bu biraz netlik katar.


Bence korkunç cevap ve aşağı oy verdi. Hiçbir şeyin olmadığı yerlerde farklılıklar ortaya koyuyorsunuz. Kimse farklı bölümlenmiş disklerin nasıl performans gösterdiğini sormadı. Tabii ki soru "diğer her şey eşit" önermesi üzerine kuruludur. Saniyede 16 gigabaytın üzerinde yerel okuma hızlarıyla istediğim şekilde 8 nvme raid0 için bir fs seçebilirim, ancak her zaman, her zaman 1.4-1.5 gigabaytlık bir Windows dosya kopyası maksimuma çıkar. Önbellekleme, fs, bölümler ile ilgisi yoktur, ancak Windows işletim sistemi sınırlamaları ile daha fazlası.
Matthias Wolf

@Matt adı geçen RAID dizisini hangi dosya sisteminde biçimlendiriyorsunuz? NTFS ise, yavaşlamayı açıklayabilir .. ancak daha fazla bilgi vermeniz gerekiyorsa, özellikle çekirdek Windows işletim sistemine herhangi bir kaynak kodunuz (ve bir montaj dökümü değil) varsa ilgili bir cevap ekleyebilirsiniz. neden yavaşlamanın gerçekleştiğini doğrudan açıklamak için (bir tanesi ben özellikle bununla ilgilenir!).
txtechhelp

NTFS kullanıyorum, Windows Server'da FS olarak daha iyi bir seçenek var mı?
Matthias Wolf

MSFT ile iletişime geçtim ve birçok tartışma yaptım ve yıllar boyunca pek çok şey denedim ve her makinede 100Gb nics olmasına ve Mellanox profilleme araçları başına diğer tüm trafiğin bağlantıların mükemmel bir şekilde çalıştığını göstermesine rağmen asla 1,5GB / saniyeyi aşmamasını sağladım 94-95Gb / sn işlem hacmi. Linux makineleri arasında yavaşlama yok, ancak bir Windows işletim sistemi makinesi
Matthias Wolf

Tek bir dosya aktarımından bahsediyorum, hepsi tek iş parçacıklı. Tamamen işletim sistemi tabanlı hiçbir donanım darboğazı yoktur.
Matthias Wolf
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.