Czy umieszczenie folderu swapfile & temp na ramdisku to dobry pomysł w 64-bitowym systemie Windows 7 z dużą ilością pamięci RAM?

16

Chcę, aby mój system Windows działał tak szybko, jak to możliwe. Jeśli mam 12 GB pamięci RAM w 64-bitowym systemie Windows 7, czterordzeniowy procesor i wszystkie aplikacje mieszczą się w pamięci, czy plik wymiany będzie kiedykolwiek używany? Pytanie dotyczy tego, czy dobrym pomysłem jest umieszczenie pliku wymiany na dysku RAM.

Czy dysk RAM mógłby w jakikolwiek sposób pomóc, czy system Windows inteligentnie wykorzysta całą dostępną pamięć do całej swojej pracy?

Zastanawiam się także nad umieszczeniem folderu temp na dysku RAM. Wiem, że dysk RAM jest pamięcią ulotną i nie dbam o jego zawartość, jeśli się zgubi.

Tony_Henrich
źródło
Tytuł trochę mnie rozśmieszył, ale tak naprawdę, jeśli [...] wszystkie aplikacje mieszczą się w pamięci, czy plik wymiany będzie kiedykolwiek używany do czegokolwiek, to całkiem dobre pytanie!
Arjan
Plik stronicowania - nie jest to „plik wymiany” - będzie używany w razie potrzeby, aby umożliwić programom przydzielanie wirtualnej przestrzeni adresowej poza to, na co pozwalała sama pamięć RAM. Jest to konieczne, nawet jeśli po przydzieleniu faktycznie zużywają tyle, ile zmieściłoby się w pamięci RAM.
Jamie Hanrahan

Odpowiedzi:

7

Zgadzam się, że umieszczenie pliku wymiany na ramdysku nie ma sensu w 64-bitowym systemie operacyjnym. Jeśli jednak masz 32-bitową wersję WinXP, system Windows może „zobaczyć” tylko pierwsze 3,5 GB pamięci RAM. Jeśli ktoś ma więcej pamięci RAM, powiedzmy 9 GB, pamięć RAM powyżej 3,5 GB jest całkowicie marnowana przez WinXP. Jednak używając programu takiego jak SuperSpeed ​​RamDisk Plus, można użyć pamięci powyżej 3,5 GB jako ramdysku - a umieszczenie tam pliku wymiany ma ogromny sens (znowu, w 32-bitowym XP, a nie 64-bitowym Win7 ).

Oddzielne umieszczanie plików tymczasowych na ramdysku prawie zawsze ma sens pod względem wydajności, chyba że oczekiwany rozmiar spowoduje zbyt duże wgniecenie w pamięci RAM dostępnej dla systemu operacyjnego.

Floont Artney
źródło
6

Umieszczenie pliku strony na ramdysku to niedorzeczny pomysł. Musisz zrozumieć, że tylko niewielka część stronicowania będzie obejmować plik stronicowania. Większość stronicowania będzie zawierać pliki wykonywalne i inne odwzorowane pliki, a plik stronicowania w pamięci RAM nie poprawi tej wydajności. A dzięki zmniejszonemu dostępnemu pamięci RAM systemu będzie więcej takich stronicowania. W rezultacie dostęp do pliku stronicowania będzie szybszy, ale ogólne poziomy stronicowania będą wyższe przy obniżeniu wydajności.

użytkownik43161
źródło
4

Nie powiedziałbym, że to śmieszne; dla systemów 32- lub 64-bitowych.

Na początek oczywiste, 32-bitowe okna (większość działających systemów) po prostu ignorują wszystko powyżej 4 GB. Ramdyski, ponieważ mogą korzystać z PAE i adresowania pamięci 36-bitowej, są, według mojej wiedzy, jedynym sposobem uczynienia obszarów o wysokiej pamięci przydatnymi w systemach 32-bitowych.

Pytanie brzmi: w jaki sposób wykorzystujemy błyskawiczny / bezpieczniejszy wirtualny dysk twardy? Pliki tymczasowe przychodzą mi na myśl i są dość proste w konfiguracji, o ile wiesz, jak przypisać stałą literę dysku w systemie Windows. To samo z pamięcią podręczną przeglądarki. Zainteresowanie nimi jest czterokrotne:

  • Najszybszy dostęp / pobieranie
  • Prawdziwe usunięcie
  • Eliminuje większość niepotrzebnego zużycia drogiej pamięci SSD.
  • Mniej fragmentacji dysku ..

