Wyobraź sobie, że mam mnóstwo pamięci RAM. Powiedzmy, że 64 GB. To dużo, nawet w przypadku komputerów do grania. Teraz domyślna lokalizacja pliku stronicowania w systemie Windows znajduje się na głównym dysku systemu operacyjnego, czy to HDD, czy SSD, które są ogólnie szybsze, ale wciąż nie tak szybkie jak pamięć RAM.
Coś mi mówi, że wyłączenie pliku stronicowania na dysku twardym lub utworzenie wirtualnego dysku RAM i pozostawienie pliku stronicowania może sprawić, że Windows przeniesie całą swoją pamięć wirtualną do pamięci RAM, a zatem zwiększy wydajność systemu, ale nie mam wystarczającej wiedzy na ten temat obszar, więc może to wcale nie być prawda.
Próbowałem obu, ale nie mogłem przeanalizować wyników, aby dojść do definitywnego wniosku z moim poziomem wiedzy na temat pamięci.
Czy to zadziała? Jeśli nie to dlaczego?
źródło
Odpowiedzi:
Bez względu na to, ile masz pamięci RAM, chcesz, aby system mógł z niej efektywnie korzystać. Brak pliku stronicowania zmusza system operacyjny do nieefektywnego użycia pamięci RAM z dwóch powodów. Po pierwsze, nie może sprawić, że strony zostaną odrzucone, nawet jeśli nie były one dostępne ani modyfikowane przez bardzo długi czas, co zmusza pamięć podręczną dysku do zmniejszenia. Po drugie, musi zarezerwować fizyczną pamięć RAM, aby cofnąć alokacje, które najprawdopodobniej nigdy jej nie wymagają (na przykład prywatne, modyfikowalne mapowanie plików), co prowadzi do przypadku, w którym można mieć dużo wolnej fizycznej pamięci RAM, a mimo to alokacji odmawia się unikaj nadmiernego zaangażowania.
Rozważmy na przykład, czy program tworzy zapisywalne, prywatne mapowanie pamięci pliku 4 GB. System operacyjny musi zarezerwować 4 GB pamięci RAM na to mapowanie, ponieważ program mógłby prawdopodobnie zmodyfikować każdy bajt i nie ma miejsca, tylko pamięć RAM do przechowywania. Natychmiast więc 4 GB pamięci RAM jest marnowane (można jej użyć do buforowania czystych stron dysku, ale o to chodzi).
Musisz mieć plik stronicowania, jeśli chcesz w pełni wykorzystać swoją pamięć RAM, nawet jeśli nigdy nie jest używana. Działa jak polisa ubezpieczeniowa, która pozwala systemowi na faktyczne wykorzystanie posiadanej pamięci RAM, zamiast konieczności rezerwowania jej na wyjątkowo mało prawdopodobne możliwości.
Ludzie, którzy zaprojektowali zachowanie twojego systemu operacyjnego, nie są głupcami. Posiadanie pliku stronicowania daje systemowi operacyjnemu więcej możliwości i nie czyni złych.
Nie ma sensu umieszczać pliku stronicowania w pamięci RAM. A jeśli masz dużo pamięci RAM, plik stronicowania jest bardzo mało prawdopodobny (po prostu musi tam być), więc nie ma szczególnego znaczenia, jak szybkie jest to urządzenie.
źródło
Masz całkowitą rację w swoich założeniach.
Algorytmy zarządzania pamięcią są bardzo złożone i pod żadnym względem nie doskonałe. Tak więc zamiana występuje nawet wtedy, gdy jest dużo wolnej pamięci RAM. W niektórych systemach, na przykład
Linux
, możesz kontrolować zamianę , w innych nie. Wymieniając dane, gdy jest jeszcze dużo pamięci RAM, system na swój sposób przygotowuje się na sytuację, w której może zabraknąć pamięci RAM.Dlatego wyłączenie funkcji zamiany może poprawić wydajność, ponieważ będziesz używać tylko pamięci RAM, która jest szybsza, jak już powiedziałeś.
Jedną rzecz do rozważenia (o czym już wspomniałeś) - musisz mieć wystarczającą ilość pamięci RAM, aby pomieścić wszystkie uruchamiane programy, w przeciwnym razie ryzykujesz brak pamięci . W takim przypadku wydajność spadnie, niektóre procesy mogą zostać zakończone przez system operacyjny, a system może ulec awarii / zawieszeniu. (czytaj więcej o tym tutaj )
Na niektórych komputerach, zwłaszcza tych, które przechowują plik wymiany na dysku twardym, a nie na dysku SSD, efekt wyłączenia zamiany jest bardzo zauważalny. W innych nie jest to takie oczywiste. Ale nawet jeśli nie uzyskasz oczywistej poprawy, pomyśl o tym w inny sposób, wyłączając zamianę, zaoszczędzisz trochę miejsca na dysku SSD.
Wyłączając zamianę, zapobiegniesz również niepotrzebnemu działaniu algorytmów pamięci - przenoszeniu danych z pamięci RAM do zamiany i odwrotnie - w przypadku dysku SSD zapobiegnie to nadmiernemu zużyciu. W każdym razie poprawi to wydajność poprzez wyeliminowanie niepotrzebnych operacji.
Przeczytaj także:
źródło
Czy możesz bezpiecznie wyłączyć plik strony?
Jeśli zabraknie wolnej pamięci, w tym pamięci wirtualnej, system nie może nadal gwarantować deterministycznego wykonania i sam się kończy. Zanim to nastąpi, system operacyjny wykona różne inne czynności, takie jak zabijanie programów, które zużywają zbyt dużo pamięci. Chcę powiedzieć, że pamięć jest zawsze skończona i każdy system operacyjny może sobie z tym poradzić. Dlatego ograniczenie całkowitej dostępnej pamięci do 64 GB nie zaszkodzi Windowsowi - wiele systemów nie może przekroczyć 8 GB nawet z plikiem stronicowania, ponieważ przy 1 lub 2 GB pamięci RAM plik stronicowania jest zwykle znacznie mniejszy niż 6 lub 7 GB. Należy zauważyć, że dopóki masz nadmierną ilość nieużywanej pamięci RAM, obciążenie systemu operacyjnego utrzymującego plik stronicowania nie będzie możliwe do zmierzenia.
Czy sensowne jest umieszczenie pliku stronicowania na ramdysku?
Aby zwiększyć dostępną pamięć, większość, jeśli nie wszystkie zaawansowane systemy operacyjne użyć jakiegoś pliku wymiany gdzie oni zająć trochę pamięci, która znajduje się w pamięci RAM i nie został dostępnego na chwilę, napisać pamięci na twardym dysku (swapfile aka plik stronicowania ) oraz usuń pamięć z pamięci RAM, aby dostępna była szybsza pamięć. Plik wymiany służy do rozszerzenia maksymalnego rozmiaru pamięci poza rozmiar dostępnej pamięci RAM.
Dlatego użycie ramdysku (który zmniejsza dostępną pamięć o rozmiar ramdysku) do hostowania pliku wymiany (co zwiększa dostępną pamięć o rozmiar pliku wymiany) będzie działać, ale nie będzie to miało większego sensu. Nie będzie oferował więcej pamięci niż wyłączenie pliku stronicowania, ale nadal będzie wymagał od systemu uruchamiania algorytmów stronicowania.
źródło
Aby powtórzyć to, co powiedzieli inni, przeniesienie wymiany na prosty dysk RAM jest raczej bezcelowe (w najczęstszym przypadku patrz poniżej). Osiąga to, że w pewnym momencie, gdy system jest głodny wolnej pamięci, niektóre dane są przenoszone z pamięci RAM do pamięci RAM w dość nieefektywny sposób.
Po zamianie na HDD / SSD system operacyjny może wyczyścić niektóre całkowicie nieużywane strony pamięci RAM i wykorzystać zwolnione miejsce na np. Pamięć podręczną plików lub inne bufory systemowe. Możesz nie zdawać sobie sprawy, że system przydziela mniej buforów RAM, ponieważ nie ma dostępnej pamięci wirtualnej bez pliku strony; więc w efekcie możesz ograniczyć wydajność, wyłączając swap.
Jednak skompresowany dysk RAM jako dysk wymiany, napęd „ZSWAP”, może być korzystny w skrajnych przypadkach (gdzie możesz potrzebować tylko kilku dodatkowych MB pamięci RAM, aby uniknąć zamiany na HDD), zwiększając wydajność miejsca segmentu pamięci RAM na pewnym stopniu.
źródło
Jeśli nie masz pliku strony, w przypadku awarii (awarii) systemu Windows nie będzie w stanie zapisać pliku zrzutu awaryjnego. Oznacza to, że nie będziesz w stanie przeanalizować problemu za pomocą odpowiednich narzędzi.
Posiadanie pliku stronicowania w pamięci RAM jest prawie bezużyteczne, ponieważ może zostać utracone podczas awarii.
Aby uzyskać więcej informacji, zobacz artykuł Microsoft Zrozumienie plików zrzutu awaryjnego .
źródło
W systemie Windows z ust koni:
https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/
źródło
Nie wyłączaj pliku wymiany Nie dotyczy to tylko sytuacji, gdy zabraknie pamięci. Wyłączenie nie powoduje bezpośredniego wzrostu wydajności , Windows odczytuje z niego tylko wtedy, gdy jest to konieczne, zapisuje to cały czas, więc jest gotowy, gdy jest potrzebny.
Możesz zmniejszyć go do około 2/3 rozmiaru pamięci, jeśli masz więcej niż około 4 GB, ponieważ przechowuje on skompresowany obraz pamięci. Możesz umieścić go na wolniejszym dysku twardym, do którego nie ma dostępu inny ciężki dostęp do dysku, jeśli nie masz miejsca na dysku SSD. Ale dobrze jest mieć gdzieś.
Zobacz tę odpowiedź, aby uzyskać więcej informacji na temat przyczyny. https://superuser.com/a/286476/4236
źródło
Teoretycznie umieszczenie pliku strony w pamięci RAM nie powinno mieć żadnego sensu, ponieważ po prostu wyczerpujesz to, co rzekomo zyskujesz, a system Windows opiera się na założeniu, że plik strony nie będzie wykorzystywany do takich celów.
W praktyce jednak wadliwe projektowanie i filozofia mogą sprawić, że znajdzie się nawet w jądrze systemu Windows, a zarządzanie pamięcią przez Microsoft niekoniecznie będzie doskonałe. Wiele osób odkryło, że umieszczenie pliku strony w ramdysku rzeczywiście powoduje wzrost wydajności , o ile masz przyzwoitą ilość pamięci.
Skompilowałem post, który pokazuje kolekcję takich użytkowników z jednego wątku na forum, którzy stwierdzili, że pomimo ogromnej ilości wolnej pamięci RAM, plik strony jest nadal używany:
http://www.overclock.net/t/1193401/why-it-is-bad-to-store-the-page-file-on-a-ram-disk/290#post_23508589
źródło
Virtual memory − A paging file is an area on the hard disk that Windows uses as if it were RAM.
Tak, jakby: pKonwersja systemu operacyjnego, który został zaprojektowany tak, aby nie używać zamiany, jest o wiele trudniejszy niż się wydaje.
Nowoczesne komputery Mac mają partycję odzyskiwania - część dysku głównego ze zmniejszonym systemem operacyjnym, która może naprawić lub przywrócić główny system. W dniach, w których instalator DVD uruchomił proces niestandardowy, system tworzy teraz dysk RAM dla partycji wymiany, ponieważ nie można zagwarantować, że instalator ma dostępną przestrzeń roboczą. System operacyjny zawiera niezbędne ramy do uruchomienia dołączonego oprogramowania konserwacyjnego, które jest identyczne z narzędziami dostępnymi po instalacji. O wiele mniej pracy dla wszystkich.
Ograniczenie systemu do jednej aplikacji na raz oznacza, że zamiana ramdysku w zasadzie nigdy się nie przyzwyczaja, ale system operacyjny oczekuje, że tak będzie.
źródło
Jeśli masz wystarczającą ilość pamięci, odpowiedź brzmi: tak, możesz wyłączyć swap. Swap został stworzony w celu przezwyciężenia ograniczeń pamięci RAM i zwiększenia jej wydajności.
Pytanie brzmi: ile pamięci RAM wystarcza? Nie ma na to uniwersalnej odpowiedzi i z natury systemy są spragnione pamięci. Dlatego, chyba że działasz w bardzo specyficznym i kontrolowanym środowisku, nie wyłączaj swap.
Wszelkie inne sztuczki, takie jak zamiana pamięci RAM, stworzą dodatkową warstwę złożoności i wydadzą pamięć, która w innym przypadku mogłaby zostać użyta bezpośrednio.
źródło
Mój system ma 24 GB pamięci RAM, dlatego wyłączyłem plik stronicowania, aby zapobiec zużyciu dysku SSD bez żadnych problemów. Niedawno utworzyłem Dysk RAM, używając 4 GB pamięci do przechowywania plików pamięci podręcznej Google Chrome, aby sprawdzić, czy zwiększy to wydajność gier Flash Player online i ogólne surfowanie po Internecie. Zauważyłem wyraźny wzrost wydajności w tym eksperymencie. Ponieważ miałem więcej miejsca na dysku RAM, włączyłem plik stronicowania, ustawiłem minimalny i maksymalny rozmiar na 1 GB i przeniosłem go na dysk RAM. Chociaż nie mogę powiedzieć, że nastąpił wzrost wydajności, mój system wydaje się działać bardziej stabilnie.
źródło
Przeniesienie pliku strony do pamięci RAM jest absurdalnym pomysłem. Po prostu wyłącz go i zwiększ ilość pamięci RAM. :)
Zarządzanie pamięcią jest obsługiwane przez procesor i to, czy plik stronicowania jest włączony czy wyłączony, nie stanowi żadnej różnicy w sposobie traktowania stron. Jest przezroczysty dla systemu Windows.
Priorytet strony nie zmienia się, strony zostaną odrzucone tak samo. Pliki stron są wykorzystywane przez procesor jako pamięć pomocniczą, a nie system operacyjny. To nic więcej niż pamięć podręczna drugiego poziomu, gdy skończy się poziom pierwszy (RAM).
Szybki i bardzo brudny przykład :, mój komputer ma 16 GB pamięci RAM i nie ma pliku stronicowania. 5 minut temu z 13 GB w trybie gotowości i tylko 2 GB za darmo, załadowałem Fallout 4. Strony o niskim priorytecie zostały odrzucone podczas ładowania Fallouta.
Na marginesie, blog Technet z 2008 r. Na temat przekraczania limitów pamięci systemu Windows jest bardzo mylący - powiedziałbym, że do złudzenia. https://i.stack.imgur.com/wXkmi.png Mam również wątpliwości, czy nawet Mark to napisał, ale mam nadzieję, że nie, ponieważ zmieniłoby to moje spojrzenie na niego .....
Fwiw w artykule są dziury, których jestem zdumiony, nikt nie wybrał biorąc pod uwagę, jak często ten blog był odsyłany
W każdym razie tutaj jest jeden nie tak niejasny opis:
Windows nie może osiągnąć wyższych adresów niż CPU - nie jest to możliwe.
Bez względu na to, jaki system operacyjny jest w stanie go nadal ograniczać sprzętem, na którym działa .. ponieważ system operacyjny to tak naprawdę sam procesor (rejestry wewnętrzne).
OK, więc plik stronicowania jest obszarem na dysku twardym, który CPU wykorzystuje do rozszerzonej fizycznej przestrzeni adresowej, gdy nie może fizycznie ani architektonicznie użyć więcej pamięci RAM.
Na przykład w 32-bitowej architekturze podzielonej na segmenty x86 istnieją dwa 2 GB segmenty pamięci RAM.
Jeden jest przypisany do jądra. Pozostałe 2 GB służy do trybu użytkownika. To cała pamięć RAM, którą procesor może wykorzystać z 32 pinami DRAM, ale proces 32-bitowy ma 4 GB, więc co robić. Na szczęście procesor może użyć dodatkowej pamięci AKA jako dysku twardego do przechowywania dodatkowych 2 GB stron. Ponieważ ma wewnętrzne rejestry
Fizyczne lokalizacje, w których wirtualne strony, do których odwołuje się proces, nie muszą być przechowywane w pamięci RAM. Ale są one gdzieś przechowywane przez CPU.
Procesor nie może dać całej aplikacji 4 GB pamięci RAM, ale może nadać jej 4 GB adresu, używając dysku twardego jako dodatkowej pamięci podręcznej (czyli tak naprawdę dysku twardego jest naprawdę)
Strony są przenoszone i opuszczane z pamięci RAM za pośrednictwem wewnętrznego mechanizmu stronicowania, ale to nie to samo co plik stronicowania. Stronicowanie zawsze występuje ...
Podsumowanie nie jest tak skomplikowane. Przez ostatnie 15 lat wielu użytkowników końcowych sprawiało wrażenie, że plik stronicowania jest integralną częścią systemu operacyjnego, ale tak nie jest. Nigdy tak nie było. To nieporozumienie jest częściowo podsycane przez korporacje takie jak Intel i Microsoft.
Pamięć RAM jest szybkim urządzeniem pamięci masowej, dysk twardy jest wolniejszym urządzeniem pamięci masowej, więc zasadniczo pamięć RAM ma pamięć podręczną poziomu 1, a dysk twardy - poziom 2 (pomijając pamięć podręczną procesora dla tej analogii). Oba mogą być dostępne przez CPU.
Jeśli procesor nie ma wystarczającej ilości pamięci RAM do zapisania potrzebnych stron, dysk twardy można wykorzystać jako przepełnienie. Jeśli jest dużo pamięci RAM, PF jest zbędny.
Do Core 2 procesory Intel miały 32-pinową magistralę DRAM i 32 rejestry, co oznacza, że procesor miał dostęp do 4 GB pamięci RAM i 4 GB miejsca na dysku twardym (plik stronicowania). Jest to architektoniczne ograniczenie sprzętowe, a nie Windows.
Suma dostępna dla procesów wyniosła 3,5 GB, ponieważ tabela stron zajmuje 512 MB. Dlatego 3,5 GB pojawia się w systemie Windows z procesorami Intel (do Core 2). Dodaj GPU, a nawet mniej jest dostępnych.
Xeon mógł uzyskać dostęp do łącznie 32 GB pamięci RAM, 64 GB przestrzeni fizycznej z dołączonym dyskiem twardym (ponownie plik stronicowania). ( To ^ obejmuje PAE, -więcej w przypadku dodania linków ).
http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html
Trzecie zrzuty ekranu: Aplikacja System V Interfejs binarny Procesor architektury AMD64 Suplement Wersja robocza Wersja 0.99.7
Zamierzam nadal poprawiać tę odpowiedź i dodawać materiały źródłowe i odpowiednie informacje. Chciałbym osiągnąć równowagę między niewystarczającą ilością informacji a zbyt dużą ilością informacji technicznych. Sugestie są mile widziane. Proszę nie głosować tylko dlatego, że może nie być tak dobrze napisane.
źródło