Virtuaalimuisti loppuu pelatessa kesken?

Liittynyt
10.04.2017
Viestejä
555
Tuli ongelma mihin ei oo mitään aikaisempaa kokemusta. Kun pelaan ja samaan aikaan selain + pari muuta taustasovellusta päällä, peli kaatuu. Katsoin HWinfosta ja siellä näkyy virtuaalimuistin kuormitus 99,9%, myös selaimeen tulee ilmoitus virtuaalimuistin loppumisesta. Koskaan aikaisemmin ei oo tällä koneella ollut kyseistä ongelmaa.

Koneessa 32GB RAM ja siitä käytössä pelatessa noin 12,5GB

i9-10900K
RTX 4070Ti
Win11
 
Viimeksi muokattu:
Jos olet muuttanut sen virtuaalimuistin kiinteän kokoiseksi, niin vaihda se oletusarvoon (windows päättää). Tuolla kiinteällä koolla ei tee enää mitään ssd levyillä
 
Näköjään se oli kiinteäksi muutettu, ei kyllä mitään muistikuvaa että olisin koskaan noita muutellut. Ei ollut oikestaan käsitystä edes että mikä tää koko virtuaalimuisti on mutta nyt sen käsitin googletuksen jälkeen että jos ram muisti loppuu niin sit käytetään tätä levylle asetettua muistitilaa. Kun pelailin äsken niin hwinfon mukaan ram muisti ei kuitenkaan ollut missään vaiheessa käynyt yli tuota 12.5GB, eli jotain sellasta on tapahtunut jota en vielä ihan ymmärrä.
 
Näköjään se oli kiinteäksi muutettu, ei kyllä mitään muistikuvaa että olisin koskaan noita muutellut. Ei ollut oikestaan käsitystä edes että mikä tää koko virtuaalimuisti on mutta nyt sen käsitin googletuksen jälkeen että jos ram muisti loppuu niin sit käytetään tätä levylle asetettua muistitilaa. Kun pelailin äsken niin hwinfon mukaan ram muisti ei kuitenkaan ollut missään vaiheessa käynyt yli tuota 12.5GB, eli jotain sellasta on tapahtunut jota en vielä ihan ymmärrä.
Aikoinaan virtuaalimuistilla oli paljon isompi merkitys kuin nykyisten tietokoneiden kanssa, nykyään kun keskusmuistia saa laitettua niin paljon. Ennen saattoi olla esim. 256 MB:n verran keskusmuistia, nykyään 32 tai 64 GB ei ole mitenkään kauhean hurja määrä. 256 GB:n verran keskusmuistia rupeaa olemaan jo aika paljon, puhumattakaan isommista määristä.
 
Näköjään se oli kiinteäksi muutettu, ei kyllä mitään muistikuvaa että olisin koskaan noita muutellut. Ei ollut oikestaan käsitystä edes että mikä tää koko virtuaalimuisti on mutta nyt sen käsitin googletuksen jälkeen että jos ram muisti loppuu niin sit käytetään tätä levylle asetettua muistitilaa. Kun pelailin äsken niin hwinfon mukaan ram muisti ei kuitenkaan ollut missään vaiheessa käynyt yli tuota 12.5GB, eli jotain sellasta on tapahtunut jota en vielä ihan ymmärrä.
Windows on joka tapauksessa rakennettu niin, että se toimii parhaiten, jos sitä virtuaalia on riittävästi saatavilla vaikka se oikea muisti ei olisi edes täynnä. Siksi tuo kiinteä koko on omaan jalkaan ampumista. Se kiinteä koko oli tarpeen mekaanisilla levyillä, joissa sen tiedoston sai defragattua toimimaan mahdollisimman nopeasti. Tuota ei enää tarvita ssd levyillä joten sitä muutosta ei pidä enää tehdä
 
Kerron nyt vaikka kukaan ei halua tietää että jo muinoin jotkin pelit kuten Unreal vaativat määrätyn verran virtuaalimuistia. Eli vaikka muistia oli miten paljon vapaana niin se ei auttanut kun peli halusi hieman sitä virtuaalia.
 