Jeśli chodzi o plik wymiany, wydaje się oczywiste, że systemy 32-bitowe mają wiele do zyskania dzięki umieszczeniu ich w nieodebranej pamięci RAM. Można by pomyśleć o programie wymagającym dużej pamięci, wykorzystującym do 3 GB na sobie (z przełącznikiem 3 GB w boot.ini), który najprawdopodobniej spowoduje wiele zamian. Nadal obowiązują dwa takie same bonusy: prawdziwe usunięcie i zużycie na dysku SSD. Fragmentacja jest mniejszym problemem w przypadku plików wymiany.

Jest więcej: często słabo napisane programy używają pamięci wirtualnej, bez względu na ilość dostępnej pamięci fizycznej, powodując bezużyteczny dostęp do dysku. Dotyczy to zarówno programów 32, jak i 64-bitowych. Natknąłem się nawet na programy, które po prostu nie uruchomią się przy braku pliku wymiany.

Podsumowując, chociaż ma to sens bez względu na to, co ma ramdysk poniżej 4 GB i oszczędza bezużytecznego dostępu do dysku do tymczasowego buforowania folderów i programów, wydaje się znacznie lepiej zainstalować więcej niż 4 GB, przy czym cena pamięci jest taka, jak w obu 32 ( ze sprzętem obsługującym PAE) ORAZ systemy 64-bitowe i przenieś tam plik wymiany.

Należy zauważyć, że wielu profesjonalnych użytkowników komputerów wciąż nie może przejść do 64 bitów ze względu na wsparcie sprzętowe.

Niedorzeczne byłoby użycie tego samego mocnego języka, co powyżej, po prostu odrzucenie tego pomysłu i poleganie nie tylko na obsłudze pamięci wirtualnej Microsoft (która jest chwalona i słusznie), ale także na programistach aplikacji, którzy należą do guru kodowania asemblera do idiotycznego języka, który sprawi, że najpiękniejszy i najbardziej stabilny komputer PC padnie na kolana dzięki złej obsłudze pamięci. Widziałem taki kod w programach głównego nurtu, aplikacjach zwiększających wydajność, nie żartuję!

Mój główny system ma ramdysk 8 GB na XP / 32 i okazało się to przydatne. Jest to dość trywialne w konfiguracji i muszę powiedzieć, że jedynym programem, który sprawił mi trudność, jest Google Chrome, którego strategia instalacji / aktualizacji jest trudna w ulepszaniu.

Możesz wymyślić wiele przydatnych zastosowań ramdysków oprócz nich; w moim przypadku próbki audio do pobrania z dysku w aplikacjach na żywo: umieść je tam w czasie uruchamiania (boleśnie powolne) i uzyskaj błyskawiczny dostęp do bibliotek MultiGB. Ale to nie jest temat :)

To jest moje własne doświadczenie. Chciałbym, żeby ludzie nie zniszczyli wartości użytecznych informacji za pomocą niepotrzebnego, mocnego języka. Śmieszne było złym wyborem słowa w tym kontekście, delikatnie mówiąc.

użytkownik102648
źródło
3

Tak, pliki stronicowania są używane, nawet jeśli ma się dużo pamięci RAM; ale samo istnienie pliku stronicowania samo w sobie nie jest czynnikiem wpływającym na wydajność systemu . Ponadto umieszczanie pliku stronicowania na dysku RAM jest głupie. W końcu chodzi o plik stronicowania, który ma być miejscem do przechowywania (przejściowych) danych strony, gdy dane te nie znajdują się obecnie w pamięci RAM . Dyski RAM są w pamięci RAM…

Oczywiście umieszczanie plików tymczasowych na dysku RAM jest zupełnie innym kotłem ryb.

