Werkwijze size UNIX

stemmen
23

Wat is de juiste manier om het proces grootte op te krijgen Solaris, HP-UXen AIX? Moeten we gebruiken topof ps -o vszof iets anders?

De vraag is gesteld op 04/08/2008 om 08:34
bron van user
In andere talen...                            


4 antwoorden

stemmen
17

De exacte definitie van vsize, rss, rprvt, rshrd, en andere obscure uitziende afkortingen variëren van OS naar OS. De manual pagina's voor de topen pscommando's zullen een soort van beschrijving, maar al deze beschrijvingen worden sterk vereenvoudigd (of zijn gebaseerd op de lange-uitgestorven kernel implementaties).
"Werkwijze size" als concept fiendishly moeilijker te berekenen in het algemene geval. Antwoorden in specifieke gevallen sterk afhankelijk van de werkelijke memory management implementatie in de OS en zijn zelden zo bevredigend als het netjes "proces size" concept dat in de hoofden van de meeste gebruikers (en de meeste ontwikkelaars) bestaat.

Bijvoorbeeld, geen van deze nummers (of, waarschijnlijk, een combinatie daarvan) kunnen worden gebruikt om u precies vertellen hoeveel van zulke processen tegelijk kan draaien op een bepaalde hoeveelheid vrij geheugen. Maar echt, uw beste inzet is om te komen op het van Daartoe: waarom wil je dit nummer, en wat gaat u het gebruiken? Gezien het feit dat informatie, ik denk dat je meer bruikbare antwoorden te krijgen.

antwoordde op 05/08/2008 om 02:07
bron van user

stemmen
5

Op Solaris, kunt u gedetailleerde informatie over een proces geheugengebruik met de get pmapcommando. In het bijzonder, pmap -x <pid>geeft aan hoeveel geheugen een proces wordt gedeeld en hoeveel wordt specifiek gebruikt door dat proces. Dit is handig voor het uitwerken van de "marginale" geheugengebruik van een proces - met deze techniek kun je dubbeltelling gedeelde bibliotheken te vermijden.

antwoordde op 20/09/2008 om 06:37
bron van user

stemmen
3

Ja, je hebt gelijk te vergrendelen op de VSZ.

ps ugeeft je de VSZ en RSS, die het virtuele geheugen en de residente set grootte zijn te geven. De RSS is hoeveel fysiek geheugen heeft om het proces is verdeeld, en de VSZ is het virtuele geheugen van het proces. Als u meerdere versies van een programma hebben draaien, zal veel van het geheugen in de VSZ worden gedeeld tussen deze processen.

antwoordde op 04/08/2008 om 09:21
bron van user

stemmen
2

Ik vatte de residente set grootte voor alle processen als dit (als root):

ps ax -o rss | awk '{rss += $1;} END { print rss}'
antwoordde op 20/03/2014 om 15:59
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more