Aynı anda iki dosyayı kopyalamak birbiri ardına kopyalamaktan daha mı yavaş? [çiftleme]


15

Patronum, iki dosyayı aynı anda diğerinden kopyalamaktan daha uzun sürdüğünü söyledi çünkü sabit sürücünün kafayı diskteki iki konum arasında değiştirmeye devam etmesi gerekiyor. Bu doğru mu? Bana öyle geliyor ki, işletim sistemi bunu düzeltecek kadar akıllı olmalı (yani, bunları sırayla kopyalamayı bilmelidir). USB bağlantı noktasına bağlı bir sürücüye kopyalarken bu doğru mu?

EDIT: dosya sistemi ile ilgili faktörler başka faktörler var mı? Örneğin, 10 dosya içeren 1 dizinin kopyalanması ile diskin her tarafından 10 dosya kopyalanması arasında fark var mıdır? Sadece bir kaynak ortam ve bir hedef ortam (birden fazla sürücüden okuma yok) merak ediyorum.


Bazen, bazen değil.
Daniel R Hicks

Bu sorunun, buradaki cevapların çoğunun eğitimli tahminlerinden ziyade gerçek bir ölçütten faydalanabileceğini düşünüyorum. Dönen bir disk ve boş zamanı olan var mı? Ben inanıyorum farklılıklar önemsiz olması muhtemeldir, SSD için; sabit disk için ise , yanıtın büyük performans cezasından dosya sayısı ve boyutlarına ve kaynak ve hedef disklerin göreceli performansına (farklıysa) bağlı olarak hafif bir faydaya kadar değişebileceğine inanıyorum .
Lie Ryan

1
Ayrıca, USB2 üzerinden aktarıyorsanız, muhtemelen herhangi bir fark olmayacaktır; USB2'nin maksimum hızı 32MB / s iken tipik sabit disk okuma hızı yaklaşık 50-100MB / s'dir, bu nedenle darboğaz, tamponlama nedeniyle sabit disk karakteristiği yerine USB bağlantı noktası olacaktır. Başka bir deyişle, şu ya da bu şekilde söylemek zor.
Lie Ryan

@LieRyan Yorumunuzu bir cevap olarak yayınlamadığınız için çok kötü çünkü en iyi, hangi sabit diskten 1 harici sabit diske USB 2 ile kopyalama ile ilgili olduğunu sormak istediğim soruya uyuyor.
Celeritas

Yanıtlar:


12

Seni bu soruya erteleyeceğim . Aynı disk üzerinde iki kopya işleminin aynı anda (ayrı kopyalama işlemleriyle başlatılmasına rağmen) çalıştırılmasının, rakip işlemler arasında ileri geri arama yapan kafa tarafından üretilen gecikme sonucunda gerçekten daha uzun süreceği görülmektedir.

Bununla birlikte, kopyalama işlemleri aynı anda başlatılırsa , modern işletim sistemlerinin büyük çoğunluğu, aktarımları birbiri ardına sıralayacak kadar akıllıdır ve biraz daha hızlı bir kopyalama süresi sağlamalıdır.

Görünüşe göre Teracopy ve FastCopy gibi dosya kopyalama işlemlerini sıraya sokmaya ve yürütmeye zorlamak için bir dizi uygulama var

Bununla birlikte, birden fazla fiziksel cilt üzerinde eşzamanlı kopyalama işlemleri gerçekleştirmek başka bir konudur. Tıpkı alternatif protokollerle dosya aktarımı gibi.

Bir USB bağlantı noktasına bağlı bir sürücüye kopyalama hakkında sorunuzla ilgili olarak, büyük ölçüde sürücünün kullandığı bellek türüne ve kullanılan USB özelliğine (USB 1.0 ve 2.0 için kesinlikle dikkate değer bir darboğaz) bağlıdır. kopya kaynak hacmi ile ilgili olarak belirtilen faktörler.


1
bu aynı zamanda sistemin işlemci kapasitesine de bağlı değil mi?
Raghunandan

@Raghunandan Adil bir nokta - tamamen duruma bağlı olduğuna inanıyorum. Birden fazla fiziksel birimden veya SSD / RAMDisk'ten veri okumak birden fazla çekirdek / hiper iş parçacığı kesinlikle kopyalama hızlarını artıracaktır, ancak tek bir HDD senaryosunda, kopya hızının sınırlayıcı faktörleri diskin G / Ç hızlarında ve kafanın varlığında muhtemelen bulunacaktır -movement gecikmesi (eminim bunun için daha uygun bir terim olmalı ...).
bosco

3
@Raghunandan - Dosya sistemi (NTFS vs EXT4) kadar işletim sistemi olmayabilir.
Enigma

