Büyük bir dosyayı silmek neden daha uzun sürüyor?


30

Anladığım kadarıyla, rmbir dosya üzerinde çalışan dosya boşluğunu işaretler ve bu alanı dosya sisteminde boş olarak işaretler. Daha sonra bir dosyayı silmek her zaman aynı miktarda zaman alır (yani silme hızı, dosya boyutuyla değil, dosya sayısıyla orantılıdır).

Peki neden 15 GB'lık bir dosyayı silmek bir dakikadan daha uzun sürüyor rm file.tar.gz?


5
Hangi dosya sistemi?
Shane Madden

8
Birçok dosya sisteminde, boş alanların her "bloğu", "boş" olarak işaretlenmelidir. Büyük dosyaların daha fazla bloğu var. Bu olsa da, tüm dosya sistemleri için doğru değil!
Chris S

@ShaneMadden iyi bir soru; ext4 şu anda, ancak diğer ext # 'lerde de farkettim.
Tom Marthenal

Bu nedenle, her dosyanın kendi sanallaştırılmış dosya sistemine sahip olması gerekir, böylece inode'lar kör bir şekilde süper hızlı bir şekilde silinebilir! <JEST>
incelik

1
Bu durumda hangi dosya sistemi daha iyi sonuç verir? Şu anda büyük VM disklerini bir makineden diğerine taşımak için portatif bir sürücü kullanıyorum ve sonsuza dek rm beni çıldırtıyor.
motobói

Yanıtlar:


39

Tek bir bloğun bağlantısını kaldırmak zaman alır , ancak tek bir bloğun boyutunun ötesindeki dosyalar birbirine bağlı birden fazla bloktan oluşur ve dosya ne kadar büyük olursa, bağlı olan blokların sayısı o kadar büyük olur.


14
<BSD Zealot> Mumble Mumble UFS Mumble Mumble Yumuşak Güncellemeler Mumble Mumble Hızlı Silme Mumble Mumble Krepleri! </ BSD Zealot>
voretaq7

XFS büyük dosyaları çok hızlı bir şekilde siler, ancak çok sayıda küçük dosyaları çok yavaş bir şekilde siler.
Andrew,

4
Bir dosya her zaman sadece bir inode kullanır . Birden fazla veri bloğu kullanıyor.
Simon Richter

2
Hepsine hükmedecek bir blok, onları bulmak için bir blok, hepsini getirmek için bir blok ve karanlıkta onları bağlar.
Rqomey
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.