Używam pamięci RAM do przechowywania niektórych moich tabel bazy danych, a inne są przechowywane na dysku twardym.
Dziś dowiedziałem się, że moje procesy używają pamięci wymiany. Co to jest pamięć wymiany i jak mogę wykryć, który proces korzysta z pamięci wymiany i jak mogę je zatrzymać?
Odpowiedzi:
Jeśli zabraknie pamięci fizycznej, używasz pamięci wirtualnej, która przechowuje dane w pamięci na dysku. Odczytywanie z dysku jest kilka rzędów wielkości wolniejsze niż odczytywanie z pamięci, więc spowalnia wszystko. (Wymiana danych między pamięcią rzeczywistą a pamięcią wirtualną to „zamiana”. Przestrzeń na dysku to „przestrzeń wymiany”.)
Jeśli Twoja aplikacja korzysta z funkcji wymiany, musisz albo użyć mniej pamięci, albo kupić więcej pamięci RAM.
(Zamiana jest przydatna, ponieważ nieużywane aplikacje można przechowywać na dysku do momentu ich użycia. Następnie można je „wczytać” i uruchomić ponownie normalnie. Chociaż nie ma go w pamięci, system operacyjny może z niego korzystać na coś innego, np. pamięć podręczną dysku. Jest to więc bardzo przydatna funkcja, ale jeśli nie masz wystarczającej ilości pamięci fizycznej do uruchomienia programu, zdecydowanie potrzebujesz więcej pamięci. Na szczęście pamięć jest naprawdę bardzo tania.)
źródło
Komputer ma pewną ilość pamięci fizycznej. Ale przez większość czasu chcemy więcej. Wymieniamy więc trochę pamięci na dysku.
Za każdym razem, gdy potrzebujemy tej pamięci, należy ją zamienić z powrotem w pamięć (zamienić inny kawałek). Istnieją niezwykle inteligentne algorytmy, aby zminimalizować opóźnienie, ale wciąż czasami musimy czekać.
W systemie Windows, jeśli spojrzysz na menedżera zadań, możesz pokazać błędy strony kolumny. To pokazuje, ile razy aplikacja prosi o kawałek pamięci, który był na dysku i wymaga wymiany. Wiele błędów strony = powolna aplikacja.
Ten proces jest wykorzystywany na kilku poziomach. Podsumowanie od szybkiego do wolnego:
źródło
Jeśli nie chcesz używać wymiany, nie używaj partycji wymiany (skomentuj wiersz w środku
/etc/fstab
), ale uniemożliwi to rozpoczęcie nowego procesu i spowoduje awarię malloc, jeśli zabraknie pamięci fizycznej. Zasadniczo nie jest to dobry pomysł ... niezbyt bezpieczny i nawet niezbyt przydatny, ponieważ system operacyjny zachowa gorące strony w pamięci i zamieni na dysk te, które nie były ostatnio używane.Innym rozwiązaniem może być zhakowanie bazy danych, aby zablokowała strony w pamięci (wiem, że można to zrobić, ale nie mogę teraz dokładnie powiedzieć, jak to zrobić), ale tak czy inaczej, baza danych będzie używać własnej wymiany i mechanizmy buforowania.
Aby dowiedzieć się, co to jest zamiana i jak działa pamięć wirtualna ... Polecam rzucić okiem na niektóre wykłady dotyczące systemu operacyjnego, być może MIT Open Courseware może pomóc.
źródło
Znalazłem częściowo odpowiedź. Pamięć wymiany to miejsce na dysku twardym komputera, którego systemy operacyjne wykorzystają do umieszczenia informacji faktycznie znajdujących się w pamięci RAM w celu zwolnienia jej dla innej aplikacji. Należy to zrobić, gdy system potrzebuje pamięci na nowy proces, a nie ma jej wcale, więc możemy zobaczyć, że jeśli nasz system ma dużo pamięci RAM, być może nie będzie potrzebował pamięci SWAP.
AKTUALIZACJA
Aby dowiedzieć się, gdzie Zamień miejsce (lub pamięć wirtualną), możesz przejść do Menedżera zadań (CTRL + ALT + DEL) i włączyć w widoku -> KOLUMNY -> PAMIĘĆ WIRTUALNA. Teraz wystarczy obliczyć różnicę między użyciem pamięci a pamięcią wirtualną. Również tutaj jest instrukcja, jak to zobaczyć, jeśli używasz systemu Vista: http://www.ehow.com/how_5067693_increase-swap-space.html
źródło
Zamień to miejsce na dysku twardym używane jako pamięć RAM. Jest (relatywnie mówiąc) bardzo powolny, ale zapobiega awariom komputerów, gdy próbują poradzić sobie z większą ilością danych, niż jest w stanie obsłużyć ich pamięć RAM.
Aby zatrzymać proces zamiany - zainstaluj więcej pamięci RAM.
źródło
Jeśli nie chcesz, aby twoje procesy korzystały z pamięci wymiany, po prostu całkowicie wyłącz pamięć wymiany. Niestety, jeśli kiedykolwiek zabraknie ci pamięci, jądro Linuksa zabije niektóre z uruchomionych procesów w celu zwolnienia pamięci do użycia.
Jeśli masz wystarczającą ilość pamięci RAM dla swojego systemu, możesz faktycznie przejść bez pamięci wymiany.
Mam laptopa z 768 MB pamięci RAM, która nie korzysta z pamięci wymiany. Jest wystarczająco dobry dla moich potrzeb. Mam serwer z 256 MB pamięci RAM i nie używam pamięci wymiany. Działa bezproblemowo z 8 serwerami wirtualnymi wykorzystującymi wirtualizację OpenVZ.
Tak więc to od Ciebie zależy, czy potrzebujesz pamięci wymiany.
źródło