Czy powinienem wyłączyć plik wymiany, jeśli mam dużo pamięci RAM, czy powinienem przenieść go na wirtualny dysk RAM?

97

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?

użytkownik1306322
źródło
57
Posiadanie pliku stronicowania na dysku RAM nigdy niczego nie osiąga. Zabierasz pewną ilość dostępnej pamięci i dodajesz pewną ilość pamięci wirtualnej. Kwota zerowa. Po prostu nie ma pliku stronicowania.
usr
14
Ma to sens w Linuksie w niektórych przypadkach, gdy dysk RAM obsługujący plik wymiany jest faktycznie skompresowany. Zobacz: en.wikipedia.org/wiki/Zram . Jednak nie sądzę, że Windows ma taką funkcję.
Matt H
2
Odpowiedź brzmi tak, ale jest wielu niewierzących.
Mehrdad
14
@ user367257 tworzenie dysku RAM do przechowywania pliku strony jest jak pożyczenie przyjacielowi 10 £, aby miał wystarczająco dużo pieniędzy, abyś mógł pożyczyć od niego 10 £. Może to technicznie możliwe, ale wszystko, co osiągnąłeś, to niepotrzebnie komplikować podróż do nikąd.
Rob Moir
2
Chciałbym (i zrobię to) tylko dla dysku SSD, ponieważ masz tylko tyle zapisów (nawet jeśli teraz jest ich dużo), z 6 GB. To dobrze działa.
Ry-

Odpowiedzi:

134

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.

David Schwartz
źródło
9
Sprzeciwiłem się głosowaniu negatywnemu. Ale do twojego ostatniego komentarza: uruchamiam 2 różne maszyny bez wymiany. Jest całkowicie w porządku, jeśli dokładnie wiesz, jak będzie używana maszyna.
spudone
6
Podejrzewam, że plik stronicowania na ramdrive zaczął się jako kultowe „obejście” tego, że niektóre programy odmówią uruchomienia, jeśli wykryją, że nie ma pliku strony. (Powiedziano mi, że robią to narzędzia graficzne / wideo Adobe).
Dan Neely,
8
@DavidSchwartz Podane informacje są poprawne technicznie i warto je znać. Ale wniosek, do którego dochodzisz, że zawsze powinieneś mieć plik strony, niezależnie od tego, ile pamięci RAM posiadasz, nie jest poprawny i podtrzymuję moje twierdzenie, że nie powinna to być zaakceptowana odpowiedź.
Jason Wheeler
5
Ja po prostu nie lubię słysząc, że „pagefiles są magiczne, więc nie je wyłączyć albo będziesz przepraszam”, gdy wiem, że pod wielu typowych okolicznościach, które mogą je wyłączyć i bezpiecznie zobaczyć poprawę wydajności bo ciebie nie zwiększają już I / O dysku o 100% lub więcej, ilekroć MMS chce coś zrobić. Pragnę usłyszeć od ludzi po drugiej stronie tej debaty: „tak, są okoliczności, w których możesz je wyłączyć i zmniejszyć ilość operacji we / wy na dysku, co może doprowadzić do przeładowania”. Nie twierdzę, że pliki stron są zawsze złe, może możesz powiedzieć, że nie zawsze są konieczne.
Fred Hamilton
5
Zrozumiałem, co mnie w tym wszystkim denerwuje, że jedna strona zdaje się mówić „pliki stron nigdy nie robią nic dobrego, a druga strona to„ pliki stron są okropne ”, a następnie ludzie okopują się po jednej lub drugiej stronie. „Prawdą” jest to, że w niektórych przypadkach są one bardzo przydatne, a nawet zapobiegają awariom, aw innych przypadkach nie są potrzebne i mogą faktycznie powodować spadek wydajności. Niezależnie od tego jestem zadowolony z tego, co powiedziałem. Żyj długo i dobrze, @Didid Schwartz.
Fred Hamilton
32

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:

