Kysymys:
Mitä eroa on todellisella, virtuaalisella, jaetulla ja yksityisellä muistilla?
Jacob Gorban
2010-08-18 01:35:08 UTC
view on stackexchange narkive permalink

Activity Monitorin eri sarakkeet ovat hieman hämmentäviä

Voi olla syytä huomata, että käytössä on viides muistityyppi, jos napsautat "Tarkasta" prosessissa verrattuna Activity Monitor -sarakkeisiin. Erityisesti on olemassa kahden tyyppisiä "virtuaalimuistia": "virtuaalimuistin koko" ja "virtuaalinen yksityinen muisti". Jälkimmäinen näkyy Activity Monitorin Virtuaalimuisti -sarakkeessa.
Kolme vastused:
#1
+50
Chealion
2010-08-18 01:49:04 UTC
view on stackexchange narkive permalink

Otettu vastauksestani osoitteessa Palvelimen vika:

Mac OS X -muistilauseke:

Langallinen : Tämä tarkoittaa ytimen koodi ja vastaava. Muisti, jota ei pitäisi koskaan siirtää RAM-muistista. Tunnetaan myös pysyvänä muistina.

Jaettu : Muisti, joka on jaettu kahden tai useamman prosessin välillä. Molemmat prosessit osoittavat tämän muistimäärän, joten se voi olla hieman harhaanjohtava siitä, kuinka paljon muistia todella on käytössä.

Todellinen : Tämä on "todellinen" muistin käyttö sovellus, jonka raportoi task_info () - karkea määrä nykyisen prosessin fyysisten sivujen lukumäärästä. (RSIZE)

Yksityinen : Tämä on muisti, jota prosessi käyttää yksinomaan ja jota käytetään asukkaiden muistissa. (RPRVT)

Virtuaalinen : Prosessin osoitetilan kokonaismäärä, joka on kartoitettu mihin tahansa - olipa kyse mielivaltaisesti suuresta muuttujien tai muun tilasta - se ei vastaa todellista VM-käyttö. (VSIZE)

Aktiivinen : Muisti on tällä hetkellä merkitty aktiiviseksi ja käyttää RAM-muistia.

Ei käytössä : "Passiivinen muisti ei ole sitä ei enää käytetä ja se on tallennettu välimuistiin levylle. Se pysyy RAM-muistissa, kunnes toinen sovellus tarvitsee tilaa. Tietojen jättäminen RAM-muistiin on eduksi, jos sinä (tai tietokoneesi asiakas) palaat niihin myöhemmin. " - Mac OS X -ohje

Ilmainen : Käytettävissä olevan RAM-muistin määrä ilman tietoja.


Paras tiedossa oleva dokumentaatio (ja minulla on ovat löytäneet seurantatutkimuksesta) on Applen oma Managing Memory -artikkeli kehittäjäsivustollaan.

Muita hyödyllisiä lähteitä: Darwin-dev-postituslista: [ 1], [ 2] ja vanha artikkeli MacOSXHintsista. Lisäksi Mike Ash on kirjoittanut hyvän maallikon johdannon blogiinsa

Lukemalla Applen Managing Memory -asiakirjaa ** Ei käytössä ** ei välttämättä ole tallennettu välimuistiin levylle. Voit osoittaa tämän tarkistamalla passiivisen muistin käytön (minun on 747,5 Mt juuri nyt) ja "Vaihda käytetty" (minun on 0 tavua juuri nyt). Passiivinen viittaa vain muistisivuihin, joita ei ole äskettäin luettu / kirjoitettu missään prosessissa.
"Virtuaalinen" voi olla syytä selvittää, koska Activity Monitorissa on kaksi viittausta "virtuaaliseen" muistiin. "Virtuaalimuisti" -sarakkeessa viitataan "* Virtuaaliseen yksityiseen muistiin *" Tarkastusprosessi-ikkunassa, ja sitten ikkunassa on toinen yksinkertaisesti otsikoitu "* Virtuaalimuistin koko *" -merkintä (jonka uskon olevan * jaettu * komponentti virtuaalimuisti). Tämä on 10.6.4 (jos Activity Monitor on muuttanut terminologiaa ...)
Onko "yksityinen muisti" osa "todellista muistia"?
#2
+7
Robert S Ciaccio
2010-08-18 01:51:34 UTC
view on stackexchange narkive permalink

