Zusammenfassung:

Zusammenfassung:

Frage: Wie können wir die tatsächliche Speichernutzung melden (ohneden Cache!) mitnmonodervmstatodersvmonauf AIX 6?

nmon:
Bildbeschreibung hier eingeben

vmstat:
Bildbeschreibung hier eingeben

svmon:
Bildbeschreibung hier eingeben

Wie unter Linux können wir den Befehl „free“ verwenden, aber er ist unter AIX nicht verfügbar:

[user@notebook ~]$ free -m
         total       used       free     shared    buffers     cached
Mem:          7797       4344       3453          0        219       2745
-/+ buffers/cache:       1379       6417
Swap:         2047          0       2047
[user@notebook ~]$ free -m | grep cache: | awk '{print $3}'
1379
[user@notebook ~]$ 

Antwort1

Kurzfassung: Sehen Sie sich die verwendeten clnt+ persSeiten in der svmon -GAusgabe an (die Einheit besteht aus 4.000 Seiten), wenn Sie den gesamten Dateicache wissen möchten, oder sehen Sie sich die vmstat -v„Dateiseiten“ für den Dateicache ohne ausführbare Dateien an (dieselbe Einheit).


Wenn Sie einen guten Überblick über die aktuellen Geschehnisse haben möchten, sollten Sie sich den folgenden Artikel ansehen:Übersicht über den AIX-Seitenersatz.

Um es ganz kurz zusammenzufassen: Der Speicher in AIX wird auf zwei Arten klassifiziert:

  • Arbeitsgedächtnis vs. permanentes Gedächtnis

    • Der Arbeitsspeicher besteht aus Prozessspeicher (Stack, Heap, gemeinsam genutzter Speicher) und Kernelspeicher. Wenn dieser Speichertyp ausgelagert werden muss, wird er in den Swap-Speicher verschoben.

    • Permanenter Speicher ist der Dateicache. Wenn dieser ausgelagert werden muss, wird er in das Dateisystem zurückgesendet, aus dem er stammt (bei schmutzigen Seiten werden saubere Seiten einfach recycelt). Dies ist in Nicht-Client-Seiten (oder persistente Seiten) für JFS-Dateisysteme und Client-Seiten für JFS2, NFS und möglicherweise andere unterteilt.

  • Rechnerische vs. nicht-rechnerische Seiten.

    • Berechnungsseiten sind wiederum Prozess- und Kerneldaten sowie Prozesstextdaten (d. h. Seiten, die die ausführbare Datei/den Code zwischenspeichern).

    • Nicht rechnergestützt sind die anderen: Dateicache, der nicht ausführbar ist (oder gemeinsam genutzte Bibliothek).

svmon -G( svmon -G -O unit=MBist übrigens etwas benutzerfreundlicher) zeigt Ihnen die Arbeits- und Dauerspeicherseiten. Die workSpalte ist, nun ja, der Arbeitsspeicher. Den Dauerspeicher erhalten Sie, indem Sie die Spalten pers(JFS) und clnt(JFS2) addieren.

In Ihrem Fall verfügen Sie über etwa 730 MB permanente Seiten, die von Ihren Dateisystemen unterstützt werden (186151*4k Seiten).

Jetzt zeigt das topas„Widget“ oben rechts FileSystemCache (numperm)etwas leicht anderes an, und Sie würden dieselben Daten mit erhalten vmstat -v: das sind nur nicht rechnerische permanente Seiten. Also dasselbe wie oben, aber ohne Seiten für ausführbare Dateien.

In Ihrem Fall sind das etwa 350 MB (2,2 % von 16 G).

So oder so, das ist wirklich nicht viel Cache.

Antwort2

Der Befehl, nach dem Sie suchen, ist (meiner Meinung nach):

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB

Die wichtigsten Optionen sind hier:

  • „Filtertyp=funktioniert“ # auch bekannt als „kein Cache“;
  • 'segment=off' # eigentlich Standard bei Verwendung von -O
  • 'filtercat=exclusive' # schließt derzeit keinen gemeinsam genutzten Speicher oder Kernel ein
  • 'Einheit=MB' # wer möchte anhand der Seitenanzahl berechnen??

Und Sie sollten sich andere Optionen wie -C (bezogen auf den Befehlsnamen, einige Beispiele unten) und vielleicht -U (bezogen auf den Benutzer) ansehen.

++++ Beginn des Kommentars ++++