Art Gertner
źródło
2
@ChrisH Prawdopodobnie nie byłbyś również w stanie załadować bazy danych SQL do edytora tekstów, ponieważ działają one całkowicie w pamięci RAM :-)
TylerH
9
Ta odpowiedź jest niepoprawna i zawiera wiele dezinformacji. Ale najprostszym sposobem, aby zrozumieć, dlaczego jest to źle, jest to, że ludzie, którzy zaprojektowali zachowanie pamięci systemu operacyjnego, są prawdopodobnie jednymi z najmądrzejszych ludzi na świecie. Dlaczego mieliby zaprojektować taki system, aby dać mu więcej opcji (możliwość zamiany tylko wtedy, gdy uzna to za najlepsze), co pogorszyłoby jego wydajność? Tylko idiota zaprojektowałby taki system.
David Schwartz,
17
@DavidSchwartz, nie rozumiem, w jaki sposób fakt, że ludzie, którzy opracowali algorytmy zarządzania pamięcią, są inteligentni, ma jakikolwiek wpływ na pierwotny temat. OP zapytał, czy wyłączenie zamiany może poprawić wydajność, a ja wyjaśniłem, że może, pod pewnymi warunkami i może prowadzić do problemów w innych warunkach. Odpowiadając na pytanie, dlaczego (?) - mogę powiedzieć, ponieważ algorytmy nie są idealne i użytkownik musi je dostroić. Dlatego w Linuksie istnieje parametr swapiness i dlatego wyłączenie zamiany jest w ogóle możliwe.
Art Gertner,
11
@smc W przypadku użycia OP nie ma nic niezwykłego. Twierdzenie, że systemy operacyjne nieodpowiednio dostrojone do standardowych przypadków użycia torfowiska, jest kompletnym nonsensem. (Zobacz moją odpowiedź, aby dowiedzieć się, dlaczego nie chcesz tego robić).
David Schwartz,
4
Założenie, że dany algorytm zawsze podejmie pożądaną decyzję dla użytkownika, jest całkowicie nieprawdziwe. Decyzje podejmowane są w oparciu o ustawione parametry, które zdaniem programistów są ważne. Może to mieć bezpośredni wpływ na to, co użytkownik musi zrobić.
Anaksunaman
14

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.

Piotr
źródło
Ale w przypadku, gdy plik stronicowania znajduje się na wirtualnym dysku RAM, czas użyty do skopiowania niektórych megabajtów z RAM na wirtualny dysk twardy lub z niego z powrotem zostanie skrócony. A jeśli plik stronicowania zostanie całkowicie wyłączony, nie powinno to wcale być marnowane na to. Czy to jest poprawne?
user1306322
2
Poprawny. Kopiowanie bajtów z pamięci RAM do pliku strony znajdującego się na ramdysku jest najszybszym możliwym plikiem strony. Ale w ogóle nie kopiowanie jest mądrzejsze.
Piotra,
2
Pliki wymiany służą do kompensacji braku pamięci RAM. Jeśli jest dużo pamięci RAM, nie trzeba tego kompensować. Twój system operacyjny nadal będzie jednak korzystał z pliku wymiany, więc w takim przypadku szybciej go wyłączyć.
6
@Mast To rażące uproszczenie. Pliki wymiany są również dostępne, aby umożliwić efektywne wykorzystanie pamięci RAM.
David Schwartz,
1
@DavidSchwartz Być może, ale to wytłumaczenie wyjaśniło mi to najlepiej. W większości przypadków niewielka ilość pliku wymiany jest zawsze korzystna w stosunku do braku pliku wymiany. Nie mam jednak zasobów, aby to zrobić.
8

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.

demonkoryu
źródło
1
+1 za wzmiankę o ZSWAP. Jest powszechnie używany na niektórych platformach mobilnych, a także w OS X 10.9 (aczkolwiek oprócz wymiany).
James_pic
Zauważ, że „skompresowany dysk RAM jako dysk wymiany” nadal ma problem polegający na tym, że nie robi nic dla wszystkich „plików stronicowania” innych niż rzeczywisty plik strony.
Jamie Hanrahan,
5

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 .

harrymc
źródło
4

W systemie Windows z ust koni:

Niektórzy uważają, że brak pliku stronicowania powoduje lepszą wydajność, ale ogólnie rzecz biorąc, posiadanie pliku stronicowania oznacza, że ​​system Windows może zapisywać strony na zmodyfikowanej liście (które reprezentują strony, które nie są aktywnie otwierane, ale nie zostały zapisane na dysku) na plik stronicowania, dzięki czemu pamięć ta jest dostępna dla bardziej przydatnych celów (procesów lub pamięci podręcznej plików). Tak więc, chociaż niektóre obciążenia mogą działać lepiej bez pliku stronicowania, generalnie posiadanie jednego będzie oznaczać, że system będzie dysponował większą użyteczną pamięcią * (nieważne, że Windows nie będzie w stanie pisać zrzutów awaryjnych jądra bez pliku wielkości stronicowania wystarczająco duże, aby je utrzymać).

https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/

  • użyteczna pamięć - więc chociaż zaleca się posiadanie pamięci wirtualnej, sugeruje również, że potrzebujesz naprawdę dużych ilości pamięci RAM, aby mieć pewność, że nie będziesz mieć pliku stronicowania / pamięci wirtualnej. Mam 4 GB RAM 128 GB SSD bez pliku strony, ale używam go do przeglądania stron internetowych i pisania dokumentów w formacie Word.