2
@Raghunandan PC-24000 DDR3, 24 GB / s'lik bir bant genişliğine sahiptir ve hala modern CPU'lar için bir sınır değildir, bu yüzden bunun gerçekten bir CPU meselesi olduğunu düşünmüyorum - HDD işlemleri RAM işlemlerinden 100 kat daha az etkili olsa bile CPU hala en az 245 MB / sn işleyebilir ve bu hala en hızlı SSD'nin bant genişliğinden daha fazladır.
gronostaj

1
@Raghunandan linux bölümünüz diskin Windows bölümünden daha hızlı bir parçası da olabilir (örneğin, v. İçeriden dışarıda)
ernie

16

Burada bunu etkileyebilecek birçok faktör var.

  • Kaynak sürücü - bu dönen disk veya SSD mi? Disk dönüyorsa, dosyaların düzeni performansı etkileyebilir. İki dosya muhtemelen diskin farklı bölümlerinde olduğundan, bu durum baş arama cezalarına neden olacaktır. Söylediğiniz gibi, aynı anda iki dosya seçer ve kopyayı bu şekilde başlatırsanız, işletim sistemi kopyaları sırayla işler.
  • Dosya düzeni - dosyaların (hem kaynakta hem de hedefte) parçalanması SSD olmayan sürücülerin performansını etkileyebilir
  • Hedef - tek bir hedefe iki yazma akışınız varsa, o zaman kafa arama sorununa geri dönersiniz (yine bir SSD olmadığı varsayılarak) ve dosyaları yoğun bir şekilde serpiştirebilirsiniz. Eskiden yüksek performanslı depolama yapan bir şirkette çalışıyordum ve onlar için en büyük sorunlardan biri kaç tane gerçek zamanlı video akışı okuyabileceği veya yazabileceğiydi (2k video saniyede ~ 300 megabayt gerektirir). Yazmaların değiştirilmesi, kopyalama işlemini yavaşlatır ve dosyanın okunmasını yavaşlatır. Tabii ki, diskiniz başlamak için parçalanmışsa, dosya yine de araya eklenmiş olarak yazılır.
  • tek / çoklu kaynak / hedef - dosyalarınızın hepsi bir sürücüden geliyorsa veya hepsi tek bir sürücüye yazılıyorsa, baş arama sorunu az çok olabilir
  • dosya boyutu - gerçekten küçük dosyalar için, baş arama sorunu önemli değildir, çünkü baş yine de bir sonraki dosyayı bulmaya ihtiyaç duyacaktır (yani dosyalar arasında ileri geri gitmek yerine, başlığın dosyaları sırayla okuyacağı anlamına gelir)

İşletim sistemi bunu düzeltecek kadar akıllıysa, genel olarak öyledir. Yani, aynı anda birden fazla dosya kopyalarsanız (örneğin, aynı anda birden fazla dosya seçip sürükleyip bırakmayı düşünün).

Tabii ki, iki cpkomutu başlatırsanız, iki komutu çalıştırır veya ayrı dosyaları kopyalayıp yapıştırır ve ekranda iki "kopya" ilerleme penceresi alırsanız, optimizasyon gerçekleşmez. Bu durumda, işletim sistemine açıkça iki kopyayı aynı anda çalıştırmak istediğinizi söylediniz, bu nedenle bir kopyanın diğerinden daha önemli olduğuna karar vermeye ve sıraya almaya başlamayacaktır.


+1 Yalnızca eksik olan şey "tek / çoklu kaynak / hedef" ile gösterilen RAID yapılandırmasıdır.
David Harkness

1
-1 söylenenlerin çoğu soru ile ilgisiz
Celeritas

1

Bir GUI'den veya "kopya C: \ klasör * D: \ klasör \" gibi bir komut kullanarak birden çok seçim ve kopyalama yaparsanız, dosyalar yine de sırayla kopyalanır ve soru tartışması yapılır.

Bazı dosyaları kopyalar ve kopyalarken daha fazla dosya kopyalamaya başlayın - GUI'den iki ayrı işlemle veya "cp -r / usr / bin / / opt / bin / & cp -r / usr / local / bin / / opt / local / bin / "- performansınız neredeyse kesinlikle düşecektir - belki biraz (üst düzey katı hal sürücüsü, her iki kopyalama işleminde büyük dosyalar) veya belki bir TON (dönen disk, bir veya her iki işlemde nispeten küçük dosyalar). Daha iyi işletim sistemleri performans cezasını bir dereceye kadar azaltabilir - örneğin, modern Linux çekirdekleri CFQ (Tamamen Fair Queuing) I / O zamanlayıcısını kullanır, bu da verimliliği artırmak için bir dereceye kadar "toplu" blok işlemlerini gerçekleştirir - ancak yine de bir performans isabeti. Bazı durumlarda isabet BÜYÜK olabilir,

TL; DR - performans konusunda endişe duyuyorsanız, bu işleme kaç ayrı dosyanın dahil edildiğine bakılmaksızın, aynı anda yalnızca bir kopyalama işlemi gerçekleştirin .

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.