Czy nadal muszę korzystać z pamięci wirtualnej?

14

Myślałbym, że to już zostało zadane, ale nie mogę tego znaleźć.

W którym momencie nie muszę już włączać pamięci wirtualnej? Z 4 GB pamięci RAM widzę, że komputer rzadko używa go w pobliżu. W tym momencie pamięć wirtualna nie jest absolutnie konieczna. Czy wyłączenie jest niebezpieczne? Czy w takim przypadku utracę funkcje?

Steve Rowe
źródło
1
Uwaga: Istnieje tylko ograniczona ilość pamięci podana do kierowców, zwany non-pagedi pagedbasen sekcje pamięci. Plik strony jest niezbędny, gdy sekcja stronicowana zapełni się, ponieważ jako gracz widziałem grę, która narzeka na pamięć puli stronicowanej tylko dlatego, że mój plik stronicowania został wyłączony w systemie o pojemności 8 GB. Wniosek: pliki stron są niezbędne, zapobiegają wyczerpaniu puli stronicowanej i faktycznie przyspieszają system.
Tamara Wijsman

Odpowiedzi:

9

Ponieważ pamięć nie jest już rzadkim zasobem na komputerach stacjonarnych / laptopach, wątpię, aby większość programów z wdziękiem poradziła sobie z brakiem pamięci i zamiast tego ulegnie awarii.
Więc: Niebezpieczny? Tak , jeśli twoje 4 GB jest w jakiś sposób wykorzystane i nie masz pliku stronicowania, aplikacje mogą zacząć się zawieszać.
Jak pokazano w przykładzie Zorana, może być później trudno zidentyfikować problem.

Artykuł, do którego odnosi się Ram, stwierdza również, że wyłączenie zamiany zwykle nie poprawia prędkości i może zamiast tego zrobić coś przeciwnego :

Tak więc, chociaż mogą występować pewne obciążenia, które działają lepiej bez pliku stronicowania, ogólnie posiadanie jednego oznacza, że ​​w systemie będzie dostępnych więcej użytecznej pamięci

foraidt
źródło
Będę musiał wykopać artykuł na stronie MS, ale MS mówi, że zawsze powinieneś mieć plik stronicowania. Nawet w systemach z wysoką pamięcią brak takiego urządzenia może spowolnić pracę komputera.
Keltari
10

Zobacz artykuł Marka Russinovicha o pamięci wirtualnej. To powinno dać ci dobry wskaźnik na temat pamięci wirtualnej.

Oto przydatny fragment linku

Skąd więc wiesz, ile opłaty za zatwierdzenie wymagają twoje obciążenia? Być może zauważyłeś na zrzutach ekranu, że system Windows śledzi tę liczbę, a Process Explorer pokazuje ją: Peak Commit Charge. Aby optymalnie dopasować rozmiar pliku stronicowania, należy uruchomić wszystkie aplikacje uruchomione w tym samym czasie, załadować typowe zestawy danych, a następnie zanotować szczytową opłatę zatwierdzenia (lub spojrzeć na tę wartość po okresie, w którym wiadomo, że osiągnięto maksymalne obciążenie) . Ustaw minimalną wartość pliku stronicowania na tę wartość minus ilość pamięci RAM w systemie (jeśli wartość jest ujemna, wybierz minimalny rozmiar, aby zezwolić na rodzaj zrzutu awaryjnego, dla którego jesteś skonfigurowany). Jeśli chcesz mieć trochę wytchnienia dla potencjalnie dużych żądań zatwierdzenia, ustaw maksimum, aby podwoić tę liczbę.

Prabhu R.
źródło
+1 za odniesienie Marka Russinowicza. Zawsze świetna lektura.
mrduclaw
3

Ten klasyczny post na ServerFault ma kilka dobrych punktów. Za jedyne 4 GB zostawiłbym plik strony w spokoju, a miejsce na dysku jest w każdym razie niewielkie.

MartW
źródło
3

Zalecam pozostawienie ustawień pamięci wirtualnej na domyślne. Mam 8 GB pamięci RAM i wyłączyłem pamięć wirtualną, myśląc, że zwiększę prędkość (z powodu braku zamiany), ale okazuje się, że mój system był mniej stabilny (i zrobiłem to na 2 komputerach, podobny wynik). W obu przypadkach miałem około jednego BSOD tygodniowo. Zacząłem badać wyprodukowane minidumpy i odkryłem, że wszystkie BSOD zostały wywołane przez wywołanie procedury o nazwie KiPageFault. Próbowałem więc przywrócić ustawienia pamięci wirtualnej do wartości domyślnych, a zwykłe BSOD zniknęły.

Zajęło mi sporo czasu, aby skorelować 2, i nie mam faktycznych dowodów na to, że wyłączenie pamięci wirtualnej spowodowało BSOD, ale moje maszyny były bardziej stabilne po ponownym włączeniu ...

Zoran
źródło
Dzięki. Dobrze jest słyszeć prawdziwe wyniki, a nie tylko przypuszczenia.
Steve Rowe
0

Zależy od obciążenia. Skonfigurowałem kilka bezbronnych nakładek na aplikację internetową. Uruchomili sieć i uruchomili wszystko, czego potrzebowali, w obrębie 8 GB pamięci RAM.

Użyłem także systemu Windows (prawdopodobnie 98) z 32 MB i bez pliku stronicowania - oczywiście musisz żyć w tym miejscu pamięci i ograniczać aplikacje do zasobów.