JdeBP
źródło
1
Ten post nie wyjaśnia, dlaczego system operacyjny musi cokolwiek odrzucać, jeśli system ma mnóstwo pamięci RAM i może pomieścić WSZYSTKO. Istotą stronicowania jest zrobienie miejsca dla ważniejszych procesów, ale jeśli pamięć może przechodzić w stan przejściowy i nowy, stary i rzadko używany i coś w pamięci, dlaczego nie zatrzymać wszystkiego w pamięci RAM? Jeśli chodzi o zrzuty, nie dbam o nie. Nie mogę ich czytać ani rozumieć, więc równie dobrze mogą zostać usunięte i nie zawracają sobie głowy zapisywaniem ich, chyba że wyślę je do MS w celu analizy.
Tony_Henrich
Drugi artykuł, do którego się odwołuje, ma również zwykłego strawmana: „niektóre” programy mogą „zawieść, bez określania, które programy faktycznie są, ani w jaki sposób mogą zawieść.
RolKau,
@ Tony, zrzuty po awarii są trudne do odczytania i interpretacji przez zwykłą osobę, ale jeśli zainstalujesz narzędzia do debugowania Microsoftu, mogą one być dość pouczające przy ustalaniu przyczyny BSOD. Jeśli komputer nigdy nie ulega awarii, to oczywiście nie ma znaczenia, ale zrzuty awarii były bardzo pomocne w rozwiązywaniu problemów z uszkodzonymi komputerami w przeszłości, więc nie odrzucaj ich całkowicie.
nhinkle
2
@Tony_Henrich "dlaczego nie trzymać wszystkiego w pamięci RAM" => ponieważ jeśli istnieje coś, co nigdy (lub bardzo rzadko) jest dostępne w pamięci RAM, marnuje to miejsce. To miejsce można lepiej wykorzystać do buforowania plików, do których często uzyskuje się dostęp, zapewniając zwiększenie wydajności sieci. Dowolna fizyczna pamięć RAM, która nie jest aktywnie wykorzystywana przez kod programu lub dane, może być używana przez system operacyjny do buforowania plików - dlatego też nie jest dobrze pracować w pobliżu całkowitej pojemności pamięci RAM.
Bob
Większość ludzi, którzy twierdzą, że „system ma mnóstwo pamięci RAM i może WSZYSTKO”, nigdy nie spojrzeli na całkowite wykorzystanie wirtualnej przestrzeni adresowej na swoim komputerze.
Jamie Hanrahan,
1

Wątpię, czy zobaczysz dużą różnicę w przenoszeniu pliku strony na ramdysk. Jeśli chcesz zmusić system Windows do używania pamięci RAM, możesz wyłączyć plik stronicowania.

Zauważyłem jednak dużą różnicę, przenosząc moje pliki tymczasowe IE na ramdysk i ustawiając zmienne środowiskowe TEMP i TMP tak, aby wskazywały ramdysk.

Korzystam również z Google Chrome z flagą „-user-data-dir =" R: \ ChromeTEMP ", więc przechowuje pliki tymczasowe na ramdysku. Spowoduje to, że zapomni o twoich ustawieniach. Ale ponieważ korzystam z funkcji synchronizacji, to nie ' t wpływ na mnie dużo. Po początkowej synchronizacji wszystko wróciło do normy. A ekrany ładowania skyrim są krótsze po połączeniu z kopiami niektórych plików na moim ramdysku.

Andrzej
źródło
Pozbycie się pliku strony (lub umieszczenie go na dysku RAM) nie „zmusza systemu Windows do korzystania z pamięci RAM”. Istnieją setki innych plików używanych do stronicowania, a system Windows nadal będzie stronicował do nich i od nich.
Jamie Hanrahan,
0

Windows będzie nadal używał pliku wymiany, co (ku mojemu zamieszaniu, ponieważ mam identyczną konfigurację) nie miało dla mnie żadnego sensu. Jednak po wyłączeniu pliku stronicowania nie zauważyłem żadnej rzeczywistej poprawy wydajności. Od tego czasu wróciłem do używania pliku strony, ponieważ system Windows używa go do innych celów niż pamięć wirtualna (myślę, że zapisuje do niego zrzuty awaryjne, gdy wyświetlasz niebieski ekran), czego potrzebuję. Kilka razy przedmuchałem moje 12 GB pamięci RAM i byłem wdzięczny, że mam pokój wiggle.

