Kysymys:
Onko Linux-järjestelmissä Mac OS X -pääte -version "ilmainen" -komennosta?
hpy
2010-11-24 03:08:40 UTC
view on stackexchange narkive permalink

Linuxissa käytän usein vapaa -komentoa nähdäksesi nykyisen vapaan ja käytetyn muistin määrän järjestelmässä. Esimerkki:

  $ free käytettyjen ilmaisten jaettujen puskureiden välimuistiMem: 7264256 1010952 6253304 0 371892 189088 - / + puskurit / välimuisti: 449972 6814284Swap: 8126456 28 8126428  

Sitä ei tunnu olevan olemassa, kun kirjoitan free Mac OS X: n päätelaitteeseen. Onko olemassa vaihtoehtoa?

21 vastused:
#1
+98
drfrogsplat
2010-11-24 08:18:40 UTC
view on stackexchange narkive permalink

Kuten @khedron sanoo, näet nämä tiedot Activity Monitorissa.

Jos haluat sen komentoriville, tässä on kirjoittamani Python-komentosarja (tai Ehkä muokattu jonkun muun omasta, en muista, se on nyt melko vanha) näyttääksesi langallisen, aktiivisen, passiivisen ja vapaan muistin määrän:

  #! / usr / bin / pythonimport subprocessimport re # Get process infops = subprocess.Popen (['ps', '-caxm', '-orss, comm'], stdout = subprocess.PIPE) .communicate () [0] .decode () vm = subprocess.Popen (['vm_stat'], stdout = aliprosessi.PIPE) .communicate () [0] .decode () # Iterate processprocessLines = ps.split ('\ n') sep = re.compile ('[\ s] +' ) rssTotal = 0 # kB rivillä alueella (1, len (processLines)): rowText = processLines [rivi] .strip () rowElements = sep.split (rowText) yritä: rss = float (rowElements [0]) * 1024 paitsi : rss = 0 # ohita ... rssTotal + = rss # Käsittele vm_statvmLines = vm.split ('\ n') sep = re.compile (': [\ s] +') vmStats = {} riville alueella ( 1, len (vmLines) -2): rowText = vmLine s [row] .strip () rowElements = sep.split (rowText) vmStats [(rowElements [0])] = int (rowElements [1] .strip ('\.')) * 4096print 'Langallinen muisti: \ t \ t% d MB '% (vmStats ["Pages wired down"] / 1024/1024) print (' Aktiivinen muisti: \ t \ t% d MB '% (vmStats ["Pages active"] / 1024/1024)) tulosta ('Passiivinen muisti: \ t% d MB'% (vmStats ["Pages inactive"] / 1024/1024)) print ('Vapaa muisti: \ t \ t% d MB'% (vmStats ["Pages free") / 1024/1024)) print ('Real Mem Total (ps): \ t% .3f MB'% (rssTotal / 1024/1024))  

Kuten näette, voit vain Kutsu vm_stat komentoriviltä, ​​vaikka se laskee 4 kt: n sivuilla, joten komentosarja muunnetaan MB: ksi.

Skripti laskee myös kaikkien käynnissä olevien "todellisen muistin" käytön. prosessit vertailua varten (tämä ei vastaa mitään erityistä arvoa yleisestä muistitilastosta, koska muisti on monimutkainen peto).


Tässä on esimerkki järjestelmän komentosarjan tuloksista :

  [user @ host: ~]% memReport.pyLangallinen muisti: 1381 Mt
Aktiivinen muisti: 3053 Mt Ei-aktiivinen muisti: 727 Mt Vapaa muisti: 1619 Mt Todellinen muistimäärä yhteensä (ps): 3402,828 Mt  

(hyvin mukautettu vastaamaan välilehtien kokoa StackExchangessa;) he>

