Harici bir sürücüye kopyalarken neden ilerleme penceresi doğru değil


11

Buraya ne yazacağımı daha iyi açıklamak için başlığı düzenlemekten çekinmeyin.

Örneğin büyük dosyaları bir kalem sürücüsüne kopyaladığımda, ilerleme penceresi çoğu zaman gerçek zamanı ve bitme yüzdesini gösteremediğini, ancak her şeyin bittiğini ve ilerleme penceresinin söylendiği durumlar olduğunu tahmin ediyor kapanır. Kalem sürücüsünü çıkarmaya gidiyorum ve hala kullanımda olduğunu söylüyor. Kalem sürücüsünü kontrol ettikten sonra hala dosyaları kopyaladığını görüyorum, ancak bunu gösteren bir ilerleme penceresi yok.

Sadece büyük dosyalarla değil, birçok küçük dosyayla da gerçekleşir. Onları kopyalarsam, ilerleme çubuğu örneğin 15 saniye diyebilir ve o zaman bitebilir, ancak gerçek süre 1 dakika olabilir ve sonraki 45 saniye için kalem sürücüsünde ışığa bakmam gerekir. gerçek bir faaliyettir.

Bunu nasıl düzeltebileceğimi okuduğum için nasıl düzeltileceğini bilmek istemiyorum. Ne bilmek istiyorum neden o zaman ilerleme penceresi kopyalama işlemi ile uyuşmayan bir tahmin gösterir.

Dış ünitedeki Önbellek'e bağlı mı?

Dosya boyutu ve dosya miktarı doğru tahmin üzerinde etkili midir? Örneğin 4 GB'lık 1 dosya veya 4 MB'lık 1000 dosya.

Davranışı değiştirebilecek yapılandırma seçenekleri var mı?

Buna benzer başka sorular var, dosyaları usb çubuğuna kopyalamak hiç bitmedi, ancak mekaniğe neden bu şekilde davranacağına daha fazla odaklanıyorum.

Yanıtlar:


6

Dosya yöneticiniz olarak Nautilus'u kullandığınızı varsayalım ve eğer öyleyse bu konuda uzun süredir devam eden hatalar var. Nane, Fedora, Kırmızı Şapka ve benzerlerini etkilemek için çok fazla. Ubuntu da aynı sorunu yaşamıyor.

Bazıları küçük resim görünümünün kapatılmasına yardımcı olur. Diğerleri umutlarını "en yeni çekirdeğe" koyarlar, fakat bu hala mevcuttur.

Sorun = Hızlı başlar, sonra yavaşlar Bunun nedeni, zaman uyumsuzluğa bağlandığında önbelleğe yazmasıdır, önbellek dolduğunda "Gerçek" yazma hızını görürsünüz.

Etraftaki iş sudo cp /filetobecopied /dev/nameofdevice

burada yayınlanan bir başka "parça kopyalama" işe yaradığını söylüyor. Benim tarafımdan doğrulanmadı.


3
Netleştirmek için, çekirdek verileri doğrudan yazmak yerine RAM'de önbelleğe alır (performans nedenleriyle). Çıkar'ı tıklattığınızda sync, arka planda önbelleği temizleyen bir komut gerçekleştirilir. Büyük miktarda veri için bu biraz zaman alabilir.
otuzüçlük

1
İPUCU: sudo cp / filetobecopied / dev / nameofdevice, dosya sisteminin tamamını genellikle istediğiniz gibi değil, dosyanızla değiştirir ....
Lennart Rolland

1

Bu aynı zamanda bir çözümle güzel bir cevaptır: https://unix.stackexchange.com/a/181236 diyor ki:

Bu şekilde olmasının nedeni, programın "bu verileri yaz" ve linux çekirdeği bunu diske gitmek için sıraya alınmış bir bellek arabelleğine kopyalaması ve "tamam, tamam" diyor olmasıdır. Böylece program her şeyi kopyaladığını düşünüyor. Daha sonra program dosyayı kapatır, ancak aniden bu disk diske itilirken çekirdek onu bekletir.

Bu nedenle, maalesef program, arabelleği yıkamanın ne kadar süreceğini size söyleyemez çünkü bilmiyor.

Bazı güçlü kullanıcı numaralarını denemek istiyorsanız, Linux'un kullandığı arabellek boyutunu / proc / sys / vm / dirty_bytes öğesini 15728640 (15 MB) olarak ayarlayarak azaltabilirsiniz. Bu, uygulamanın gerçek ilerlemesinden 15 MB'den fazla ilerleme sağlayamayacağı anlamına gelir.

Bir yan etkisi, bilgisayarınızın bu ayarla daha düşük veri yazma işlemine sahip olabileceğidir, ancak genel olarak, bir programın çok fazla veri yazarken uzun süre çalıştığını görmenin, program işi ile yapılmış gibi görünüyor ama çekirdek gerçek işi yapar gibi sistem kötü bir şekilde gecikiyor. Dirty_bytes değerini oldukça küçük bir değere ayarlamak, boş hafıza alanınız azaldığında ve birden çok veri yazan bir program çalıştırdığınızda sisteminizin yanıt vermemesini önlemeye yardımcı olabilir.

Ama çok küçük yapmayın! Çekirdeğin tamponu saniyenin 1 / 4'ünde normal bir sabit sürücüye aktarabildiğine dair kaba bir tahmin olarak 15MB kullanıyorum. Sistemimi "tembel" hissetmekten alıkoyuyor.

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.