Einfügen, was ich als Kommentar zu Ihrer Frage eingegeben hätte, aber mir fehlt der Ruf – als neuer Benutzer hier.

Ihre vmstat-Ausgabe verrät mir mehr als nur Ihre aktuelle Situation – da es sich um eine einzeilige Ausgabe handelt, ist sie historisch – und ich vermute, dass Sie Speicherprobleme hatten, da sie einen Verlauf von pi/po (Paging Space Page In/ Paging Space Pageout) anzeigt.

Andere interessante Spalten sind die fr/sr-Spalten:

  • fr: von lrud (least recently used daemon, auch bekannt als Page Stealer) freigegebene Seiten
  • sr: Seiten von lrud gescannt/durchsucht auf der Suche nach einer „alten“ Seite
  • sr/fr: Verhältnis, das ausdrückt, wie viele Seiten "gescannt" werden müssen, um 1 freizugeben

Was ich als problematisch erachte, sind die hier angegebenen Pi/Po-Werte, die überhaupt nicht mit den Daten aus den anderen Befehlen übereinstimmen. Zudem gibt es hier keine Betriebszeit, sodass schwer zu sagen ist, was für ein „Test“ diese Zahlen generiert hat.

  • pi: Paging-Bereich einlesen (d. h. Anwendungsspeicher aus Paging-Bereich lesen)
  • po: Speicher stehlen und Anwendungsspeicher (auch Arbeitsspeicher genannt) in den Paging-Bereich schreiben – nur der Arbeitsspeicher geht in den/aus dem Page-Bereich

In Ihrer Präsentation zeigen Sie pi=22 und po=7. Das bedeutet, dass das System im Durchschnitt dreimal häufiger Informationen aus dem Paging-Speicher gelesen hat (nachdem sie geschrieben worden waren), als es Daten geschrieben hat. Das ist ein Hinweis auf ein ausgehungertes System, weil Daten eingelesen (pi) und dann wieder gestohlen (sr/fr) werden, bevor sie überhaupt berührt (referenziert, d. h. verwendet) werden – oder eingelesen und wieder entfernt, bevor die darauf „wartende“ Anwendung überhaupt die Möglichkeit hat, darauf zuzugreifen.

Kurz gesagt, die angezeigten Daten sind nicht mit den „schmerzhaften“ Momenten „synchronisiert“, obwohl dies erklären könnte, warum derzeit nur 2,2 % Ihres Speichers für das Caching verwendet werden (es kann sogar „rechnerisch bedingt sein, d. h. die geladenen Programme“).

So weit wievmstatIch schlage auch die Flags -I (großgeschrieben:i, das ‚fi‘ und ‚fo‘ hinzufügt – FileIn- und FileOut-Aktivität) und -w (wide) vor, damit die Zahlen besser unter den Textüberschriften positioniert sind.

++++ Ende des 'Kommentars'

Sehen wir uns also einen Auszug mit -P (Prozessansicht) an.

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB | head -15 

    Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
14614630 httpd             21.5     0.06        0     21.5
11272246 httpd             21.4     0.06        0     21.4
12779758 httpd             21.2     0.06        0     21.2
17760476 httpd             20.9     0.06        0     20.9
11796712 httpd             20.8     0.06        0     20.8
17039454 httpd             20.6     0.06        0     20.6
11862240 httpd             20.6     0.06        0     20.6
14680090 httpd             20.5     0.06        0     20.5
10747970 httpd             20.5     0.06        0     20.5
11141286 httpd             20.5     0.06        0     20.5
 4718766 mysqld            13.6     0.02        0     13.6

Wenn Sie kein Root sind, sehen Sie nur die Befehle in Ihrer Umgebung.

$ svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB
Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
 5505172 svmon             10.7     0.19     0.44     11.4
 6553826 ksh               0.57     0.02        0     0.57
 9175288 ksh               0.55     0.02        0     0.55
12910710 sshd              0.55     0.02        0     0.55
15204356 sshd              0.52     0.02        0     0.52
12779760 head              0.18     0.02        0     0.18

Möglicherweise möchten Sie sich einen bestimmten Befehl ansehen. Wechseln Sie daher zurück zu root, um httpd anzusehen.

Zusammenfassung:

svmon -C httpd -O filtertype=working,segment=off,filtercat=exclusive,unit=MB 
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               227.44     0.69        0   227.44