Se hämmentää mieltä, että täytyy kirjoittaa komentosarja saadakseen nämä perustiedot Maciin
@meyerson, Mielestäni se on hieman yliarvostettu, sinun ei tarvitse * kirjoittaa komentosarjaa saadaksesi nämä tiedot, tämä komentosarja vain kerää mielenkiintoisen tietojoukon yhdessä ihmisen luettavassa muodossa, joka on epämääräisesti samanlainen kuin linux-kohtainen 'ilmainen'komento.'vm_stat' antaa jo perustiedot, samoin kuin 'top'.
vain minun 2 senttiä: `ps -caxm -orss = |awk '{summa + = $ 1} LOPPU {tulosta "Asukasryhmän koko:" summa / 1024 "MiB"}' '
mikä on langallinen muisti?
@Ciastopiekarz https: // apple.stackexchange.com / q / 31801/1587
Vau.Tämä on taaksepäin.He saattavat myös poistaa Terminal-sovelluksen.
#2
+78
RI Swamp Yankee
2012-04-30 22:00:02 UTC
view on stackexchange narkive permalink

Tarvittava komento on vm_stat - samanlainen kuin perinteinen Unix-työkalu vmstat , mutta sillä on muutama MACH-kohtainen ero. Man-sivu on kirjoitettu hyvin.

Mitä ovat "sivut"?
@zhermes - Pienin muistin yksikkö, jota järjestelmä voi käyttää ... x86- ja PPC-Macien tapauksessa tämä on 4k. Sivut vapaat ovat 4 kk vapaan muistin yksiköiden määrä.
Sivut ovat 4K myös iOS: ssä.
Mutta tarvitsemme tavuja, MB, GB, TB ... tämä komento ei tunnu hyödylliseltä.
#3
+60
linus
2012-03-29 22:48:55 UTC
view on stackexchange narkive permalink

Vaikuttaa siltä, ​​että se on hidasta, koska top -l 1 viivästyy aina yhden sekunnin kuluttua valmistumisesta, tavallinen viive päivitysten välillä. Lisäämällä komentoon -s 0 komento tekee sen välittömästi:

  top -l 1 -s 0 | grep PhysMem   > 
  ylin -l 1 -s 0 | grep PhysMem | sed 's /, / \ n / g'  
Se on koiraa hidas, on paljon parempi käyttää `vm_stat`.
Kyllä, "top" kysely on huomattavasti hitaampaa kuin "vm_stat" kutsuminen, mutta "top" ote on paljon vähemmän yksityiskohtainen ja yksikkö on megatavua eikä sivuja. Vielä vähemmän tarkkana rivinvaihdot voidaan poistaa ja "awk" voidaan korvata "grepillä", jolloin tulokseksi saadaan "top -l 1 | grep ^ PhysMem`.
Kaiken kaikkiaan tämä on paras vastaus.Ei anna tuloksia hyödyttömissä "sivu" -yksiköissä / vaatii jonkinlaista hakkerista jälkikäsittelyä, jotta yksiköt olisivat tulkittavissa.
#4
+46
Lloeki
2013-06-18 13:31:00 UTC
view on stackexchange narkive permalink

Tässä on yksinkertainen yksirivinen, joka tekee koko vm_stat -tuloksesta ihmisystävällisemmän:

  $ vm_stat | perl -ne '/ / sivun koko (\ d +) / ja $ size = $ 1; / Pages \ s + ([^:] +) [^ \ d] + (\ d +) / ja printf ("% - 16s% 16.2f Mi \ n", "$ 1:", $ 2 * $ koko / 1048576); 'free: 2330.23 Miactive: 2948.07 Miinactive: 1462.97 Mispeculative: 599.45 Miswired down: 840.46 Micopy-on-write: 43684.84 Mizero filled: 385865.48 Mireactivated: 608.14 Mi  
#5
+27
rymo
2013-11-13 23:33:36 UTC
view on stackexchange narkive permalink

Siinä tapauksessa, että olet todella kiinnostunut vain vaihtokäytöstä (mikä olisi viimeinen rivirivi free):

  $ sysctl vm.swapusagevm. swapusage: yhteensä = 64.00M käytetty = 0.00M vapaa = 64.00M (salattu)  
#6
+21
z4mba
2011-07-28 22:43:35 UTC
view on stackexchange narkive permalink

Mac OS X: ssä on terminaalin komento, joka on samanlainen kuin free ... sitä kutsutaan top

Lisätietoja voit tarkistaa tämä Applen tukiasiakirja.

Mac OS X: Muistin käytön tarkasteleminen "top" -apuohjelmalla

#7
+11
bajceta
2012-04-10 17:24:26 UTC
view on stackexchange narkive permalink