Krótko mówiąc, system Windows nadal będzie używał pliku strony, ale nie powinieneś zauważyć go jako spadku wydajności.

Jeśli chodzi o pliki tymczasowe, przeniesienie ich na dysk pamięci RAM powinno zwiększyć ich szybkość dostępu, ale upewnij się, że nie będziesz potrzebować niczego, aby przetrwać przez ponowne uruchomienie / awarię oraz że sterownik ramdysku ładuje i tworzy ramdysk przed dowolnymi aplikacjami lub system musi użyć folderu tymczasowego.

Darth Android
źródło
Myślę, że mini zrzuty są zapisywane w specjalnym folderze pod Windows. Nie jestem pewien co do pełnego zrzutu, ale może zostaną one zapisane w pliku strony. Ale nie mam nic przeciwko umieszczeniu pliku strony na dowolnym dysku innym niż root. Mam tylko nadzieję, że Windows jest wystarczająco wydajny, aby maksymalnie wykorzystać dostępny RAM i używać pliku strony tylko wtedy, gdy jest to absolutnie konieczne.
Tony_Henrich
@ Tony: Są one zapisywane w pliku strony do momentu ponownego uruchomienia, w którym to czasie są zapisywane w folderze Minidump w folderze% SYSTEMROOT%.
Cześć71,
1
MS twierdzi, że wyłączenie pliku wymiany najprawdopodobniej obniży wydajność nawet w systemach o wysokiej pamięci. Zarządzanie pamięcią systemu operacyjnego dotyczy wymiany.
Keltari,
Zauważ, że Windows może zamiast tego przygotować zrzuty awaryjne w dedykowanym pliku, co pozwala uniknąć wymogu, aby na dysku systemowym była wystarczająca ilość wolnego miejsca / pliku strony do przechowywania danych zrzutu; zobacz Jak użyć wartości rejestru DedicatedDumpFile do pokonania ograniczeń miejsca na dysku systemowym podczas przechwytywania zrzutu pamięci systemowej - Blog
Ntdebugging
0

Moim zdaniem nie jest to zły pomysł.

Logicznie ludzie źle rozumieją „plik strony” lub bardziej poprawnie „plik wymiany” jako pamięć RAM. Prawdą jest, że plik wymiany zawiera podobne dane jak pamięć RAM. Ale system Windows nie używa takiej pamięci RAM. Jak widać dzisiaj w rozwijającym się świecie wielozadaniowości, w którym żyjemy, system Windows został zaprojektowany w ten sposób, aby obsługiwać ograniczoną ilość pamięci RAM, stale zapisując między plikiem wymiany a pamięcią RAM.

Plik wymiany jest zawsze używany przez system Windows, ponieważ wzrost wydajności jest bardziej zauważalny na starszych wolniejszych komputerach z kilkoma uruchomionymi programami. Po otwarciu okna program zamienia się w pamięć RAM podczas pracy.

Powiedzmy, że piszesz list w programie Word. Jeśli właśnie uruchomiłeś ten program z wieloma programami \ windows w tle, jest on zwykle powolny, ale po kilku sekundach działa płynniej. Następnie po przejściu do przeglądarki Internet Explorer działa wolno, a następnie przyspiesza, ponieważ znajdował się w pliku strony, a następnie zamienił się na pamięć RAM, podczas gdy wszystkie procesy w tle są ładowane do pliku strony.

Teraz przedstawmy dysk RAM w systemie Windows. Umieść plik wymiany na ramdysku zamiast na dysku twardym, a poprawiłeś możliwość wielozadaniowości systemu Windows, ponieważ pamięć RAM jest szybsza niż dysk twardy / dysk twardy. Jednak to nie pomoże na starszym systemie, chyba że kupisz fizyczne dyski RAM - i może być konieczne ponowne ustawienie pliku stronicowania w systemie Windows, ponieważ bez zasilania zostanie on usunięty.

Pliki stron stają się bardzo bezcelowe w przypadku nowszych komputerów z 8, 16, 32, 64 gigabajtami pamięci RAM.

