Skocz do zawartości

Błędy związane z pamięcią RAM...


Rekomendowane odpowiedzi

Problem jest dość stary jednak ciągle aktualny...bardzo często występuje w modach... N Soljanka, DMX...poniższe rozwiązania występują również w problemach technicznych nowego moda SGM 2.1

Błędy związane z pamięcią RAM...

Pojawiają się gdy Menager Pamięci OS WINDOWS nie daje rady wydzielić odpowiedniej ilości pamięci w przydzielonej dla procesu puli stronicowania. Po uruchomieniu, proces (program) otrzymuje od systemu operacyjnego jedną lub więcej pul dostępnej pamięci możliwej do dowolnego wykorzystania. W zależności od przyjętej konstrukcji obszar nazywany jest stertą, lub stosem. W trakcie działania program może zażądać od systemu operacyjnego większej ilości pamięci, lub też zwolnić niepotrzebny obszar.

Wypad «Not enough storage is available to process this command» ,..po naszemu znaczy to «Brak wystarczającej ilości zasobów dla wykonania tego polecenia».

Aby pokonać problem, należy:

1. Zwiększyć wielkość dostępnej puli pamięci przydzielonej dla danego procesu.

2. Zmniejszyć poziom zapełnienia puli, od którego Menager pamięci zacznie obcinać pamięć.

Przepełnienie stosu ( jest to jeden z rodzajów przepełnienia bufora) - występuje, gdy rozmiar stosu przekroczy ilość pamięci zarezerwowanej dla niego. Maksymalny rozmiar stosu jest zwykle ograniczony, ustalany na początku działania programu i zależy od języka programowania, komputera i ilości dostępnej pamięci, najczęściej jest rzędu 1 MB. Skutkiem przepełnienia stosu, gdy nie przygotowano programu na tę okoliczność jest nagłe przerwanie jego działania. W praktyce widzimy to jako wylot z błędem opisanym ..brak wystarczających zasobów itd.

Dla rozwiązania problemu zalecamy:

(idź do «Start >«Uruchom...»)

Uruchom REGEDIT (Edytor rejestru).

Idź do adresu: HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet ControlSession Manager Memory Management

a...Ustaw maksymalny rozmiar puli na 4 GB.

"PagedPoolSize"=dword:ffffffff

Ustawienie wartości PagedPoolSize równej 0xFFFFFFFF powoduje przydzielenie komputerowi maksymalnej puli stronicowania zamiast innych zasobów.

b...Ustaw odcinanie przydziału pamięci przy zapełnieniu puli na 40 %. (Domyślnie jest 80%). Poniżej dodaj nową wartość ...

"PoolUsageMaximum"=dword:00000028

Ustawienie wartości X informuje Menedżer pamięci, że ma rozpoczynać proces obcinania przydziału pamięci po osiągnięciu X % wartości PagedPoolMax. Wielkość 80% jest ustawieniem domyślnym. Jeśli próg 60% nie wystarcza do obsługi nagłych wzrostów aktywności, zmniejsz to ustawienie do 50% lub 40%

Restart systemu. Problem powinien zniknąć.

Wniosek..Widzimy tutaj jak ważna jest ilość uruchomionych procesów w tle i jak wpływają one na dostępność pamięci RAM podczas pracy systemu.

Wypad «Out of Memory . Memory request: …… K».

Za mało pamięci. Zapytanie o pamięć: ….

Tu najważniejsze jest zrozumieć, że 32-bitowy Windows wydziela dla każdego procesu (a uruchomienie Stalkera to też proces) tylko 2 GB pamięci. I ani bajta więcej, nawet jeśli masz w komputerze włożone 8 GB RAM.

Natomiast 64-bitowy Windows wydziela dla każdego procesu tyle pamięci, «ile procesowi potrzebne».

Są dwa sposoby rozwiązania problemu:

1. Jeśli masz w komputerze tylko 2 GB RAM.

Obniż nastawienia renderowania grafiki aż do statycznego. Zmniejsz gęstość trawy, jakość cieni i t.d. aż do minimum. Jeśli nie pomoże, wyłączaj wszystkie nastawienia gry (udźwiekowienie, atmosferę, muzykę, anomalie, miny i t.d. Jeśli i to nie pomaga, to pozostaje iść do sklepu i dokupić pamięci RAM.

2. Masz w komputerze 4 GB pamięci RAM lub więcej.

a) Zainstaluj 64-bitowy Windows.