użytkownik127379
źródło
2
Z moich osobistych lekcji i czegoś, co głosię wszystkim nowym pracownikom: są tylko 2 zasady. # 1: Nigdy nie ufaj Microsoft. # 2 .. nie słuchałeś reguły 1, więc nie ma zasady 2
Nick
3

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

JamesRyan
źródło
3

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

Dan W.
źródło
Dziękujemy za skompilowanie tej listy. Powinno to pomóc przedstawić pewne dowody, że teoria i praktyka różnią się w tej kwestii. Virtual memory − A paging file is an area on the hard disk that Windows uses as if it were RAM.Tak, jakby: p
użytkownik1306322
ten wniosek jest błędny. fakt, że system operacyjny zapisuje rzeczy w pliku stronicowania, mimo że najwyraźniej ma „ogromne ilości wolnej pamięci RAM”, nie dowodzi niczego o „wadliwym projekcie i filozofii”. Oznacza to, że nie masz wystarczających informacji, aby właściwie ocenić decyzje systemu operacyjnego. Na początek rozważmy przypadek, w którym istnieje wiele zmodyfikowanych stron. Są zapisywane do pliku stronicowania i przenoszone na listę rezerwową - teraz są częścią „dostępnej”. Rozumiesz? Pamięć RAM jest dostępna PONIEWAŻ jej zawartość została zapisana w pliku stronicowania!
Jamie Hanrahan,
@JamieHanrahan: To nie wyjaśnia, dlaczego ludzie nadal mają problemy, mimo że rzadko używają więcej niż ułamka pamięci RAM. Komentarze w tym wątku to: „Nigdy tak naprawdę nie użyłem więcej niż połowy”, „Wykorzystanie pliku strony wynosi około 2,7 GB, a użycie pamięci RAM to 3,23 GB z 16 GB.”, „Miałem dramatyczny wzrost wydajności przy użyciu programu Illustrator, gdy Utworzyłem i przeniosłem plik stronicowania do RAMDisk ".
Dan W
Większość tych komentarzy jest spowodowana złymi informacjami. Problemy z wydajnością prawdopodobnie nie zostaną rozwiązane poprzez przechowywanie danych w pamięci RAM, do których często nie ma dostępu. Plik strony nie jest jedynym plikiem uczestniczącym w stronicowaniu; istnieją setki innych, więc jest mało prawdopodobne, aby robienie czegoś, co wpływa tylko na plik stronicowania (i zabiera GB pamięci RAM z reszty systemu, zwiększając w ten sposób współczynnik błędów stronicowania), będzie miało jakikolwiek „dramatyczny” efekt. Takie raporty zwykle nie są podtrzymywane, gdy wykonywane są odpowiednio kontrolowane testy. Możesz znaleźć anegdoty na poparcie każdego przekonania; Uważam je za nieprzekonujące.
Jamie Hanrahan
W szczególności twierdzenie „plik strony jest używany” wymaga dowodu. Sam fakt posiadania GB plików w pliku stronicowania nie dowodzi, że plik stronicowania jest używany w sposób, który stawia go na krytycznej ścieżce wydajności. Aby to ocenić, izoluj plik stronicowania na partycji sam - a przynajmniej takiej, która nie jest aktywnie używana do niczego innego - a następnie możesz użyć PerfMon na tym „dysku logicznym” do monitorowania szybkości operacji we / wy. Jeśli plik strony nie jest często odczytywany, nie ma znaczenia, ile zostało do niego napisane!
Jamie Hanrahan
2

Konwersja 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.

Piotr
źródło
2

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.

nsn
źródło
2

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.

Michael
źródło
Lepiej byłoby po prostu umieścić plik stronicowania na dysku SSD. Windows nie będzie go używał, jeśli nie będzie musiał. Umieszczenie pliku strony na dysku RAM jest niedorzeczne. Tak, błędy strony w tym „pliku” zostaną rozwiązane szybciej niż na prawdziwym dysku, ale poprzez przypisanie pamięci RAM do RAMdisk w pierwszej kolejności zwiększasz liczbę błędów stron. To jak pożyczanie pieniędzy od siebie, naliczanie sobie odsetek i wyrzucanie „odsetek”. To nawet nie jest złe.
Jamie Hanrahan,
1

Przeniesienie pliku strony do pamięci RAM jest absurdalnym pomysłem. Po prostu wyłącz go i zwiększ ilość pamięci RAM. :)

No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.

Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).

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

  • Plik strony i jego lokalizacja są obsługiwane przez system Windows, pułapki dostępu do pamięci do lokalizacji, które zostały przeniesione na dysk, zostałyby przechwycone przez procesor, ale przekazane do systemu operacyjnego w celu pobrania strony z dysku i załadowania jej.

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 ).

wprowadź opis zdjęcia tutaj http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

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.

Robert Fischer
źródło
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
DavidPostill