Dlaczego komputery powoli wracają ze stanu hibernacji?
22
Hibernacja ma wypisywać zawartość pamięci RAM na dysk, a powrót z hibernacji ma wypełnić pamięć RAM zapisaną zawartością. Dlaczego powrót z trybu hibernacji jest powolny, np. System ogólnie nie reaguje przez dłuższy czas?
Używam hibernacji na moim laptopie roboczym, ale aby go przyspieszyć, najpierw zamykam wszystkie moje aplikacje (za pomocą małego narzędzia o nazwie closeall ntwind.com/software/utilities/close-all.html )
Morgan T.
Odpowiedzi:
19
Główną przyczyną są dyskowe operacje we / wy. Odczytywanie i zapisywanie na dysku fizycznym jest znacznie wolniejsze niż z pamięci RAM. Gdy komputer wznawia pracę z dysku (hibernacji), musi również zasilać komponenty, co może powodować pewne spowolnienie. Zależy to w dużej mierze od komputera. Dysk SSD będzie miał prawie taką samą prędkość wznawiania z dysku jak z pamięci RAM. Niektóre komputery pozwalają na przesuwanie myszy, zanim pamięć RAM zostanie całkowicie zapełniona, co powoduje krótkie czasy reakcji.
Uwaga: Załóżmy, że masz 8 GB pamięci RAM i dysk SSD o przepustowości 400 MB / s. Nadal zajmie 8 * 1024 MB / 400 MB / s = 20,48 s. To nie jest ta sama prędkość, co wznawianie z pamięci RAM.
Zakładając, że przepustowość pamięci RAM wynosi 15 000 MB / s, czas wznowienia wynosi 0,55 sekundy.
Reading and writing to a physical disk is much slower than from RAM. Tak, ale czytanie jest szybsze niż pisanie, więc dlaczego odczytanie dysku twardego zajęłoby o wiele więcej czasu niż zapisanie?
Synetech,
1
@Synetech to jest? Jeśli tylko odmierzasz czas hibernacji od wciśnięcia opcji do wygaszania ekranu (w przeciwieństwie do zatrzymania aktywności dysku), system operacyjny prawdopodobnie wygasa go wcześnie, więc wygląda na to, że się nie zatrzymał. Jeśli mierzysz wyłączenie za pomocą czasu IO, istnieje kilka możliwości. Za pomocą SDD sprawdziłbym, czy plik stronicowania jest pofragmentowany, ponieważ dyski SSD są szybsze w przypadkowych zapisach niż w losowych odczytach. W przeciwnym razie spekuluję, że dehibernate działa wolniej z powodu opóźnień w ponownym uruchomieniu niektórych komponentów sprzętowych, które zostały wyłączone nie z powodu wydajności IO.
Dan Neely
@ DanNeely, właściwie wiem, co masz na myśli. Często denerwuje mnie to, że po kliknięciu opcji Hibernacja ekran szybko się wyłącza, ale sam dysk wciąż drży przez dłuższy czas (często jeszcze minutę lub dwie). Jest to naprawdę denerwujące, ponieważ nie można po prostu podnieść laptopa i wrzucić go do torby, ponieważ dysk wciąż się kręci, a poruszanie się zwiększyłoby ryzyko wypadku głowy (lepsza jest gotowość do szybkiego wyłączenia). Wiem jednak także, co mówią entropowie; czasami wznowienie zajmuje dużo czasu (cóż, Windows wznawia się dość szybko, ale dioda LED dysku twardego pozostaje zapalona przez długi czas).
Synetech,
@Synetech to kolejny powód, aby życzyć sobie, aby dyski SSD były wystarczająco tanie, aby były uniwersalne.
Dan Neely
3
Podczas gdy pamięć RAM jest bardzo szybka, dysk twardy jest dokładnie odwrotny. Wyobraź sobie, że musisz skopiować zawartość pamięci RAM (około 16 GB) z dysku twardego. To 4 DVD. Widzieć?
To jest kompromis. Czy wyciągamy wszystko, co było w pamięci RAM przed hibernacją, z powrotem z dysku do pamięci RAM naraz, czy tylko trochę w razie potrzeby?
Wszyscy wiemy, że odczyt sektora z obracającego się dysku zajmuje praktycznie tyle samo czasu, co zapisanie tego sektora na tym samym obracającym się dysku - czas wyszukiwania + obrotu. Możemy więc oczekiwać, że zapis informacji z pamięci RAM na dysk (w trybie hibernacji) zajmie mniej więcej tyle samo czasu, co odczyt tej samej pamięci RAM z dysku (wznowienie po hibernacji). Ale tak się nie dzieje z powodu stronicowania popytu.
Gdyby system operacyjny wciągnął wszystko naraz, wznowienie pracy ze stanu hibernacji zajęłoby dziesiątki sekund, ale potem działałoby tak samo, jakbyś nigdy nie hibernował.
Programiści systemów operacyjnych zazwyczaj wybierają stronicowanie na żądanie . Innymi słowy, system operacyjny pobiera tylko trochę z dysku, w razie potrzeby. Ma to tę zaletę, że wznowienie działania po hibernacji zajmuje znacznie mniej czasu, zanim zacznie reagować na klawiaturę i kliknięcia myszą. Z drugiej strony, gdy używasz czegoś po raz pierwszy po hibernacji, występuje niewielkie, ale zauważalne opóźnienie, kiedy system operacyjny wreszcie się załaduje. Dzieje się tak nawet wtedy, gdy „za pierwszym razem” używasz czegoś, może to nastąpić kilka minut po hibernacji. Tak więc po wznowieniu ze stanu hibernacji (tj. Po zobaczeniu ekranu, który wydaje się mniej więcej identyczny z ekranem tuż przed hibernacją), praca z maszyną może przez chwilę wydawać się powolna.
Jak wskazał Synetech, w grę wchodzi również ludzka psychologia: Ponieważ ekran wyłącza się na początku hibernacji, wygląda na to, że szybko się wyłącza. A użytkownik może od razu kontynuować cokolwiek innego, co chcesz zrobić. Ale po wznowieniu hibernacji użytkownik próbuje coś zrobić, a małe opóźnienia są denerwujące, ponieważ przeszkadzają w tym, co użytkownik próbuje zrobić.
Wiem co masz na myśli. Rzeczywiście wydaje się, że dioda HDD miga przez długi czas po wznowieniu ze stanu hibernacji.
Podano rozsądne wyjaśnienia dotyczące opóźnień spowodowanych uruchomieniem sprzętu (i przyspieszeniem sterownika?) I fragmentacją (zauważysz, że system świeżo po fabryce generalnie hibernuje i wznawia dość szybko, podczas gdy system używany od pewnego czasu będzie bądź o wiele wolniejszy). Istnieje kilka dodatkowych wyjaśnień tego zachowania.
Po hibernacji system Windows opróżnia pamięć RAM z napędu. Pomimo wysokich prędkości odczytu pamięci RAM i zapisu na dysk (nawet przy defragmentowanym pliku hibernacji na dużym, pustym dysku), zapisywanie kilku gigabajtów wciąż trwa dość długo (zauważysz, że hibernacja i wznawianie działania systemu z małą ilością pamięci RAM jest zdecydowanie szybki). Ekran szybko gaśnie, ale napęd (i płyta główna, wentylatory itp.) Działają jeszcze przez chwilę, dopóki nie zakończy opróżniania pamięci RAM z dysku. (Pamiętaj, aby nie rzucać laptopem z dyskiem twardym, dopóki nie zakończy się i całkowicie nie wyłączysz napędu).
Możesz wykonać kilka eksperymentalnych testów, aby zmierzyć czas, jaki upływa od kliknięcia hibernacji do wyłączenia zasilania systemu, oraz czas, jaki upływa od momentu wyświetlenia ekranu Wznawianie systemu Windows do momentu przestania migania diody HDD. Prawdopodobnie będą w przybliżeniu równe. (System Windows próbuje sprawić, by wyglądało na to, że bardzo szybko wznawia hibernację, pisząc, a następnie czytając jądro i inne rzeczy do pliku hibernacji, aby mógł natychmiast wrócić do pracy i działać, a następnie kontynuować ładowanie reszty w w tle i w razie potrzeby, dopóki wszystko nie zostanie wznowione - możesz zobaczyć to zachowanie w akcji, ponieważ ekran logowania jest wyświetlany bardzo szybko).
Dlaczego więc wydaje się, że wznowienie trwa dłużej? Istnieją dwa wyjaśnienia tego.
To jest psychologiczne . Jak zauważył Dan, ponieważ ekran wyłącza się natychmiast po hibernacji, wygląda na to, że szybko się wyłącza, podczas gdy widzisz cały proces wznawiania (otwieranie ekranu i miganie diody HDD).
To stronicowanie. Ponieważ większość ludzi używa hibernacji zamiast zamykania systemu, ponieważ chcą uniknąć wychodzenia z programów i takich, aby mogli zacząć od miejsca, w którym zostały przerwane, oznacza to, że po wznowieniu działania systemu Windows działa już wiele programów, które już zużywają pamięć. Ponieważ od ostatniego sprawdzenia menedżera pamięci systemu Windows w systemie minęło sporo czasu, prawdopodobnie skończy się to zamianą pamięci, ponieważ z jego perspektywy niektóre programy były nieaktywne przez pewien czas, a inne uaktywniać się. Ta zamiana oczywiście zajmuje trochę czasu i przez pewien czas napędza dysk.
Wynik końcowy to prawdopodobnie kombinacja czynników i interakcji między aktywacją sprzętu, stronicowaniem, psychologią i fragmentacją.
Jeśli masz na to ochotę, możesz definitywnie dowiedzieć się (przynajmniej w swoim systemie), co jest wąskim gardłem, wykonując kilka prostych testów, takich jak monitorowanie procesu / dysku przy użyciu Monitora procesów podczas hibernacji i wznawiania systemu Windows, aby zobaczyć, czy to wszystko thrashing jest spowodowany dostępem do hiberfil.syslub pagefile.sys.
Odpowiedzi:
Główną przyczyną są dyskowe operacje we / wy. Odczytywanie i zapisywanie na dysku fizycznym jest znacznie wolniejsze niż z pamięci RAM. Gdy komputer wznawia pracę z dysku (hibernacji), musi również zasilać komponenty, co może powodować pewne spowolnienie. Zależy to w dużej mierze od komputera. Dysk SSD będzie miał prawie taką samą prędkość wznawiania z dysku jak z pamięci RAM. Niektóre komputery pozwalają na przesuwanie myszy, zanim pamięć RAM zostanie całkowicie zapełniona, co powoduje krótkie czasy reakcji.
Uwaga: Załóżmy, że masz 8 GB pamięci RAM i dysk SSD o przepustowości 400 MB / s. Nadal zajmie 8 * 1024 MB / 400 MB / s = 20,48 s. To nie jest ta sama prędkość, co wznawianie z pamięci RAM.
Zakładając, że przepustowość pamięci RAM wynosi 15 000 MB / s, czas wznowienia wynosi 0,55 sekundy.
źródło
Reading and writing to a physical disk is much slower than from RAM.
Tak, ale czytanie jest szybsze niż pisanie, więc dlaczego odczytanie dysku twardego zajęłoby o wiele więcej czasu niż zapisanie?Podczas gdy pamięć RAM jest bardzo szybka, dysk twardy jest dokładnie odwrotny. Wyobraź sobie, że musisz skopiować zawartość pamięci RAM (około 16 GB) z dysku twardego. To 4 DVD. Widzieć?
źródło
To jest kompromis. Czy wyciągamy wszystko, co było w pamięci RAM przed hibernacją, z powrotem z dysku do pamięci RAM naraz, czy tylko trochę w razie potrzeby?
Wszyscy wiemy, że odczyt sektora z obracającego się dysku zajmuje praktycznie tyle samo czasu, co zapisanie tego sektora na tym samym obracającym się dysku - czas wyszukiwania + obrotu. Możemy więc oczekiwać, że zapis informacji z pamięci RAM na dysk (w trybie hibernacji) zajmie mniej więcej tyle samo czasu, co odczyt tej samej pamięci RAM z dysku (wznowienie po hibernacji). Ale tak się nie dzieje z powodu stronicowania popytu.
Gdyby system operacyjny wciągnął wszystko naraz, wznowienie pracy ze stanu hibernacji zajęłoby dziesiątki sekund, ale potem działałoby tak samo, jakbyś nigdy nie hibernował.
Programiści systemów operacyjnych zazwyczaj wybierają stronicowanie na żądanie . Innymi słowy, system operacyjny pobiera tylko trochę z dysku, w razie potrzeby. Ma to tę zaletę, że wznowienie działania po hibernacji zajmuje znacznie mniej czasu, zanim zacznie reagować na klawiaturę i kliknięcia myszą. Z drugiej strony, gdy używasz czegoś po raz pierwszy po hibernacji, występuje niewielkie, ale zauważalne opóźnienie, kiedy system operacyjny wreszcie się załaduje. Dzieje się tak nawet wtedy, gdy „za pierwszym razem” używasz czegoś, może to nastąpić kilka minut po hibernacji. Tak więc po wznowieniu ze stanu hibernacji (tj. Po zobaczeniu ekranu, który wydaje się mniej więcej identyczny z ekranem tuż przed hibernacją), praca z maszyną może przez chwilę wydawać się powolna.
Jak wskazał Synetech, w grę wchodzi również ludzka psychologia: Ponieważ ekran wyłącza się na początku hibernacji, wygląda na to, że szybko się wyłącza. A użytkownik może od razu kontynuować cokolwiek innego, co chcesz zrobić. Ale po wznowieniu hibernacji użytkownik próbuje coś zrobić, a małe opóźnienia są denerwujące, ponieważ przeszkadzają w tym, co użytkownik próbuje zrobić.
źródło
Wiem co masz na myśli. Rzeczywiście wydaje się, że dioda HDD miga przez długi czas po wznowieniu ze stanu hibernacji.
Podano rozsądne wyjaśnienia dotyczące opóźnień spowodowanych uruchomieniem sprzętu (i przyspieszeniem sterownika?) I fragmentacją (zauważysz, że system świeżo po fabryce generalnie hibernuje i wznawia dość szybko, podczas gdy system używany od pewnego czasu będzie bądź o wiele wolniejszy). Istnieje kilka dodatkowych wyjaśnień tego zachowania.
Po hibernacji system Windows opróżnia pamięć RAM z napędu. Pomimo wysokich prędkości odczytu pamięci RAM i zapisu na dysk (nawet przy defragmentowanym pliku hibernacji na dużym, pustym dysku), zapisywanie kilku gigabajtów wciąż trwa dość długo (zauważysz, że hibernacja i wznawianie działania systemu z małą ilością pamięci RAM jest zdecydowanie szybki). Ekran szybko gaśnie, ale napęd (i płyta główna, wentylatory itp.) Działają jeszcze przez chwilę, dopóki nie zakończy opróżniania pamięci RAM z dysku. (Pamiętaj, aby nie rzucać laptopem z dyskiem twardym, dopóki nie zakończy się i całkowicie nie wyłączysz napędu).
Możesz wykonać kilka eksperymentalnych testów, aby zmierzyć czas, jaki upływa od kliknięcia hibernacji do wyłączenia zasilania systemu, oraz czas, jaki upływa od momentu wyświetlenia ekranu Wznawianie systemu Windows do momentu przestania migania diody HDD. Prawdopodobnie będą w przybliżeniu równe. (System Windows próbuje sprawić, by wyglądało na to, że bardzo szybko wznawia hibernację, pisząc, a następnie czytając jądro i inne rzeczy do pliku hibernacji, aby mógł natychmiast wrócić do pracy i działać, a następnie kontynuować ładowanie reszty w w tle i w razie potrzeby, dopóki wszystko nie zostanie wznowione - możesz zobaczyć to zachowanie w akcji, ponieważ ekran logowania jest wyświetlany bardzo szybko).
Dlaczego więc wydaje się, że wznowienie trwa dłużej? Istnieją dwa wyjaśnienia tego.
To jest psychologiczne . Jak zauważył Dan, ponieważ ekran wyłącza się natychmiast po hibernacji, wygląda na to, że szybko się wyłącza, podczas gdy widzisz cały proces wznawiania (otwieranie ekranu i miganie diody HDD).
To stronicowanie. Ponieważ większość ludzi używa hibernacji zamiast zamykania systemu, ponieważ chcą uniknąć wychodzenia z programów i takich, aby mogli zacząć od miejsca, w którym zostały przerwane, oznacza to, że po wznowieniu działania systemu Windows działa już wiele programów, które już zużywają pamięć. Ponieważ od ostatniego sprawdzenia menedżera pamięci systemu Windows w systemie minęło sporo czasu, prawdopodobnie skończy się to zamianą pamięci, ponieważ z jego perspektywy niektóre programy były nieaktywne przez pewien czas, a inne uaktywniać się. Ta zamiana oczywiście zajmuje trochę czasu i przez pewien czas napędza dysk.
Wynik końcowy to prawdopodobnie kombinacja czynników i interakcji między aktywacją sprzętu, stronicowaniem, psychologią i fragmentacją.
Jeśli masz na to ochotę, możesz definitywnie dowiedzieć się (przynajmniej w swoim systemie), co jest wąskim gardłem, wykonując kilka prostych testów, takich jak monitorowanie procesu / dysku przy użyciu Monitora procesów podczas hibernacji i wznawiania systemu Windows, aby zobaczyć, czy to wszystko thrashing jest spowodowany dostępem do
hiberfil.sys
lubpagefile.sys
.źródło