Näköjään se oli kiinteäksi muutettu, ei kyllä mitään muistikuvaa että olisin koskaan noita muutellut. Ei ollut oikestaan käsitystä edes että mikä tää koko virtuaalimuisti on mutta nyt sen käsitin googletuksen jälkeen että jos ram muisti loppuu niin sit käytetään tätä levylle asetettua muistitilaa. Kun pelailin äsken niin hwinfon mukaan ram muisti ei kuitenkaan ollut missään vaiheessa käynyt yli tuota 12.5GB, eli jotain sellasta on tapahtunut jota en vielä ihan ymmärrä.

Nykyaikaisissa käyttiksissä ohjelmat näkevät ainoastaan virtuaalisia muistiosoitteita, ei ollenkaan oikeita fyysisiä muistiosoitteita. Ja muistinhallinta toimii sivuperiaatteella, tyypillisesti neljän kilotavun sivu kerrallaan.

Käyttöjärjestelmä päättää, miten virtuaaliset osoitteet mäpätään fyysiseen muistiin, ja kertoo sen prosessorille. Muistiaccessia tehdessä prosessorin muistinhallintayksikkö muuttaa virtuaaliset osoitteet fyysisiksi osoitteiksi. Ja monta virtuaalista osoitetta voi osoittaa samaan fyysiseen osoitteeseen.

Ja virtuaalimuistisivun osoite voidaan merkata myös että se ei osoita mihinkään fyysiseen osoitteeseen, jolloin sitä käyttäessä kontrolli menee käyttöjärjestelmälle. Tällä mahdollistetaan se, että vähemmän käytettyä osia ohjelman muistista voidaan heittää käyttöjärjestelmän toimesta fyysisestä muistista pihalle kovalevylle "swapfileeseen", ja jos tätä dataa yritetään uudestaan käyttää, käyttöjärjestelmä sitten lataa sen levyltä takaisin fyysiseen muistiin (ja heittää jotain muuta pihalle fyysisestä muistista levylle sen tieltä)

Ja muistin varaamisesta:

Kun ohjelma pyytää muistia, sitä muistia ei heti fyysisesti varata, vaan se ohjelmalle annettu muisti mäpätään "nollasivuun" joka on täynnä nollia; sitä voi vapaasti lukea ja luku antaa aina nollan.
Ja monta eri virtuaalista ohjelman (jopa eri ohjelmien) muistisivua voi kaikki viitata samaan neljän kilotavun nollasivuun, eli ohjelmat voivat olla varanneet megatavuittain tai jopa gigatavuittain muistia, mutta jos ne eivät käytä sitä, ne kaikki viittaavat saman 4 kilotavun nollasivuun, fyysistä muistia kuluu näihin kaikkiin yhteensä vain 4 kilotavua. (*)

Vasta kun ohjelma oikeasti kirjoittaa siihen muistiin mitä se on varannut, käyttöjärjestelmä oikeasti varaa sen fyysisen muistin ja muuttaa sen muistisivun mäppäyksen pois nollasivulta, sille juuri varatulle sivulle.

Mutta: kun muistia varataan ohjelman toimesta, ja varattu muisti mäpätään nollasivulle, Windows tarkastaa että järjestelmässä riittää jonkinlainen talletustila (fyysinen RAM-muisti + kovalevyn swapfile) siihen, että JOS kaikki nollasivulle mapattu muisti pitäisikin mäpätä muualle, se pystyttäisiin tekemään.

Eli windowsissa voi olla tilanne, että meillä on vaikka 16 GiB fyysistä muistia + 8 gigaa swapfileä, ja fyysistä muistia on oikeasti käytössä vaikka vain 12 GiB mutta jos yritetään varata toiset >12 GiB muistia eikä käytetä sitä mihinkään, käytössä olevan fyysisen muistin määrä ei nouse yli 12 gigan, mutta muistinvaraus epäonnistuu, koska windows ei anna varata yli 24 gigaa muistia kokonaisuudessaan kun systeemissä on vain 24 gigaa kokonaisuudessaan muistitilaa.