Oikea mem liittyy fyysiseen muistiin (tietokoneen todelliset RAM-moduulit). Virtuaalimuisti on kuinka paljon "väärennettyä" muistia on varattu prosessille, mikä tarkoittaa muistia, joka on varattu pysyvälle tallennusvälineelle (kiintolevy, SSD-asema jne.) Kyseiselle prosessille. Jaettu muisti on fyysistä (todellista) muistia, joka voidaan jakaa muiden prosessien kanssa. Yksityinen muisti on "todellinen" muisti, jota voi käyttää vain prosessi, jolle se on varattu.

Nämä selitykset voivat auttaa myös ... suoraan toiminnan seurannasta -> ohje -> järjestelmän muistin tarkasteleminen käyttö:

Tässä on selitys joistakin muistiruudun alaosassa näytetyistä tiedoista:

  • Langallinen: Kiinteä muisti sisältää tietoja, joiden on aina oltava RAM-muistissa
  • Aktiivinen: Aktiivinen muisti, joka sisältää aktiivisesti käytössä olevaa tietoa.
  • Passiivinen: Passiivinen muisti sisältää tietoja, joita ei käytetä aktiivisesti. Näiden tietojen jättäminen RAM-muistiin on eduksi, jos sinä (tai tietokoneesi asiakas) palaat niihin myöhemmin.
  • Käytetty: Käytetty muisti on prosessin tai järjestelmän käytössä. langallisen, aktiivisen ja passiivisen muistin summa. Jos järjestelmä vaatii muistia, se vie vapaan muistin ennen käytettyä muistia.
  • Vapaa: Vapaa muistia ei käytetä ja se on heti käytettävissä.
  • VM-koko: Virtuaalimuisti tai VM on kiintolevytilaa, jota voidaan käyttää muistina. VM-koko on muistina käytetyn levytilan määrä. Mac OS X voi käyttää enemmän muistia kuin sinulla on fyysistä RAM-muistia. Kiintolevy on paljon hitaampi kuin RAM, joten virtuaalimuistijärjestelmä jakaa tietoja automaattisesti levytilan ja RAM-muistin välillä suorituskyvyn parantamiseksi. >
Tämä ei ole oikein. Virtuaalimuisti ei ole levylle allokoitua muistia (jota kutsutaan swapiksi). Virtuaalimuisti on osoitetila varattu, mutta ei fyysisessä muistissa. Se saattaa tuntua samalta, mutta se on hienovaraisesti erilainen. Monissa tapauksissa ohjelmat varaavat muistia koskematta siihen koskaan. Tällöin ohjelmat käyttävät paljon virtuaalimuistia. Konkreettisen esimerkin vuoksi järjestelmäni käyttää tällä hetkellä 512 Mt vaihtoa, mutta sillä on varattu 196 Gt virtuaalimuistia (mikä on melko tyypillinen määrä ihmisille, jotka käyttävät Snow Leopardia K64: llä).
@Louis, jos virtuaalimuisti on varattu, mutta siinä ei käytetä RAM-muistia tai kiintolevyä, niin missä se on?
@Louis: Olet oikeassa. Se on kuitenkin hieman hämmentävää sen vuoksi, että Activity Monitor näyttää nämä bittiä tietoa. Viittaamasi 196 Gt: n virtuaalikone ei ole vaihtotiedoston todellinen koko, mutta se kuvaa vaihtotiedoston potentiaalisen koon. Huomaa, miten he käyttävät ilmausta "voidaan käyttää muistina".
@Michael: missään. Se on teoreettista. Se, että sille on osoitettu ja annettu osoite, ei välttämättä tarkoita sitä, että sitä todella käytetään. Käyttöjärjestelmän matalat bitit tietävät, milloin nämä osoitteet on kartoitettava fyysisiin paikkoihin RAM-muistissa tai vaihdettava tallennustila, mutta tätä tilaa ei tarvitse sitoa, jos sovellus ei todellakaan tallenna tietoja näihin osoitteisiin. Ei vain sitä, mutta huomaat, että kunkin prosessin sarake, Virtual Mem, ei tule lähelle virtuaalikoneen koon lisäämistä. Prosessit eivät todellakaan käytä koko muistia.
On paljon VM: ää, jota ei itse asiassa voida vaihtaa. Esimerkiksi, jos kartoit 4 Gt: n tiedoston, se vie 4 Gt VM: ää, kun se luetaan, se tulee suoraan tiedostosta ja paineen alaisena se heitetään ulos (ei vaihdeta), koska alkuperäinen tiedosto voidaan yksinkertaisesti lukea uudelleen. VM ja vaihtaminen ovat todella täysin erilaisia ​​asioita, VM: ää käytetään yksinkertaisesti selvittämään, mitä vaihdetaan.
kiitos selvittämisestä. niin mikä on korrelaatio, jos sellainen on, virtuaalikoneen koon ja prosessikohtaisesti näytetyn virtuaalisen muistisarakkeen välillä?
VM-koko on sovelluksessa osoitetun osoitetilan kokonaismäärä riippumatta siitä, mikä kyseisen osoitetilan lopullinen taustatallennus on ja onko sitä todella kosketettu.
Haluan huomauttaa, etten ollut selvä ensimmäisessä kommentissa. VSIZE sisältää kaiken RSIZE: n (kaikki asuvat sivut on edelleen kartoitettu sovelluksen virtuaaliseen osoiteavaruuteen). Minun olisi pitänyt sanoa "mutta se ei ole fyysinen muisti", ei "se ei ole fyysisessä muistissa".
Jälleen kerran mielestäni Activity Monitorin terminologia sekoittaa keskustelumme. Toisessa viimeisessä kommentissasi sanot, että virtuaalikoneen koko on "sovelluksessa osoitetun osoitetilan kokonaismäärä". Tarkoitatko tosiasiallisesti "Virtual Mem" -saraketta, joka näytetään jokaisen prosessin yhteydessä?
VSIZE: llä tarkoitan jotain sellaista, jota ei ole lueteltu aktiivisuusmonitorissa. Voit nähdä sen luettelossa ylhäällä, jos haluat. Mitä Activity Monitor -luetteloita näennäismuistisarakkeessa kutsutaan yleisesti nimellä VPRVT, joka on sovelluksen käyttämän virtuaalisen osoitteen määrä, jota ei jaeta muiden sovellusten kanssa.
#3
+4
Ryan
2014-03-11 22:08:32 UTC
view on stackexchange narkive permalink