b) «Zmuś» 32-bitowy Windows do przyznania każdemu procesowi nie 2, а 3 GB pamięci, kosztem zmniejszenia pamięci jądra( samego systemu, sterowników i t.d.).

Radzę uruchomić Menedżer zadań, przejść do zakładki «Wydajność» i spojrzeć na «Pamięć» . Jeśli jest mniej niż 1 GB, to zaczynamy działać. ( Jeśli więcej – usuń z pamięci wszystkie poboczne procesy oprócz jądra systemu oraz sterowników wideo i audio).

Oto przykładowy log wypadu...

[win32]: free[65320 K], reserved[98608 K], committed[1933160 K]
* [ D3D ]: textures[687435 K]
* [x-ray]: crt heap[454760 K], process heap[9774 K], game lua[60032 K], render[5882 K]
* [x-ray]: economy: strings[54097 K], smem[11933 K]
FATAL ERROR
[error]Expression : fatal error
[error]Function : out_of_memory_handler
[error]File : D:prog_repositorysourcestrunkxrCorexrDebugNew.cpp
[error]Line : 336
[error]Description :
[error]Arguments : Out of memory. Memory request: 3629 K

[win32]: free[65320 K], reserved[98608 K], committed[1933160 K]

Tutaj widać że...[ win32]: free[65320 K] – wolna pamięć 65,32МB, a pod proces już jest zajęte - committed[1933160 K]- 1,93 GB. Czyli wolnej pamięci praktycznie nie ma, bo jak pamiętamy proces dostał sztywno tylko 2 GB. Rozwiązujemy problem:

Windows XP 32 bit...

1. Na dysku systemowym znajdujemy i otwieramy w notatniku plik boot.ini. Plik jest systemowy, więc będzie ukryty, dlatego trzeba we własnościach plików właczyć pokazywanie plików systemowych.

2. Robimy kopię boot.ini: otwieramy plik boot.ini, wybieramy "Zapisz jako", nazwa pliku boot.ini.bak.

3. W oknie systemowym (idź do «Menu Start»->«Uruchom...» albo nacisnij Win+R) uruchom polecenie:

bootcfg /raw "/3GB /userva=2500" /A /ID 1

gdzie «1» - to numer konfiguracji w pliku boot.ini. Domyslnie jest tylko jedna konfiguracja.

Jesli jesteś doświadczonym uzytkownikiem, to możesz dodać parametry "/3GB /userva=2500"

bezpośrednio do pliku boot.ini przy pomocy edytora tekstu.

4. Po dodaniu nastawień trzeba koniecznie zresetować komputer.

Jeśli będą problemy z uruchomieniem systemu, trzeba wejść w tryb bezpiecznego uruchomienia i przywrócić

ustawienia z kopii bezpieczeństwa, po prostu zmienić nazwę pliku boot.ini.bak na boot.ini

Windows Vista/Seven 32bit...

1. Uruchamiamy okno poleceń (cmd.exe) z uprawnieniami administratora (prawym przyciskiem myszy na skrócie/uruchomienie z prawami admina). W oknie które się pojawi:

bcdedit /export "C:BCDBackup"

nacisnąć "enter"

bcdedit /set IncreaseUserVa 2500

nacisnąć "enter".

2. Zresetować komputer.

3. Uruchomić grę.

Jeśli system się nie uruchomił, trzeba wejść w tryb bezpiecznego uruchamiania i wypełnić pierwszy punkt wpisując w linii poleceń :

bcdedit /import "C:BCDBackup"

A oto log po wykonaniu opisanych wyżej operacji przy wyjściu z gry:

* [win32]: free[1197900 K], reserved[85456 K], committed[1862308 K]
Pod proces zajęte (committed[1862308 K]) 1,86 GB i jeszcze jest wolne 1,197GB.

Wszystko napisane powyżej ma charakter porad, a to znaczy, że nie jestem w stanie zajrzeć do komputera każdego użytkownika.

  • Dodatnia 1
Odnośnik do komentarza
Udostępnij na innych stronach

Wielkie dzięki Trurl3 jesteś niezastąpiony...

//

Większość opisów tyczy się OS 32 bit, mnie interesuje jednak pierwsza część dotycząca kluczy rejestru. Ponieważ szukałem trochę na temat tej zmiany, trafiłem na bardzo wiele pozytywnych opinii.

Znalazłem również taką w której gracz powołuje się na odpowiedź jaką dostał od CD- Project...a dotyczy gry Stalker...