Käsittääkseni Linuxissa oletuksena ei ole samanlaista tarkastusta kuin windowsissa, vaan Linux oletuksena antaa varata enemmän muistia kuin mitä järjestelmässä on, ja jos se sitten oikeasti loppuu kesken, Linux alkaa tappaa eniten muistia kuluttavia ohjelmia.


Mutta näköjään linuxistakin tuon "overcommitin" saa pois päältä jolloin se käyttäytyy kuten Windows tuon suhteen


(*) Oikeasti sitä muistia kuluu hiukan enemmän, sivutauluihin eli kirjanpitodataan joilla nämä mäppäykset muodostetaan.
 
Viimeksi muokattu:
Eli windowsissa voi olla tilanne, että meillä on vaikka 16 GiB fyysistä muistia + 8 gigaa swapfileä, ja fyysistä muistia on oikeasti käytössä vaikka vain 12 GiB mutta jos yritetään varata toiset >12 GiB muistia eikä käytetä sitä mihinkään, käytössä olevan fyysisen muistin määrä ei nouse yli 12 gigan, mutta muistinvaraus epäonnistuu, koska windows ei anna varata yli 24 gigaa muistia kokonaisuudessaan kun systeemissä on vain 24 gigaa kokonaisuudessaan muistitilaa.
Okei tää (koko vastaus) selvensi paljon ja nyt kun mietin niin oon luultavasti kuullut aikaisemmin tuosta muistin varaamisesta mutten oo kiinnittänyt sen enempää huomiota.
 
Ei ollut oikestaan käsitystä edes että mikä tää koko virtuaalimuisti on mutta nyt sen käsitin googletuksen jälkeen että jos ram muisti loppuu niin sit käytetään tätä levylle asetettua muistitilaa.

Näin oli joskus Win9x aikana. Nykyään asia on monimutkaisempi, ja toisaalta modernin muistinhallinnan nyassien selittäminen on hankalaa tavallisille käyttäjille.

Sen sijaan tuo Nerkoonin mainitsema neuvo on mitä kaikkien kannattaa ja pitää noudattaa.


Requiem ja osin Hkultalan mainitsema vaatimus kiinteälle määrällä on erityisessä tilanteissa totta. Esim. mainaussoftat vaativat riittävän suuren määrän virtuaalimuistia, vaikkeivat ne edes käyttäneet sitä. Jos ne olisivat koodattu hieman eri tavalla ne olisivat toimineet virtuaalimuistin automaattisen säädön kanssa, tai mahdollisesti ilman sitä koska ne tosiasiallisesti käyttivät näytönohjainten muistia.

Ne jotka käyttävät ohjelmia jotka vaativat kiinteän määrän toimiakseen, hyvin luultavasti osaavat säätää kiinteäksi määräksi sellaisen joka toimii aina. Itsellä on tällä hetkellä kooksi määritelty 10 GB- 27GB. Kaikille muille automaattinen säätö on paras.
 
Tää ongelma näyttää olevan edelleen olemassa, eli tuon virtuaalimuistin käyttö suurenee sitä mukaa mitä pidempään kone on päällä. Mulla on sivutiedosto asetettu C: asemalle niin että järjestelmä määrittää koon, tällä hetkellä koko näyttää olevan 28672 Mt. Tein eilen virus-skannauksen Malwarebytesillä siltä varalta ettei joku kryptolouhinta virus oo koneella sekä windowsin skannaus joka korjas jotain tiedostoja.
 
Tää ongelma näyttää olevan edelleen olemassa, eli tuon virtuaalimuistin käyttö suurenee sitä mukaa mitä pidempään kone on päällä. Mulla on sivutiedosto asetettu C: asemalle niin että järjestelmä määrittää koon, tällä hetkellä koko näyttää olevan 28672 Mt. Tein eilen virus-skannauksen Malwarebytesillä siltä varalta ettei joku kryptolouhinta virus oo koneella sekä windowsin skannaus joka korjas jotain tiedostoja.
Voi olla, että joku softa vuotaa muistia joka näkyisi juuri suurena muistinkäyttönä. Jos katsot tuossa vaiheessa prosessien hallinnasta ohjelmien muistinkulutuksen, niin onko siellä jotain softia jotka vievät poikkeuksellisen paljon muistia?
 
