Co jest lepsze dla wydajności? Partycja bliższa wewnętrznej części dysku będzie miała wolniejszy czas dostępu i musimy poczekać, aż dysk przełączy się między systemem operacyjnym a partycjami wymiany.
Z drugiej strony partycja wymiany omija cały system plików, umożliwiając bezpośrednie zapisywanie na dysku, co może być szybsze niż plik.
Jaka jest kompromis między wynikami?
Ile ma zmiana pliku wymiany o stałym rozmiarze?
Czy to możliwe, że zmiana na partycję wymiany będzie dłuższa, ale wydajność będzie lepsza, gdy będzie na partycji wymiany, niż gdyby był to plik wymiany?
Odpowiedzi:
Na dyskach twardych przepustowość i wyszukiwanie jest często szybsze w kierunku początku dysku, ponieważ dane są przechowywane bliżej zewnętrznego obszaru dysku, który ma więcej sektorów na cylinder. Dlatego utworzenie wymiany na początku dysku może poprawić wydajność.
W przypadku jądra Linux 2.6 nie ma różnicy w wydajności między partycją wymiany a niefragmentowanym plikiem wymiany. Kiedy swapon włącza partycję / plik wymiany, jądro 2.6 znajduje, na którym dysku blokuje plik wymiany, w którym jest przechowywany , więc kiedy przychodzi czas zamiany, nie musi on wcale zajmować się systemem plików.
Zatem jeśli plik wymiany nie jest pofragmentowany, to dokładnie tak, jakby w tej samej lokalizacji istniała partycja wymiany. Innymi słowy, uzyskasz identyczną wydajność, jeśli użyjesz partycji wymiany raw lub sformatujesz ją za pomocą systemu plików, a następnie utworzysz plik wymiany, który wypełniłby całą przestrzeń, ponieważ na obu dyskach znajduje się ciągły region używany do wymiany, których jądro używa bezpośrednio.
Jeśli więc utworzysz plik wymiany, gdy system plików jest świeży (zapewniając w ten sposób, że nie jest pofragmentowany i na początku woluminu), wydajność powinna być identyczna z posiadaniem partycji wymiany tuż przed woluminem. Ponadto, jeśli utworzysz plik wymiany powiedzmy na środku woluminu, z plikami po obu stronach, możesz uzyskać lepszą wydajność, ponieważ mniej jest zamiany zamiany.
W systemie Linux, jeśli plik wymiany jest tworzony niefragmentowany i nigdy nie jest rozszerzany, nie może zostać pofragmentowany, przynajmniej w przypadku normalnych systemów plików, takich jak ext3 / 4. Zawsze będzie używać tych samych bloków dysku, które są ciągłe.
Wnioskuję, że jedyną korzyścią z dedykowanej partycji wymiany jest gwarancja niefragmentacji, gdy trzeba ją rozszerzyć; jeśli twoja zamiana nigdy nie zostanie rozwinięta, plik utworzony w świeżym systemie plików nie wymaga dodatkowej partycji.
źródło
W rzeczywistości nie robi to dużej różnicy, dopóki nie używasz rzadkich plików .
Utworzenie „normalnego” pliku za pomocą dd przydzieli ten plik (jeśli w ogóle jest to możliwe) w jednym uruchomieniu, podczas gdy utworzenie pliku rzadkiego powie ci, że masz plik 10 GB, ale nie zajmuje on tyle miejsca. Nie jestem do końca pewien, czy mkswap i tak nie przydzieli miejsca, ale zazwyczaj plik wymiany rośnie z czasem, a zatem nie przydziela ciągłego sektora (jak część dysku), ale raczej przydziela bloki w razie potrzeby, co prowadzi do fragmentacja w czasie (oczywiście w zależności od użycia dysku)
Wewnętrznie jądro Linuksa uzyska dostęp do bazowych bloków pliku wymiany mniej więcej bezpośrednio - nie mogę teraz znaleźć linku, co dzieje się pod maską, musisz mi zaufać, chyba że ktoś znajdzie coś bardziej oficjalnego. Wszystko, co mogę teraz wymyślić, to:
wszystko to dotyczy tylko linii jądra Linux 2.6.
Jeśli chcesz uzyskać optymalną wydajność (a co to jest naprawdę? ... zamiana jest powolna, kropka. Zwiększ pamięć RAM, aby nie zamieniać się w celu uzyskania najlepszej wydajności), powinieneś użyć partycji.
źródło
To interesujące pytanie i dużo o tym czytałem. Ogólnie partycja wymiany jest lepsza niż plik ze względu na podstawowy system plików. Ale jeśli zawsze potrzebujesz zwiększyć rozmiar wymiany, plik jest lepszą opcją. Do czasu jądra 2.4 uważano, że partycja wymiany jest szybsza niż plik, ale teraz dzięki ulepszeniom jądra 2.6 wydajność jest prawie taka sama.
Coś znalazłem również w Internecie.
http://www.go2linux.org/swap-file-vs-swap-partition
i
http://www.sunmanagers.org/pipermail/summaries/2005-November/006913.html
źródło
Myślę, że na obecnym etapie, chyba że używasz laptopa z konfiguracją, która zapisuje dane do wymiany, gdy zawiesza się / śpi, zamiana powinna naprawdę być uważana za „ostateczność”. Najlepszym rozwiązaniem jest umieszczenie wystarczającej ilości pamięci RAM w pudełku, aby nigdy nie przechodziła na dysk.
Biorąc to pod uwagę, partycja jest prawdopodobnie lepszym sposobem pod względem wydajności, chociaż plik jest bardziej elastyczny. Tylko upewnij się, że jest na wrzecionie 7200+ RPM.
źródło
W naszej pracy myślimy, że ponieważ plik wymiany może zostać podzielony na fragmenty, a fragmentacja spowalnia dostęp do wymiany, partycja jest lepszym rozwiązaniem. Oczywiście zdefiniowanie pliku wymiany o statycznym rozmiarze robi to samo, ale wydaje się to subiektywniejsze.
Czy to podejście jest jedyną prawdziwą drogą? Prawdopodobnie nie, ponieważ praktyka została ustanowiona blisko 10 lat temu. Jedyną poważną zmianą w technologii napędów w kolejnych latach jest złożoność kontrolerów RAID, których używamy (nie jesteśmy jeszcze wystarczająco bogaci dla dysków SSD). Zwiększenie rozmiarów dysków oznacza, że tworzona przez nas partycja wymiany jest bliżej początku napędu niż w czasach, gdy dyski 18 GB były w sprzedaży w standardzie, więc prędkości wymiany są nawet szybsze niż w dawnych czasach.
Oczywiście w naszych systemach Windows opartych na ESX pozycja pliku wymiany jest całkowicie, całkowicie dyskusyjna. Jest tak wiele warstw wirtualizacji między plikiem wymiany a talerzami dysków fizycznych, że to po prostu nie ma znaczenia. Ale trzymamy go na osobnej partycji, ponieważ to tylko standard.
źródło
Użycie pliku wymiany może wymagać nieco dodatkowej pamięci do tłumaczenia pliku na pamięć. Mówimy o mniej niż 1 MB pamięci na 1GB zamiany. Pamięć podręczna systemu plików NIE buforuje zamienionych danych, tylko dane organizacyjne, które powinny być większością dodatkowych wymagań pamięci.
Poza tym wątpię, abyś stracił jakąkolwiek rozsądną wydajność, z wyjątkiem może raz na 1000 razy jednego dodatkowego poszukiwania głowy.
Zabawny fakt, że użycie zswap w połączeniu z dynamicznie rozwijającym się plikiem wymiany powoduje imponujące przyspieszenie operacji wymiany przy bardzo niewielkich kosztach, gdy nie jest używane.
źródło