Winowajcą mojego problemu jest OS Windows..a konkretnie złe zarządzanie pamięcią..należy w Memory Management dodać klucz...

PoolUsageMaximum REG_DWORD 0x00000028

PagedPoolSize zmienić na 0xffffffff

Wszystko działa bez problemów... system, gry, aplikacje. Sprawdź, na pewno nie zaszkodzi, a może pomóc.

Lekarstwo podaję za pomocą techniczną CD-Projekt

//

Dlaczego napisałem ten komentarz....grając w DMX na dość dobrej maszynie z 4 GB RAM i systemem 64 bit miałem wyloty z brakiem zasobów pamięci...

W systemie Win7 64 bit klucza takiego niema natomiast wartość PagedPoolSize wynosi..0x00000000 co oznacza, że pamięć przydzielana jest automatycznie.

Wiele uwag w sieci dotyczy się właśnie zmiany tego automatycznego przydzielania na 0xFFFFFFFF ..może więc warto spróbować.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

edytować wartość binarną ?? w kluczu PagedPoolSize i daną wartość wpisać 0000 FFFFFFFF

Nie całkiem tak...masz teraz klucz wartość 0x00000000 to zmieniasz na 0xFFFFFFFF..możesz zmienić i sprawdzić jak to działa. MOżna również dodać drugi klucz który wymusza 50% odcinania. Zmiana jest całkowicie odwracalna. Wystarczy przywrócić poprzednie wartości i restart.

Odnośnik do komentarza
Udostępnij na innych stronach

1. Jeśli masz w komputerze tylko 2 GB RAM.

