Bunun olmasının nedeni programın "bu verileri yaz" demesi ve linux çekirdeği onu diske gitmek için sıraya alınmış bir bellek arabelleğine kopyalayıp "tamam, tamam" yazmasıdır. Böylece program her şeyi kopyaladığını düşünüyor. Ardından program dosyayı kapatır, ancak aniden çekirdek, bu arabellek diske itilirken bekletir.
Bu nedenle, ne yazık ki program tamponu temizlemenin ne kadar zaman alacağını söyleyemez çünkü bilmez.
Bazı güçlü kullanıcı püf noktalarını denemek istiyorsanız, çekirdek parametresini (15 MB) vm.dirty_bytesgibi bir değere ayarlayarak Linux'un kullandığı arabellek boyutunu düşürebilirsiniz 15000000. Bu, uygulamanın fiili ilerlemesinden 15 MB'den daha fazla alamayacağı anlamına gelir. (Hareket halindeyken çekirdek parametrelerini değiştirebilirsiniz, sudo sysctl vm.dirty_bytes=15000000ancak yeniden başlatma boyunca kalmasını /etc/sysctl.confsağlamak için dağıtımınıza özel olabilecek bir yapılandırma dosyasını değiştirmek gerekir .)
Bunun bir yan etkisi, bilgisayarınızın bu ayarla daha düşük veri yazma verimine sahip olmasıdır, ancak genel olarak, bir programın uzun süre çalıştığını görmek için yararlı olurken, çok fazla veri yazar. programın işi ile yapıldığı görülüyor ancak çekirdek asıl işi yaptığı gibi sistem kötü bir şekilde kalıyor. dirty_bytesMakul bir küçük değere ayarlamak , sisteminizin boş belleği düşük olduğunda yanıt vermemesini ve aniden çok fazla veri yazan bir programı çalıştırmasını önleyebilir.
Ancak, çok küçük ayarlamayın! Çekirdeğin arabelleği normal bir sabit sürücüye saniyenin 1 / 4'ünde temizleyebileceğini tahmin edebileceğim kaba bir tahmin olarak 15 MB kullanıyorum. Sistemimin "çılgınca" hissetmesini engelliyor.