Wydaje się, że wzrost procesora przez pewien czas przewyższał prędkość dysku. Zakładając komputer stacjonarny lub laptop z nowoczesnym dwurdzeniowym procesorem Intel / AMD i pojedynczym przeciętnym dyskiem SATA, czy kompresja na większości dysków zapewni lepszą ogólną wydajność? Zasadniczo czy zmniejszona przepustowość dysku więcej niż rekompensuje zwiększone obciążenie procesora? Jestem pewien, że prawdziwą odpowiedzią jest „to zależy od tego, co robisz”. Zadając to pytanie, mam nadzieję, że ktoś, kto zrobił tę fajkę, poda kilka przykładów lub pułapek.
10
Odpowiedzi:
Tak, kompresja dysku może zapewnić lepszą wydajność w określonych okolicznościach:
Istnieje powód, dla którego zarówno ZFS, jak i Btrfs, oba najnowsze projekty typu green-field, zawierają przepisy dotyczące kompresji.
W przestrzeni HPC, gdy aplikacja kontroluje z pamięci na dysk, procesory często nie robią nic pożytecznego. Ten czas jest zasadniczo czystym kosztem. Każde użycie procesorów w celu skrócenia tego czasu przynosi korzyści.
źródło
Kompresja dysku nigdy nie zapewni lepszej wydajności.
To może nie dać ci prawie żadnej kary z powodu szybkich nowoczesnych procesorów, ale to zupełnie inna sprawa.
Zakładasz, że konieczność przesłania mniejszej ilości danych z / na dysk może poprawić wydajność; ale transfery dużych zbiorów danych prawie nigdy nie są wąskim gardłem we / wy: prawdziwymi wąskimi gardłami są czas i opóźnienie wyszukiwania. Nowoczesne dyski twarde są bardzo szybkie w ciągłym transferze danych z dużymi plikami, co spowalnia ich niewielki transfer z całego dysku.
Niektóre scenariusze:
źródło
Istnieją specyficzne sytuacje, które robią to już na poziomie aplikacji, takie jak kompresja wideo - system, który nie potrafił wystarczająco szybko odczytać surowego wideo w jakości HD z dsk, może zamiast tego odczytać skompresowane informacje i rozszerzyć je za pomocą pamięci i mocy procesora . Nie ma powodu, dla którego nie mogłoby tak być również w innych, specyficznych sytuacjach, ale można to najlepiej rozwiązać na poziomie aplikacji, aby zastosowane metody kompresji były zoptymalizowane do ich celu.
Należy pamiętać, że narzut związany z wydajnością dekompresji jest opłacalny, jeśli cała przepustowość wzrośnie, więc pomysł nie powinien zostać odrzucony z ręki - nie sądzę, że jesteśmy gotowi na kompresję zwiększającą wydajność ogólnego przeznaczenia, ale jest to teoretycznie możliwe w celu wymiany zasobu, którego masz nadmiar (procesor i pamięć) w celu zwiększenia w innym miejscu (łączna ilość danych odczytanych z dysku twardego)
źródło
Odpowiedziałeś na swoje pytanie! to zależy jest rzeczywiście odpowiedzią.
Najlepsze uogólnienie, jakie mogę zrobić, to:
Jeśli masz aplikację bazy danych ograniczoną do odczytu dysku , to tak! wydajność jest lepsza.
Nie sądzę, że tak jest w przypadku większości działań wykonywanych na komputerze stacjonarnym / laptopie.
W mojej domenie (SQL Server) wiem, że bazy danych raportujące przy dużym obciążeniu odczytu mogą uzyskać lepszą wydajność, jeśli zastosowana zostanie kompresja. Wiem, że to samo dotyczy mysql.
Microsoft ma białą księgę na temat swoich funkcji kompresji w SQL Server 2008. Nie do końca lekka lektura, chyba że masz DBA, ale oto jeden wykres, który obsługuje moje uogólnienie:
źródło
Prędkości procesorów były zawsze wyższe niż prędkości dysków. IMHO, kompresja zwiększy narzut, a tym samym obniży wydajność.
źródło
Czytałem wczoraj coś podobnego do tego dotyczącego OSX i jego kompresji systemu plików - w zasadzie odpowiedź obraca się wokół tego, co chcesz skompresować - w tym przykładzie mówi o danych „FAT”; struktury plików, właściwości, metadane itp., które razem przechowywane mogą być skompresowane w celu zaoszczędzenia miejsca i odczytane do procesora szybciej niż szukanie w całym miejscu, aby znaleźć dane dla każdego pliku ...
W każdym razie, warto przeczytać, jeśli myślisz o takich rzeczach :-p
Od: http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/3
źródło
Kompresja Microsoft Disk jest brzydka STARY. Nie jest prawie porównywalny w stosunkach z metodą ARJ z lat 80-tych. Ale nawet kompresja Microsoft CAN zapewnia lepszą wydajność na bardzo wolnych dyskach twardych (laptopach). Zwłaszcza jeśli jest wystarczająca ilość pamięci RAM do buforowania zapisu i zapobiegania nadmiernemu zapisowi.
Proces zapisu jest słabym punktem każdej metody kompresji z dostępem swobodnym.
Tak więc, jeśli chcesz dysk skompresowany, lepiej przejdź do jakiegoś systemu Linux.
Kompresja dysku jest również bardzo odpowiednia dla napędów RAM, nie trzeba wyjaśniać dlaczego.
źródło
Niepewnie. Kompresja i dekompresja wymaga czegoś więcej niż tylko dysku i procesora; w szczególności będzie dużo transferu danych do iz pamięci (oprócz standardowego narzutu transferu bez kompresji), co naprawdę zaszkodzi pod względem błędów stron.
źródło
Krótko mówiąc, nie, prawdopodobnie nie zyskasz na wydajności.
Kompresja poprawi wydajność pamięci, ale znacznie obniży szybkość procesora. Prawdopodobnie sprowadza się to do tego, jaki typ plików będzie dekompresowany. Jeśli masz do czynienia tylko ze słowami, programami Excel i innymi podstawowymi typami plików, śmiało je skompresuj. Jeśli poszczególne pliki są nieporęczne, poświęcisz więcej czasu.
źródło