Adam R.
źródło
3
Pozostaje pytanie, dlaczego Windows miałby wymieniać cokolwiek, jeśli jest dużo pamięci na wszystko. to nie jest tak, że pamięć „męczy się” z trzymania aplikacji i potrzebuje przerwy.
Tony_Henrich
W rzeczywistości „plik strony” jest bardziej poprawny niż „plik wymiany”; technicznie rzecz biorąc, zamiana polega na tym, że WSZYSTKIE pamięci danego procesu wysyłane są do pamięci dodatkowej ...
SamB
Dlaczego: ponieważ jest agresywny w przycinaniu „zestawu roboczego”. Ale to naprawdę nie zamienili się i wyciąga z powrotem, gdy są potrzebne, bez konieczności odczytu dysku.
JDługosz
„plik wymiany jest zawsze używany przez system Windows ” - niepoprawny. Nawet jeśli zdarza się, że używa pliku stronicowania, zapisuje tam rzeczy, o których zdecydował, nie bez powodu (jak długo go nie dotykałeś), że nie warto trzymać go w pamięci RAM. Jak myślisz, dlaczego masz więcej informacji o tym, co przechowywać w pamięci RAM niż system Windows? W każdym razie, jak powiedzieli inni, umieszczenie pliku stronicowania w pamięci RAM jest jak udzielenie sobie pożyczki, a następnie spłacenie środków z pożyczki. Nie masz już pieniędzy, po prostu spędziłeś dużo niepotrzebnego wysiłku.
Jamie Hanrahan,
0

Większość z was sceptycznych facetów zapomina o limicie 32-bitowej pamięci RAM systemu Windows i tęskni za tym, że nie można umieścić w niej więcej kodu i danych niż 3,5 GB. Lub po prostu uważasz, że próbujemy „odciąć”, powiedzmy 2 GB z dostępnego 3,5 GB - dla szybkiego pliku stronicowania, kosztem zmniejszenia dostępnej pamięci do 1,5 GB. To z pewnością nie ma sensu, ale to nie jest nasz pomysł . Nasz pomysł jest dedykowany użytkownikom 32-bitowego systemu Windows, który jest właścicielem komputerów PC z WIĘKSZĄ ilością RAM-u, która przekracza limit 3,5 GB. Na przykład maszyna wyposażona w 8 GB, z 32-bitowym systemem XP lub Vista lub 2003.

Kiedy ciężko pracujesz z wieloma aplikacjami jednocześnie, system często staje w obliczu wyczerpania pamięci. Aby uniknąć błędu krytycznego, system jest zmuszony do przechowywania niektórych danych aplikacji działających w tle w pliku stronicowania. Zazwyczaj oznacza to zapisywanie dziesiątek i setek MB na dysku twardym. I pamiętaj - zdarza się to często, gdy naprawdę korzystasz z wielozadaniowości (obecnie powszechnej, a także aplikacji zużywających pamięć). A kiedy na pierwszym planie pojawi się aplikacja działająca w tle - kolejna partia danych z pamięci RAM musi przejść na dysk twardy, aby zwolnić miejsce w pamięci RAM, aby poprzednia partia mogła wrócić z dysku twardego (tym razem zapisując i odczytując wiele MB z dysku). Po prostu obserwuj swoją czerwoną diodę LED aktywności dysku twardego - świeci więcej niż pozostaje wyłączony (dysk twardy działa naprawdę ciężko).

Teraz wyobraź sobie, że wszystkie te operacje zostały przekierowane na DODATKOWY RAMdisk (dodatkowa pamięć RAM, poza obszarem pamięci operacyjnej systemu, który pozostaje taki sam pod względem wielkości - maksimum).

  • W ten sposób działa 1000 razy szybciej (operacje RAM w porównaniu do HDD), więc czas zamiany staje się marginalny;
  • Twój dysk twardy działa znacznie mniej niż zwykle, robi się cicho, chłodzi, a jego żywotność znacznie się wydłuża.

Nie wierzę, że byłoby to bezcelowe z punktu widzenia wydajności, nie mówiąc już o niezawodności dysku twardego.

OK, większość komputerów zbudowanych w erze XP nie była oparta na płytach głównych zdolnych do obsługi więcej niż 4 GB pamięci RAM. Rozumiem więc, że jest niewielu facetów, którzy naprawdę dbają / potrzebują i rozumieją ten pomysł. Ale teraz...