Apple päivitti Activity Monitorin OSX 10.9: ssä (Mavericks). Heillä on hyvä artikkeli siitä, mitä kaikki tarkoittaa täällä http://support.apple.com/kb/HT5890. Yhteenvetona ...

enter image description here

  • Fyysinen muisti: Asennetun RAM-muistin määrä.
  • Käytetty muisti: Käytetyn RAM-muistin määrä, joka ei ole heti käytettävissä muille sovelluksille.
  • Virtuaalinen muisti: sovellusten pyytämän muistikartoituksen määrä. Tämä ei ole todellinen RAM-resurssien kulutus, ja sen koon määrittää sovelluksen kirjoittaja.
  • Vaihda käytetty: aseman tilaa käytetään vaihtamaan käyttämättömät tiedostot ja RAM-muistista. On normaalia nähdä jonkin verran toimintaa, eikä se osoita, että RAM-resurssit ovat ehtyneet. Muistipaineen näkyminen punaisessa tilassa osoittaa, että RAM-resurssit ovat ehtyneet.
  • Sovelluksen muisti: sovellusten käyttämä tila.
  • Kiinteä muisti: Muisti, jota ei voida tallentaa välimuistiin levylle, joten sen on pysyttävä RAM-muistissa. Muut sovellukset eivät voi lainata tätä muistia.
  • Pakattu: Pakattu RAM-muistin määrä, jolloin muiden sovellusten käytettävissä on enemmän RAM-resursseja.
  • Tiedoston välimuisti: RAM-muistissa oleva tila, joka on merkitty sovellusten käytettäväksi ja joka sisältää äskettäin käytetyt tiedostot.

Muistipainekaavio

Vapaa, langallinen, aktiivinen, passiivinen yhdistelmä & Activity Monitorin aiempien versioiden käytetyt muistitilastot on korvattu Mavericksissa helposti luettavalla "Muistinpaine" -kuvaajalla.

Muistin paine on merkitty värillä:

  • Vihreä - RAM-muistiresursseja on käytettävissä.
  • Keltainen - RAM-muistiresursseja ollaan käyttämässä tehtävä.
  • Punainen - RAM-muistiresurssit ovat ehtyneet ja OS X käyttää muistia asemaan.


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 2.0-lisenssistä, jolla sitä jaetaan.
Loading...