Details: Auszug

    # svmon -C httpd -O filtertype=working,segment=category,filtercat=exclusive,unit=MB >
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               230.62     0.81        0   230.62

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                    230.62     0.81        0   230.62

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  81a203         3 work working storage              m   24.6     0    0    24.6
                   parent=883990
  8b82d7         3 work working storage              m   18.8     0    0    18.8
                   parent=834226
  8b9d37         3 work working storage              m   18.2     0    0    18.2
                   parent=884fb0
  8915f2         f work shared library data          m   2.00     0    0    2.00
                   parent=898373
  89abb3         f work shared library data          m   2.00     0    0    2.00
                   parent=84b9a9
  824ea4         f work shared library data          m   2.00     0    0    2.00

Dies stellt das „Segment=Kategorie“ nicht gut dar, daher verwenden wir jetzt einen einfacheren Befehl – ​​tail – und zeigen eine Zusammenfassung und Einzelheiten zu jedem Speichersegmenttyp an – aber immer noch nur den „Arbeitsspeicher“ (also kein Caching).

# svmon -C tail -O filtertype=working,segment=category,unit=MB                    
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
tail                                  82.5     52.6     5.12     90.6

...............................................................................
SYSTEM segments                      Inuse      Pin     Pgsp  Virtual
                                      34.1     33.1     2.38     35.8

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   10002         0 work kernel segment               m   34.1  33.1 2.38    35.8

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                      0.18     0.02        0     0.18

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  88b4f1         f work working storage             sm   0.09     0    0    0.09
  82d005         2 work process private             sm   0.07  0.02    0    0.07
  8e0c9c         3 work working storage             sm   0.02     0    0    0.02

...............................................................................
SHARED segments                      Inuse      Pin     Pgsp  Virtual
                                      48.2     19.5     2.75     54.6

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
    9000         d work shared library text          m   48.2  19.5 2.75    54.6

Antwort3

nmon und dann "m" drücken zeigt Ihnen schnell ein paar großartige Verwendungsmöglichkeiten des Speichers

ipcs -am

Der gemeinsam genutzte Speicher, der von vielen Anwendungen wie DB2 und Oracle verwendet wird – überprüfen Sie die SEGSZ auf die Größe des ipcs -amBefehls. Die Spalte „Eigentümer“ gibt normalerweise an, wofür der Speicher verwendet wird, z. B. der Oracle-Benutzer für den SGA oder db2inst1 für den DB2-Puffercache.

Dann liegt es an den Prozessen, und das wird knifflig. Alle Prozesse, die dieselbe Programmdatei ausführen, teilen sich die Codeseiten als schreibgeschützt. Sie teilen sich möglicherweise auch einige oder fast alle Daten- und Sack-Seiten, wenn die Prozesse von einem gemeinsamen Prozess gestartet wurden, der sich dann aufgespalten hat, wie zum Beispiel RDBMS und Dinge wie Apache. Dies gilt auch für die Dutzenden von Bibliotheken, die Prozesse ebenfalls benötigen und die für uns weitgehend unsichtbar sind.

Aufgrund dieser unbekannten gemeinsamen Nutzung kommt es häufig vor, dass die Summe des Speichers aller Prozesse offensichtlich viel größer ist als der tatsächliche Arbeitsspeicher.

Wenn Sie nmondann „t“ für Top-Prozesse und dann „4“ zum Sortieren nach Prozessgröße verwenden, wird der Prozessspeicher angezeigt.

  • Größe KB = die Größe der Programmdatei auf der Festplatte.
  • Resident Set Size = wie groß es im Speicher ist (ausschließlich der Seiten, die sich noch im Dateisystem befinden (wie Code) und einiger Teile auf Auslagerungsfestplatten).“
  • Spalte ResText enthält die Codepages des Resident Set
  • Die Spalte ResData enthält die Daten- und Stapelseiten des Resident Set

Antwort4

Der topasBefehl zeigt den realen Arbeitsspeicher und den Prozentsatz des Computerspeichers an. Er sollte unter AIX standardmäßig verfügbar sein und ähnelt dem topunter Linux (bietet aber viel mehr Informationen).

Beim Starten topaswerden standardmäßig zahlreiche Informationen angezeigt (Prozesse mit der höchsten CPU-Auslastung, Übersicht über die Speicherauslastung usw.) und beim Drücken hwird ein Inline-Hilfetext mit anderen Tasten und deren Funktion angezeigt (wenn Sie beispielsweise cmehrmaliges Drücken ausführen, werden verschiedene Möglichkeiten zur Anzeige der CPU-Auslastung durchlaufen).

verwandte Informationen