Frage

Was ist der richtige Weg, um die Prozessgröße zu ermitteln? Solaris, HP-UX Und AIX?Sollten wir verwenden top oder ps -o vsz oder etwas anderes?

War es hilfreich?

Lösung

Die genauen Definitionen von vsize, rss, rprvt, rshrd, und andere unverständlich aussehende Abkürzungen variieren von Betriebssystem zu Betriebssystem.Die Handbuchseiten für die top Und ps Befehle werden eine Art Beschreibung haben, aber alle diese Beschreibungen sind stark vereinfacht (oder basieren auf längst ausgestorbenen Kernel-Implementierungen).
„Prozessgröße“ als Konzept ist im allgemeinen Fall unglaublich schwer zu fassen.Antworten in bestimmten Fällen hängen stark von der tatsächlichen Speicherverwaltungsimplementierung im Betriebssystem ab und sind selten so zufriedenstellend wie das übersichtliche Konzept der „Prozessgröße“, das in den Köpfen der meisten Benutzer (und der meisten Entwickler) existiert.

Beispielsweise kann keine dieser Zahlen (und wahrscheinlich auch keine Kombination davon) verwendet werden, um genau zu sagen, wie viele solcher Prozesse gleichzeitig in einer bestimmten Menge an freiem Speicher ausgeführt werden können.Aber eigentlich ist es am besten, von diesem Ende aus an die Sache heranzugehen:Warum möchten Sie diese Nummer und wofür werden Sie sie verwenden?Angesichts dieser Informationen denke ich, dass Sie nützlichere Antworten erhalten werden.

Andere Tipps

Unter Solaris können Sie mit dem detaillierte Informationen zur Speichernutzung eines Prozesses abrufen pmap Befehl.Insbesondere, pmap -x <pid> zeigt Ihnen, wie viel vom Speicher eines Prozesses gemeinsam genutzt wird und wie viel speziell von diesem Prozess verwendet wird.Dies ist nützlich, um die „geringfügige“ Speichernutzung eines Prozesses zu ermitteln. Mit dieser Technik können Sie eine Doppelzählung von gemeinsam genutzten Bibliotheken vermeiden.

Ja, Sie haben Recht, wenn Sie beim VSZ sperren.

ps u gibt Ihnen VSZ und RSS, also die Größe des virtuellen Speichers und die Größe des residenten Satzes.Der RSS gibt an, wie viel physischer Speicher dem Prozess zugewiesen wurde, und der VSZ ist die Größe des virtuellen Speichers des Prozesses.Wenn mehrere Kopien eines Programms ausgeführt werden, wird ein großer Teil des Speichers im VSZ von diesen Prozessen gemeinsam genutzt.

Ich habe die residente Satzgröße für alle Prozesse wie folgt zusammengefasst (als Root):

ps ax -o rss | awk '{rss += $1;} END { print rss}'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top