Obniż nastawienia renderowania grafiki aż do statycznego. Zmniejsz gęstość trawy, jakość cieni i t.d. aż do minimum. Jeśli nie pomoże, wyłączaj wszystkie nastawienia gry (udźwiekowienie, atmosferę, muzykę, anomalie, miny i t.d. Jeśli i to nie pomaga, to pozostaje iść do sklepu i dokupić pamięci RAM.

Super poradnik. Gdybym to ja był wiedział pół roku temu...

Z mojej strony tylko taka mała uwaga:

Jeżeli takie błędy z wylotami z powodu braku pamięci nie zdarzają się co chwila i przypadkowo, ale zawsze w tym samym miejscu (u mnie na przykład w CoP na starym komputerze z 2GB RAM było to zawsze przy przejściu z podziemi Jupitera do Prypeci), to wtedy wystarczy zapisać grę przed "fatalnym miejscem", zmniejszyć jakość tekstur i detali do minimum (zazwyczaj nie trzeba nic ruszać w renderowaniu, oświetleniu, trawie, muzyce, itd.), a potem zrestartować grę i wczytać ponownie. Po wczytaniu można przywrócić sobie te ustawienia, które były poprzednio. Jeżeli natomiast wyloty następują w różnych miejscach i różnych sytuacjach - patrz cytat na górze tego posta :yes:

Odnośnik do komentarza
Udostępnij na innych stronach

a potem zrestartować grę i wczytać ponownie.

Właśnie dla takich sytuacji mniej więcej jest poradnik..restet gry i ponowne uruchomienie to nowy przydział wolnej pamięci do wykorzystania przez proces...tutaj dla systemu 32 bit bardzo przyda się nowy klucz, który przyśpiesza obcinanie RAM, oraz przydział 0xffffffff pełnej pamięci dla procesu.
Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

Witam panów. Mam wielkie problemy z tym modem. Mam Win7 32bit i jedyne 2GB RAM. Zrobiłem co tylko mogłem wg tego poradnika, ale gra nadal potrafi wywalić mnie do pulpitu nawet dwukrotnie będąc tylko na lokacji "Bar". Już detale mam na poziomie niskim, oświetlenie statyczne, rozdziałke z 1440x900 zmniejszyłem do 1280x960. antyaliasing itp wyłączone. Wgrałem dodatek "No Bump Map" (cos w ten deseń) Ostatnio przyszło mi do głowy że mod podmienia ogromną ilość oryginalnych tekstur na odpowiedniki lepsze jakościowo, co chyba zwiększa zużycie pamięci. Może znajdzie się odważny który zrobi patch który przywróci oryginalne tekstury do modyfikacji?

Odnośnik do komentarza
Udostępnij na innych stronach

To musiałby być ktoś naprawdę odważny :smile: A próbowałeś starego, dobrego sposobu na przypisanie aplikacji 3GB ram? Czytaj tu http://www.stalkerte...ze-w-stalker-a/ od akapitu Rozwiązanie problemu "Out of memory" w Soljance.

Ewentualnie jak maszyna nie wyrabia to pograj w czystą NS. DMX fabularnie nie wprowadza nic nowego, kilka nowych questów, ale to i tak kropla w morzu. Poza tym trochę tego, trochę tamtego, ale nic bez czego nie dało by się żyć :yes:

Edit: dobrze rozumiem, masz w komputerze tylko 2gb ram? Oj, to raczej nie pograsz nawet w czystą NS :no:

Odnośnik do komentarza
Udostępnij na innych stronach

Czystą Soljankę już skończyłem. DMX wziąłem bo go niektórzy chwalili i zobaczyłem że wprowadza ona kilka nowych lokacji. 3GB Ramu ustaliłem aplikacji jak grałem w NS, tam 2GB fizycznego RAMu nie sprawiało dużo problemów - spokojnie mozna było przejść z Kordonu do Radaru czy Prypeci bez wysypów odnośnie braku pamięci. Tutaj w DMX przejść bez wylotu z wysypiska do magazynów jest wyzwaniem :P

Odnośnik do komentarza
Udostępnij na innych stronach

Mam wielkie problemy z tym modem. Mam Win7 32bit i jedyne 2GB RAM.

Wszystkie poradniki tyczą się systemów które mają co najmniej 3 gb RAM w tym wypadku nic nie można osiągnąć...jedyne co jest do zrobienia to

1..wyłączyć procesy w tle by zyskać trochę pamięci

2..ustawić duży plik wymiany na sztywno tzn. wielkość min. max taka sama.

3..dokupić RAM i system 64 bit.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 miesięcy temu...

Jest jeszcze jeden trick, o którym nie znalazłem info na tym forum, a który po dodaniu trzeciego gigabajta pamięci przyniósł u mnie większą poprawę, niż wszystkie inne razem wzięte. Teraz już Solyanka z DMX i AA nie wywala z logiem Out Of Memory. Oto on:

System Windows XP wykorzystuje jedynie 80% dostępnej pamięci RAM. W tym poradniku pokazujemy jak zwiększyć ilość możliwych do wykorzystania MB przez Windows’a XP.

1. Klikamy w menu Start, następnie Uruchom…

2. W polu programu Uruchamianie wpisujemy regedit.exe i naciskamy klawisz Enter. Zostanie uruchomiony Edytor Rejestru.

3. Otwieramy następujące klucze HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ControlSession ManagerMemory Management

4. Będąc w ostatnim kluczu Memory Management klikamy prawym przyciskiem myszy w wpis NonPagedPoolSize i z menu wybieramy Modyfikuj.

5. W nowo otwartym okienku zaznaczamy opcję Dziesiętny i w polu Dane wartości wpisujemy odpowiednią liczbę, którą obliczamy ze wzoru: M x 1024 x RAM M – ilość pamięci ram w % do wykorzystania przez system; np. jeżeli chcemy korzystać z 99% pamięci RAM do wzoru podstawiamy 0,99, dla np. 90 % – 0,90 itd. Nie zaleca się wpisywania wartości 100% czyli 1. 1024 – jednostka w KB (nie zmieniamy tej liczby) RAM – ilość pamięci RAM komputera w MB. Dla przykładu; jeżeli chcemy wykorzytać 99% pamięci RAM w komputerze z zainstalowaną kością pamięci RAM o wielkości 2048 MB nasze obliczenia będą wyglądać następująco; 0,99 x 1024 x 2048 = 2051850,24 – w polu wpisujemy jedynie liczbę stojącą przed przecinkiem czyli 2051850 w tym przypadku.

Klikamy w OK, zamykamy Edytor Rejestru i ponownie uruchamiamy komputer. Ważne! Jeżeli korzystasz z komputera wraz z zintegrowaną grafiką np. laptop musisz odjąć od ilości zainstalowanej pamięci RAM w komputerze ilość pamięci, którą wykorzystuje karta graficzna.

Poradnik pochodzi ze strony pclive.pl

Jeśli w edytorze rejestru nie mamy wpisu NonPagedPoolSize, to trzeba go utworzyć i wpisać obliczoną wartość, jak podano wyżej. Najlepiej jest ustawić korzystanie z 95% pamięci.

Edytowane przez bolo7
  • Dodatnia 2
Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.