Chcesz się upewnić, że jest pamięć RAM na pamięć podręczną, w przeciwnym razie wydajność może stać się straszna.

Wydaje mi się, że niektóre programy nie będą działać bez VM, ale nie mam pojęcia, jakie były

gnibbler
źródło
-2

Steve, ciekawe, że powinieneś o to zapytać.

Powiem ci małą tajemnicę: nigdy nie potrzebowałaś wirtualnej pamięci. Pamięć wirtualna była szalenie niekompetentnym pomysłem stworzonym przez grupę naukowców, którzy znali zero na temat praktycznych systemów komputerowych, a KAŻDY komputer będzie działał znacznie lepiej, jeśli będzie można go uruchomić bez maszyny wirtualnej.

Teraz możesz zapytać, czy VM jest bezużyteczne i szkodliwe, dlaczego korzysta z niego większość dużych współczesnych systemów operacyjnych? Krótka odpowiedź na to pytanie jest taka, że ​​osoby decydujące, czy korzystać z VM, czy nie w Microsoft, Apple i IBM były jeszcze bardziej głupie i niedoświadczone niż naukowcy, którzy wymyślili VM i chcieli przyjąć ją w oparciu o te same, całkowicie błędne założenia, że naukowcy mieli to, kiedy to wymyślili. Moglibyśmy zacząć mówić o tych założeniach i nieporozumieniach, ale niestety, gdyby były łatwe do zrozumienia i opisania, nie mielibyśmy problemu VM.

Wracam do ciebie. Niestety, podobnie jak wspomniane wcześniej tardnoggins w Apple i Microsoft, masz własne nieporozumienia, a mianowicie pomysł, że możesz wyłączyć VM. Oczywiście nie można go wyłączyć, co zniweczyłoby cały cel pieprzenia cię, gdybyś mógł to po prostu wyłączyć. Kiedy ludzie robią coś naprawdę głupiego, zawsze upewniają się, że jest to nieodwracalne. W końcu, jeśli wszyscy mogliby po prostu wyłączyć VM, zrobiliby to, a to sprawiłoby, że bozos, którzy ją stworzyli, wyglądali głupio, prawda? Zapobiegli tej możliwości, czyniąc ją niemożliwą do usunięcia, tak jak Microsoft sprawił, że Internet Explorer stał się niemożliwy do usunięcia.

Co możesz zrobić, to ograniczyć rozmiar pliku strony, który oczywiście powinien być ustawiony na minimum, mam nadzieję, że 0. Pamięć wirtualna wciąż tam jest, ale przynajmniej możesz ją zmniejszyć z bardzo, bardzo wolnego do bardzo, bardzo, bardzo, bardzo zwolnij, prosząc go, aby nie angażował dysku w szaleństwo.

Tyler Durden
źródło
Pamięć wirtualna pozwala na wiele dobrych rzeczy. Jeśli nie masz pamięci wirtualnej, musisz mieć wystarczającą ilość pamięci RAM, aby pomieścić każdy bajt kodu i danych, które określa każdy proces w twoim systemie, niezależnie od tego, czy kiedykolwiek był do niego odwoływany. Ponieważ większość programów spędza 90% czasu na używaniu 10% kodu i danych, byłoby to ogromnym marnotrawstwem. Straciłbyś także wiele innych przydatnych rzeczy, których format komentarza nie daje mi miejsca na zarysowanie. Powodem, dla którego nie zrezygnowaliśmy z pamięci wirtualnej, jest to, że wciąż jest to naprawdę dobry pomysł. Nawet w „praktycznych systemach komputerowych”.
Jamie Hanrahan,
@ RickBrant Brzmisz jak idiotyczni inżynierowie elektryczni z Intela i IBM, których używam, by słuchać w latach 80., próbując wyjaśnić, dlaczego VM jest dobrym pomysłem. Pamiętam, kiedy IBM wyszedł z OS / 2, który był pierwszym mózgiem systemu operacyjnego uszkodzonym przez VM, musiałem ich wysłuchać, aby wyjaśnić, dlaczego był to tak świetny pomysł. Cóż, dzięki Bogu OS / 2 umarł, ale niestety VM kontynuowało, jak zombie, więc tutaj jest 2017 i wciąż słucham tych bzdur. Obstawię dolary na pączki, których nie masz dyplomu CS, zrób ty? To część żartu. 99% facetów promujących VM nie jest programistami
Tyler Durden
W rzeczywistości byłem dualistą, CS / EE, w jednej z najlepszych szkół technicznych na zachodnim wybrzeżu. Dziś jestem głównie programistą, ale wchodzę w interakcje z typami sprzętu. Czy masz teraz przemyślane obalenie do tego stopnia, że ​​byłoby bardzo marnotrawstwem utrzymywanie każdego ostatniego bajtu kodu i danych, które program definiuje w pamięci RAM przez cały czas, czy tego potrzebuje, czy nie? Ponieważ pamięć wirtualna tego unika. A może zamierzasz kontynuować osobiste ataki, które oznaczają, że „musisz być idiotą”?
Jamie Hanrahan,
Aha, i ponownie „OS / 2, który był pierwszym mózgiem systemu operacyjnego uszkodzonym przez VM” , nie, nie przez około dwie dekady. Być może pierwszy powszechnie używany system operacyjny na komputery PC. (Ale nie pierwszy w przypadku „komputerów osobistych”).
Jamie Hanrahan,