Otetaan vain ratkaisu @zackista ja lisätään passiivisia ja spekulatiivisia lohkoja.

  #! / bin / bashFREE_BLOCKS = $ (vm_stat | grep free | awk ' {print $ 3} '| sed' s /\.// ') INACTIVE_BLOCKS = $ (vm_stat | grep passiivinen | awk' {print $ 3} '| sed' s /\.// ') SPECULATIVE_BLOCKS = $ (vm_stat | grep spekulatiivinen | awk '{tulosta $ 3}' | sed 's /\.//') ILMAINEN = $ (((($ FREE_BLOCKS + SPECULATIVE_BLOCKS) * 4096/1048576)) EI-AKTIIVINEN = $ (($ INACTIVE_BLOCKS * 4096/1048576)) TOTAL = $ ((($ FREE + $ INACTIVE))) echo Free: $ FREE MBecho Inactive: $ INACTIVE MBecho Free: $ TOTAL MB  
#8
+9
Zack
2011-07-28 21:45:08 UTC
view on stackexchange narkive permalink
  free = "$ (($ (vm_stat | awk '/ free / {gsub (/\./," ", $ 3); print $ 3}') * 4096/1048576)) MiB-vapaa"  
Tämän komennon nykyinen versio ei toimi minulle `tcsh` (oletusasetukseni) tai` sh '. Onko komento kuorikohtainen?
Kyllä, se on `bash` ja` ksh` -kohtainen. Kokeile `tcsh`:` set freeblocks = \ `vm_stat | napata ilmaiseksi | awk '{print $ 3}' | sed 's / \ .//' \ `; aseta freeMB = \ `expr $ freeblocks \ * 4096/1048576 \`; set free = \ 'echo $ freeMB MiB free \' '. Voit sitten tulostaa vapaan muistin määrän `echo $ free` -toiminnolla. Voit myös luoda aliaksen: `alias free echo $ freeMB MiB free`.
#9
+9
Killinks
2012-02-17 17:18:15 UTC
view on stackexchange narkive permalink
  #! / bin / bashtop -l 1 | grep PhysMem: | awk '{print $ 10}'  

Vain Unix-asiantuntijoille:

  top -l 1 | awk '/ PhysMem: / {tulosta $ 10}'  
Tämä ei enää palauta tulosta nykyaikaisessa macOS: ssa.
käytä `top -l1 |awk '/ PhysMem / {print $ 2}' 'macoilla> = High Sierra
Ei palauta käytettyä muistia
#10
+8
João Henrique
2016-05-20 04:20:07 UTC
view on stackexchange narkive permalink

Voit kokeilla komentoa memory_pressure . Katso järjestelmän lähdöt (i5, 4 Gt RAM-muistia)

  Järjestelmässä on 2147483648 (524288 sivua sivun kanssa)Tilastot: Sivut vapaat: 90009 puhdistettavat sivut: 139593 tyhjennetyt sivut: 7496548 Vaihda I / O: Swapins: 470466 Vaihdot: 530913 Sivun Q lukumäärä: Sivut aktiiviset: 407739 Sivut passiiviset: 148277 Sivut spekulatiiviset: 16200 Sivut: 0Sivut kytketty: 263064 Kompressoritilastot: Kompressorin käyttämät sivut: 122815 Pakatut sivut: 7327420 Pakatut sivut: 17625795 Tiedoston I / O: Sivunumerot: 1538997 Sivutiedot: 86692 Koko järjestelmän vapaa muisti: 63%  
Tämä on melkein mitä halusin: tapa nähdä muistin paine järjestelmässä.Se ei ole niin helppoa / helppoa nähdä kuin Activity Monitorissa näkyvä painekaavio, mutta se on tähän mennessä paras mitä löysin Terminalista.
#11
+8
TrinitronX
2013-12-04 06:13:50 UTC
view on stackexchange narkive permalink

Mac OS X: llä ei ole tarkkaa vastaavuutta, mutta on olemassa muutama muu tapa saada tietoja:

  1. system_profiler - Näyttää kaikki Macin järjestelmäprofiilitiedot kuoressa
  2. sysctl -a | grep mem tai sysctl hw.memsize (yhteensä mem)