Voi olla, että joku softa vuotaa muistia joka näkyisi juuri suurena muistinkäyttönä. Jos katsot tuossa vaiheessa prosessien hallinnasta ohjelmien muistinkulutuksen, niin onko siellä jotain softia jotka vievät poikkeuksellisen paljon muistia?
Mun mielestä siellä ei näkynyt mitään erikoista muistinkäyttöä millekkään sovellukselle. Täytyy nyt odottaa että muisti loppuu taas kesken ja tarkistaa sitten uudelleen. Huomasin muuten että printscreen toiminto ei toimi HWInfo64 ikkunassa eikä myöskään tehtävienhallinta ikkunaan, luultavasti joku win11 ominaisuus koska win10 pystyi ottamaan noistakin kuvakaappauksia.
 
Huomasin muuten että printscreen toiminto ei toimi HWInfo64 ikkunassa eikä myöskään tehtävienhallinta ikkunaan, luultavasti joku win11 ominaisuus koska win10 pystyi ottamaan noistakin kuvakaappauksia.
Windows Key + Shift + S ja valitse alue taikka ota koko ruudusta...
 
Näyttökuva 2023-12-25 030218.png


Tuossa näkyy nyt Hwinfo64 sekä tehtävienhallinta ikkunat. Tehtävienhallinnassa kaikki näyttää olevan normaalisti mutta hwinfo näyttää tuon virtuaalimuistin joka vetää limitillä. Tuo tuli kesken nettiselailun Chromen selaimella joka kaatui, saman tehnyt myös Braven selaimella. Boottaus ja kaikki on taas kunnossa noin 4-8h ajan.

Pitäisköhän vaan tehdä windowsiin uus puhdas asennus?
 
Näyttökuva 2023-12-25 030218.png


Tuossa näkyy nyt Hwinfo64 sekä tehtävienhallinta ikkunat. Tehtävienhallinnassa kaikki näyttää olevan normaalisti mutta hwinfo näyttää tuon virtuaalimuistin joka vetää limitillä. Tuo tuli kesken nettiselailun Chromen selaimella joka kaatui, saman tehnyt myös Braven selaimella. Boottaus ja kaikki on taas kunnossa noin 4-8h ajan.

Pitäisköhän vaan tehdä windowsiin uus puhdas asennus?

Mitä sanoo jos avaat Suorituskyky -välilehden ja sieltä Muisti? Ota tuosta vaikka kuva.
 
Näyttökuva 2023-12-26 115822.png


Ongelma on luultavasti tuo valmiustila, eli keskimmäinen suurin palkki? Seurasin eilen sitä ja se vei välillä kokonaan tuon vapaan tilan.
 
Jos ihan suoraan sanotaan, niin 30 gigan swappi ei minusta kyllä ole mikään ongelma ellei sitten ole saituuksissaan mennyt ostamaan aivan liian pientä kovalevyä. Muistelen, että jos koneeseen on jostain syystä laitettava kiinteän kokoinen swappi, niin sen koko on 3x muistin määrä ja tuo ei ole lähelläkään sitä.
 
Jos ihan suoraan sanotaan, niin 30 gigan swappi ei minusta kyllä ole mikään ongelma ellei sitten ole saituuksissaan mennyt ostamaan aivan liian pientä kovalevyä. Muistelen, että jos koneeseen on jostain syystä laitettava kiinteän kokoinen swappi, niin sen koko on 3x muistin määrä ja tuo ei ole lähelläkään sitä.
Ongelma oli siis että virtuaalimuistin tila loppuu kesken vaikkei oo kiinteää tilaa enää käytössä. SSD levyllä vapaata tilaa noin 150GB ja silti sovellukset kaatuilee.

Koska konetta ei voinut käyttää niin tein puhtaan windows asennuksen toiselle levylle ja nyt ei ongelmaa enää näytä olevan.
 

Uusimmat viestit

Statistiikka

Viestiketjuista
267 217
Viestejä
4 622 076
Jäsenet
76 002
Uusin jäsen
Veba

Hinta.fi

Back
Ylös Bottom