Nikt nie mówi o problemie burmistrza na dysku innym niż SSD, jest to fragmentacja.
Każdy blok 64KiB jest zapisywany w miejscu, w którym byłby bez kompresji, ale można go skompresować, więc co najmniej wynosi <= 60KiB, a następnie zapisuje mniej niż 64KiB, blok zagnieżdżenia bitów pójdzie tam, jakby to był poprzedni kompresować, więc wiele luk apèars.
Przetestuj to za pomocą pliku wielobajtowego maszyny virtusl dowolnego systemu Windows (zwykle zmniejsza się o 50%, ale z ogromną> 10000 fragmentów).
A jeśli chodzi o dyski SSD, nie ma o czym mówić, jak do diabła to pisze? Mam na myśli to, że jeśli zapisuje to nieskompresowane, a następnie zastępuje skompresowaną wersją (dla każdego mega bloku 64 KB), żywotność dysku SSD jest znacznie skrócona; ale jeśli zapisuje go bezpośrednio w postaci skompresowanej, wtedy SSD live może być krótszy lub krótszy ... dłużej, jeśli napiszesz tylko 64 KB na raz, krótszy, oh krótszy, jeśli napiszesz 64 KB w 4KiB, ponieważ napisze takie 64KiB (w formie skompresowanej) tyle razy, ile 64/4 = 16 razy.
Utrata wydajności wynika z tego, że czas procesora potrzebny na kompresję / dekompresję jest większy niż czas uzyskany na niepotrzebne zapisywanie bloków 4KiB ... więc bardzo szybki procesor i bardzo wolna kompresja dysku skracają czas na zapis i odczyt, ale jeśli SSD jest bardzo szybki, a procesor dość wolny, będzie pisać znacznie wolniej.
Kiedy mówię o szybkim lub wolnym procesorze, mam na myśli, że procesor może być używany przez „matematykę” lub inny proces, więc zawsze myśl o wolnym procesorze, a nie specyfikacji procesora na papierze, to samo dotyczy dysku / dysku SSD, może być w użyciu przez wiele procesów.
Załóżmy, że 7Zip zapisuje ogromny plik z innego dysku za pomocą LZMA2, będzie zużywał dużo procesora, więc jeśli jednocześnie kopiujesz plik skompresowany NTFS, nie ma on wolnego procesora, więc pójdzie wolniej niż bez NTFS kompresji, ale jak tylko 7Zip zakończy procesor, taki procesor będzie mógł kompresować NTFS szybciej, a kompresja NTFS może działać szybciej.
Osobiście nigdy nie używam kompresji NTFS, wolę kontenery PFO do montażu plików PISMO (z kompresją, a także umożliwia zapisywanie, zarówno w locie, jak i przezroczyste dla aplikacji), daje znacznie lepszy współczynnik kompresji i mniejszy wpływ procesora, podczas gdy jest to odczyt i pisz w locie, nie trzeba dekompresować przed użyciem, wystarczy zamontować i używać go w trybie odczytu i zapisu.
Ponieważ PISMO wykonuje kompresję w pamięci RAM przed zapisaniem na dysku, może wydłużyć czas działania dysku SSD, moje testy kompresji NTFS każą mi myśleć, że wysyła dane na dysk dwa razy, najpierw nieskompresowane, a następnie, jeśli można je skompresować, jest zastępowane w postaci skompresowanej .
Dlaczego prędkość zapisu skompresowanego NTFS na moim dysku SSD jest bliska 1/2 nieskompresowanego pliku z plikami niż kompresja przy prawie 1/2 jego rozmiaru lub mniejszych skompresowanych rozmiarach? W moim AMD Threadripper 2950 (32 rdzenie i 64 wątki) z 128GiB pamięci RAM (szybki procesor, bardzo szybki procesor) przy zużyciu mniejszym niż 1%, więc jest dużo procesora do wykonania kompresji szybciej niż maksymalna prędkość sekwencyjna SSD, może dlatego, że Kompresja NTFS rozpoczyna się po tym, jak bloki 64KiB są wysyłane na dysk nieskompresowane, a następnie nadpisywane skompresowaną wersją ... och, jeśli zrobię to na maszynie wirtualnej z systemem Linux na hoście i Windows na gościu, to pamięć podręczna Linux poinformuje mnie, że takie klastry są zapisywane dwa razy , a prędkość jest znacznie, dużo większa (Linux buforuje nieskompresowane zapisy NTFS wysyłane przez gościa systemu Windows, a ponieważ są one zastępowane skompresowanymi danymi, Linux nie wysyła nieskompresowanych danych na dysk,
Moja rekomendacja, nie używaj kompresji NTFS, z wyjątkiem gości maszyn wirtualnych, którzy uruchamiają system Windows, jeśli hostem jest Linux, i nigdy, jeśli używasz procesora zbyt często, jeśli procesor nie jest wystarczająco szybki.
Współczesny dysk SSD ma ogromną pamięć podręczną pamięci RAM, dzięki czemu zapis i nadpisywanie spowodowane kompresją NTFS mogą zostać złagodzone przez wewnętrzny system pamięci podręcznej SSD.
Moje testy były wykonywane na „ładnych” dyskach SSD bez wewnętrznej pamięci RAM na pamięć podręczną wewnątrz dysku SSD, gdy powtarzam je na dyskach z pamięcią podręczną pamięci RAM, szybkość zapisu jest szybka, ale nie tak, jak mogłoby się wydawać.
Wykonuj własne testy i używaj ogromnych rozmiarów plików (większych niż całkowita liczba zainstalowanych tam, aby uniknąć ukrytych wyników w pamięci podręcznej).
Nawiasem mówiąc, coś, czego niektórzy nie wiedzą o kompresji NTFS ... jakikolwiek plik 4KiB lub niższy nigdy nie uzyska kompresji NTFS, ponieważ nie ma sposobu, aby zmniejszyć jego rozmiar co najmniej 4KiB.
Kompresja NTFS wymaga bloack 64KiB, kompresuje je, a jeśli może zmniejszyć jeden klaster (4KiB), to jest zapisywany jako skompresowany, 64KiB to 16 bloków 4KiB (kolejne).
Jeśli plik 8KiB po zakończeniu kompresji końcowy wynik jest większy niż 4KiB, nie zapisuje żadnego klastra, więc jest zapisywany bez kompresji, ... i tak dalej ... naciśnięcie musi uzyskać co najmniej 4KiB.
Ach, a do kompresji NTFS, NTFS musi mieć rozmiar klastra 4KiB.
Spróbuj i wykonaj test: Użyj klastra 128 KB na NTFS na SSD. Zauważysz ogromną poprawę wydajności przy zapisywaniu prędkości odczytu.
Systemy plików na dyskach SSD z klastrem 4KiB tracą dużo prędkości, w większości przypadków tracą ponad 50% ... zobacz każdy test porównawczy, który testuje z różnymi rozmiarami bloków, od 512 bajtów do 2 MB, większość SSD pisze podwójnie prędkość w przypadku klastra o wielkości 64 kB (lub 128 kiB) niż w 4KiB.
Chcesz prawdziwej impresji na swoim dysku SSD? Nie używaj klastra 4KiB w systemie plików, użyj 128 kB.
Używaj klastra 4KiB tylko wtedy, gdy więcej niż 99% twoich plików ma mniej niż 128 KB.
Itd, etc, etc ... testuj, testuj i testuj własne przypadki.
Uwaga: Utwórz systemową partycję NTFS z diskpart w trybie konsoli podczas instalowania systemu Windows z klastrem 128 kB lub z innego systemu Windows, ale nie pozwól, aby system Windows sformatował się w części graficznej instalatora (zawsze sformatuje go jako klaster NTFS 4KiB).
Wszystkie moje systemy Windows są teraz zainstalowane na partycji NTFS klastra 128 KB na> SSD 400GiB (SLC).
Mam nadzieję, że wszystko się wyjaśni, M $ nie mówi, jak iy zapisuje skompresowany NTFS, moje testy mówią, że pisze dwa razy (64KiB nieskompresowany, a następnie <= 60KiB skompresowany), a nie tylko jeden raz (uważaj na to, jeśli na SSD).
Uwaga: Windows próbuje skompresować NTFS niektóre katalogi wewnętrzne, bez względu na to, czy powiesz, że nie ma kompresji NTFS, jedynym sposobem, aby naprawdę tego uniknąć, jeśli rozmiar klastra NFTS jest inny niż 4KiB, ponieważ kompresja NTFS działa tylko na partycjach NTFS o rozmiarze klastra 4KiB