+1, toimii terminaalista palautustilassa (cmd-r käynnistyksen aikana)
#12
+7
Michael H.
2010-11-24 04:43:05 UTC
view on stackexchange narkive permalink

muun kysymyksesi perusteella luulen, että olet löytänyt Activity Monitor -apuohjelman käyttämään muistisi tilaa. Pelkästään tiedoksi, se on / Applications / Utilities / Activity Monitor.app -sovelluksessa.

#13
+7
AlanGBaker
2011-07-23 04:50:57 UTC
view on stackexchange narkive permalink

Voit kokeilla komentoa allmemory , jos haluat komentorivityökalun, joka raportoi erittäin yksityiskohtaisesta muistin käytöstä.

Tehokas työkalu, mutta se vaatii paljon prosessoria (noin 95% yhdestä kahdesta MacBookPro5.2 -prosessoristani) ja jos käytetään paljon muistia: yksinkertainen `` allmemory '' -ajo voi olla yllättäen pitkä - minulle tänään yli neljä minuuttia per ajo, YMMV. "Allmemory" -ajo "diagnosoimiseksi" voi kestää huomattavasti kauemmin.
#14
+5
Bijur Vallark
2015-10-27 10:33:25 UTC
view on stackexchange narkive permalink
  ylin -l 1 -s 0 | awk '/ Prosessit / || / PhysMem / || / Lataa keskiarvo / {print} ' 

Tämän pitäisi toimia hienosti :)

#15
+5
hairbear...
2014-01-28 06:18:15 UTC
view on stackexchange narkive permalink

Edellä mainittu on mielestäni liian paljon vaivaa, ja siinä oletetaan, että sinulla on myös täysin asennettu asennus ... Jos olet käynnistänyt Mac OS X: n käynnistyslevyltä, kaikki yllä olevat ratkaisut tietysti voittivat t toimi ... Käytä vain komentoa "hostinfo", tässä on Mavericksia (10.9.1) käyttävän vuoden 2012 puolivälin MBAirini tulos:

  Mach-ytimen versio: Darwin Kernel -versio 13.0.0: To 19. syyskuuta 22:22:27 PDT 2013; root: xnu-2422.1.72 ~ 6 / RELEASE_X86_64 Ydin on määritetty enintään 4 prosessorille. 2 prosessoria on fyysisesti saatavilla. 4 prosessoria on loogisesti käytettävissä. Prosessorin tyyppi: i486 (Intel 80486) Suoritin aktiivinen: 0 1 2 3Perusmuisti käytettävissä: 8.00 gigatavua suoritinsarja: 195 tehtävää, 961 säiettä, 4 prosessoria Kuormituksen keskiarvo: 1,61, Mach-kerroin: 2,38  

Tämän komennon hyvä asia on, että se on esiasennettu 10.9 -asennusohjelman kanssa myös -kohdassa / usr / bin , joten se on erittäin kätevä,

ihanteellisessa tapauksessa, jos haluat vain RAM-muistin, anna asia:

  $ hostinfo | grep muisti  

En tiedä, onko hostinfo olemassa joillakin aiemmilla käyttöjärjestelmillä ...

Kuinka `hostinfo` näyttää * käytettyä * muistia?
tämä komento (ainakin täällä OS 10.6.8: ssa) näyttää vain fyysisesti käytettävissä olevan muistin, mutta ei kuinka paljon siitä tällä hetkellä käytetään
Tämä tarkoittaa, että tämä ei oikeastaan vastaa kysymykseen, koska siinä todetaan nimenomaisesti, että se haluaa "vapaan ja käytetyn muistin".
#16
+3
sideshowbarker
2017-02-01 19:41:10 UTC
view on stackexchange narkive permalink

Luulen, että nykyään psutil ja sen meminfo.py -skripti tarjoavat eniten hyötyä muistin käytöstä yksityiskohdat. Kokeile sitä:

  pip install psutil
käpristyminen -O https://raw.githubusercontent.com/giampaolo/psutil/master/scripts/meminfo.py
python ./meminfo.py
 

Sen tuottama tulos näyttää tältä:

  MUISTI
------
Yhteensä: 16,0 G
Saatavana: 5,5 G
Prosenttiosuus: 65,8
Käytetty: 13,5 G
Ilmainen: 1,5 G
Aktiivinen: 7,4 G
Ei aktiivinen: 4,0 G
Langallinen: 2.1G