WITAMY W Erze WIRTUALIZACJI! Coraz więcej z was ma szczęście, że posiada maszynę z dużą ilością pamięci RAM. Nowicjusz może skonfigurować swój system hosta, aby przypisał 4 GB do gościa w 32-bitowym systemie Windows i nadal ma dużo pamięci RAM. Byłoby więc bardzo cenne, aby wzbogacić go o 4 GB pamięci RAM, przypisanej do tego samego systemu-gościa, przeznaczonej dla pliku stronicowania bez żadnych kosztów pamięci RAM gościa!

Serwer, który nadzoruję, ma 12 GB. Zamiast kupować nowy system (64-2008 plus licencje CAL!), Mogłem przypisać 8 GB dla gościa - wirtualny 32-2003 i spróbować przetestować dyski RAM oprogramowania. Jednak nie ufam im, ponieważ wydają się być hackami i nie lubię ryzykować stabilności. Właśnie dlatego szukam rozwiązania, które przygotowałoby Linux Ramdisk mojego hosta jako urządzenie blokowe i sformatowało je do FAT lub NTFS, aby umożliwić akceptację dysku wirtualnego systemu gościa i umieścić na nim plik strony. Wierzę, że mój serwer zwiększy i zaoszczędzi wiele wysiłku na dysku.

Gdzie się mylę? Greetz!

Sławek
źródło
1
Dobra uwaga na temat wirtualizacji, ale bez wirtualizacji ramdysk nie pozwala na dostęp do większej ilości pamięci RAM, niż można normalnie rozwiązać. Bez PAE jest to około 3,5 GB, ale NT 4.0, win2k oraz wersje pro / server xp obsługują PAE, umożliwiając do 64 GB pamięci RAM. Biorąc pod uwagę, że możesz używać całego tego RAM-u, lepiej pozwolić systemowi używać go tak, jak uważa za stosowny, w tym do buforowania plików, zamiast przypisywać go do ramdysku, co ogranicza system do używania go tylko do przechowywania zamienionych stron prywatnych , który nie obejmuje plików programów i danych plików buforowanych.
psusi
To brzmi jak rant.
bwDraco - Przywróć Monikę
Jeśli system operacyjny zdecydował, że określony zestaw danych nie jest wart przechowywania w pamięci RAM, raczej umieszczenie go w pliku strony ... dlaczego uważasz, że masz wystarczającą ilość informacji, aby słusznie powiedzieć „nie, zachowaj go w pamięci RAM”, umieszczając plik strony na RAMdisk?
Jamie Hanrahan,
0

Jeśli chodzi o folder tymczasowy, przeniesienie go na ramdysk zwiększyłoby prędkość.

Należy jednak pamiętać:

  • utrata zasilania oznaczałaby utratę danych
  • nie każda aplikacja korzysta z folderu tymczasowego udostępnionego przez system Windows, niektóre używają własnego
  • jeśli w folderze tymczasowym zabraknie miejsca, aplikacje lub system Windows mogą ulec awarii
Keltari
źródło
0

Ramdyski są przydatne do takich rzeczy, jak szybka pamięć podręczna przeglądarki IE, Chrome i Firefox itp.
Umieszczenie pliku strony na ramdysku w 64-bitowym systemie jest bezużyteczne.

DisablePagingExecutive może lepiej spełniać te potrzeby. Ale umieszczenie pliku strony na ramdysku w 32-bitowym środowisku z ponad 4 GB pamięci RAM to ogromna poprawa. Jeśli jednak komputer jest procesorem jednordzeniowym (tylko jeden według menedżera zadań), nastąpi poprawa (nie pamiętam dokładnie, ile czasu minęło). Ale musisz również ustawić ClearPagefileAtShutdown, aby pozbyć się błędu przy następnym ponownym uruchomieniu, ponieważ pliku strony nie będzie.

Najlepszym zastosowaniem ramdysku, jaki mogę wymyślić, jest utworzenie kopii lustrzanej folderu plików programów (lub wybranie programów) w ramdysku.

Ben
źródło
DisablePagingExecutive wyłącza tylko stronicowanie organu wykonawczego . Nadal występuje wywoływanie wszystkiego innego, co normalnie byłoby stronicowane.
Jamie Hanrahan,