VAIHTAA
----
Yhteensä: 1,0 G
Käytetty: 33,5M
Ilmainen: 990,5 miljoonaa
Prosenttiosuus: 3,3
Sin: 15,9 G
Etupuoli: 71,6 miljoonaa
 

Huomaa rivi Käytettävissä , joka näyttää arvion nko muistia todella käytettävissä uusien sovellusten käynnistämiseen ilman vaihtamista.

En tiedä yhtään muuta MacOS-apuohjelmaa, joka tarjoaisi kyseisen käytettävissä olevan muistiarvion

Vertailun vuoksi: Linux-järjestelmässä samanlaisia ​​tietoja annetaan available -sarakkeessa free : n nykyisten versioiden ulostulona:

  käytetty yhteensä ilmainen jaettu buff / välimuisti käytettävissä
Muisti: 7,8 G 552 M 182 M 156 M 7,1 G 6,9 G
Vaihda: 0B 0B 0B
Yhteensä: 7,8 G 552 M 182 M
 

Tämä käytettävissä -sarake free -lähdössä on juuri peräisin MemAvailable -kohdasta kohdassa / proc / meminfo . Ja järjestelmissä, joissa on / proc / meminfo , psutil käyttää myös sitä vain käytettävissä olevan muistin arvioimiseen.

Mutta MacOS: lla ei ole / proc / meminfo , joten käytettävissä olevan muistin arvioimiseksi psutil käyttää samaa algoritmia kuin Linuxissa. laske MemAvailable kohteelle / proc / meminfo .

#17
+2
vigo
2012-01-28 01:23:26 UTC
view on stackexchange narkive permalink

Tämä toimii minun $ PS1: lläni:

https://github.com/vigo/dotfiles-universal/blob/master/prompts/free_memory

(Rubiiniversio: https://github.com/vigo/dotfiles-universal/blob/master/prompts%2Ffree_memory.rb)

Kysy erilaisilta -vastausten on oltava enemmän kuin vain linkkejä.Linkki on hyvä sisällyttää linkki, mutta yhteenveto tai ote se vastauksesta.Ajatuksena on saada vastaus itsenäiseksi.
#18
+2
Robert
2013-05-12 01:54:37 UTC
view on stackexchange narkive permalink

Bash komentaa "free like" Mac OSX: lle.

Tämä on tämän viestin toinen uudelleenjulkaisu. Aluksi sain kaksi -1 . Yksi, koska en kuvannut englanniksi, se on korjattu. Toinen, koska käytin gawk (joka ei ole osa tavallista OS X -asennusta), on myös korjattu, käytän nyt awk . -2 ovat edelleen olemassa ;-). Parasta on ehkä nyt testata ja arvioida komennot itse?

Tarkistin ensimmäisen ajatukseni rakentaa vain yksi loppukäyttäjäkeskeinen komento ystävällisellä ja erittäin konfiguroitavalla näytöllä, tein kaksi:

  • free-like.sh komentosarja aina suuntautunut "loppukäyttäjäksi", tarkemmalla, "ystävällisemmällä" ja konfiguroitavalla näytöllä, mutta enemmän laskelmia ja resurssien kulutusta ,

  • free-like-raw.sh , komento, joka on nyt suuntautunut kehittäjä, sysadmin jne., vähemmän laskentaa ja resurssien kulutusta, mutta myös pienemmällä tarkkuudella, vähemmän "ystävällisellä" näytöllä.

Fyysisen muistin tiedot puretaan komennon vm_stat (joka palauttaa tulokset lohkokokona). Tavuissa tapahtuvasta muunnoksesta johtuva epätarkkuus (lohkojen lukumäärä * lohkojen koko, laskelmien oletusarvo) on välillä 0 < lohkon kokoinen. Virtuaalimuistin tiedot otetaan komennosta top . Tässä oleva epätarkkuus on linkitetty top -komennon viiteyksikköön: kilo, mega, giga.

Laskelmat tehdään käyttämällä awk -tunnistetta, joka noudattaa pyöristettyä (toisin kuin bc ). awk on myös nopeampi kuin bc . Näet testikoodin täällä: http://myblog.robert.sebille.name/article29.html#awk- bc

Voit tarkastella komentojen tuloksia tavuina (oletus), kiloina, mega- tai giga-arvoina x desimaalilla, jos kyseessä on free-like.sh ja jos kysyt näyttö mega ou gigassa.

Skriptit ovat liian pitkiä postausta varten, mutta löydät ne tästä blogini artikkelista: http://myblog.robert.sebille.name/article29.html

Artikkeli on ranskankielinen, mutta siinä on yksi esimerkki kunkin komennon näytöstä ja niiden integroitu ohje ( ./free-like.sh -h ja ./free-like- raw.sh -h ), englanniksi. Nämä apuvälineet kuvaavat täysin komentoja. Artikkelissa näytetään myös koodit.

Englanti ei ole äidinkieleni. Jos joku haluaa korjata integroidun ohjeen virheet, hän on tervetullut;).

sinun.

Sen lisäksi, että komentosarjasi on enemmän tai vähemmän käyttökelvoton ilman ranskan taitoa, näyttää siltä, ​​että se edellyttää `gawk`-tiedostoa, joka ei ole osa OS X -asennusta.
@patrix: Kiitos palautteestasi, teen kuvauksen englanniksi ja käännän myös integroidun ohjeen (tällä hetkellä ranskaksi). Gawk: Itse unohdin, kiitos. Tapasin joitain lokalisointiongelmia (desimaalipilkku tai desimaali) awk. He katosivat tietämättä miksi. Tulin takaisin awk: iin gawk: n sijasta, olen tarvinnut vähän aikaa säätääksesi asioita, lähetän uudelleen, kun se on valmis.
Pelkkä gawkin korvaaminen awk: llä toimi minulle ilman ongelmia.
#19
+1
rubynorails
2015-11-22 01:41:34 UTC
view on stackexchange narkive permalink

vm_stat näyttää sinut kilotavuina.

Alla oleva online-linja näkyy megatavuina:

  liitä < (vm_stat | awk 'NR>1' | grep -o ". *:") < (i: lle muodossa $ (vm_stat | awk 'NR>1' | tr -d '.' | awk '{print $ NF}'); tee perl -e "print $ i / 1024 "| awk '{printf"% 0.2f ", $ 0}'; kaiku; valmis) | -sarake -s: -t  

Palauttaa:

  Sivut ilmaiseksi 11.06 Sivut aktiiviset 798.25 Sivut passiiviset 776.03 Sivut spekulatiiviset 9.15 Sivut kuristettu 0.00 Sivut kytketty alas 303.27 Sivut puhdistettavissa 0.95 "Käännösvirheet" 82172.66Sivut kirjoita kirjoitettaessa 11629.60Sivut täynnä 27685.41Sivut aktivoitiin uudelleen 1450.70Sivut puhdistettiin 91.66Tiedostoturvatut sivut 430.20Nimetön sivut 1153.24Sivut, jotka on tallennettu kompressoriin 481.75Sivut, jotka on varattu kompressorilla 149.91Decompressions 137.33Paketti 137.33 54.34Vaihdokset 90.63  
#20
+1
Olivier Refalo
2016-12-23 04:41:41 UTC
view on stackexchange narkive permalink

Jos käytät kalan kuorta osxissa, yhdessä sen kalastajan paketinhallinnan kanssa.

Kirjoitin seuraavan laajennuksen: https://github.com/fisherman/free

Se on osxin ilmaisen komennon täydellinen uusinta.Katso itse

  > ilmainen
                 käytettyjen ilmaisten langattomien sovellusten kokonaismäärä pakattu
Muisti: 8,00 Gt 6,65 Gt 1,95 Gt 2,87 Gt 2,09 Gt 1,86 Gt
+/- Välimuisti: 1,24 Gt 1,87 Gt
Vaihto (43%): 2048 Mt 877 Mt 1171 Mt
Kuormituksen keskiarvo: 1,63 1,95 1,95
 
Kiva.Lykkäsi sitä heti.
#21
  0
Dai Kaixian
2016-09-22 07:42:12 UTC
view on stackexchange narkive permalink

top tai htop voi myös auttaa ratkaisemaan ongelman.

Tervetuloa kysymään Differentilta.Anna lisätietoja siitä, miten viittaamasi komennot vastaavat kysymykseen.


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...