AIX für Systemadministratoren
Speicherhierarchie
Die Anweisungen und Daten, die die CPU verarbeitet, werden aus dem Speicher entnommen. Speicher kommt in mehreren Schichten.
Register – die oberste Schicht, es ist High-Speed-Speicherzellen (kann 32-64 Bit-Daten enthalten)
Caches – Wenn Daten nicht in Registern gefunden werden können, werden sie in der nächsten Ebene gesucht, die Cache ist
L1 Cache der schnellste und kleinste (normalerweise auf CPU-Chip) 32-256 KB
L2 Cache, wenn die benötigten Daten nicht in L1, CPU versucht, es in L2 zu finden, kann es Megabyte groß sein (4MB)
L3 Cache , es ist ein bisschen weiter weg, um 32MB
RAM – Wenn die benötigten Daten nicht in den Hardware-Caches sind, dann wird TLB (Translation Lookaside Buffer) überprüft, nachdem der RAM
TLB – Cache der kürzlich aufgerufenen Adressen
Festplatte – Wenn sich die Adresse nicht im RAM befindet, tritt ein Seitenfehler auf und die Daten werden von der Festplatte abgerufen.
Ein Seitenfehler ist eine Anforderung, eine 4-KB-Datenseite von der Festplatte zu laden.
Die Funktionsweise von Demand Paging besteht darin, dass der Kernel jeweils nur wenige Seiten in den realen Speicher lädt. Wenn die CPU für eine andere Seite bereit ist, wird der RAM angezeigt. Wenn es dort nicht gefunden werden kann, tritt ein Seitenfehler auf, der dem Kernel signalisiert, mehr Seiten von der Festplatte in den RAM zu bringen.
Wenn die CPU auf Daten aus dem realen Speicher wartet, wird die CPU immer noch als beschäftigt betrachtet. Wenn Daten von der Festplatte benötigt werden, befindet sich die CPU im E / A-Wartezustand.
————————————-
L2-Cache und Leistung:
L2-Cache ist ein schneller Speicher, der Kopien der Daten von den am häufigsten verwendeten Hauptspeicherorten speichert.
Das erste Bild zeigt ein Power5-System, das zweite Bild Power6 (oder Power7) -System.
In Power5-Systemen gibt es einen einzelnen L2-Cache auf einem Prozessorchip, der von beiden Kernen auf dem Chip gemeinsam genutzt wird. In späteren Servern (Power6 und Power7) haben sie separate L2-Cache für jeden Kern auf einem Chip. Die Leistung der Partition hängt davon ab, wie effizient sie den Prozessorcache verwendet.
Wenn die Interferenz des L2-Caches mit anderen Partitionen minimal ist, ist die Leistung für die Partition viel besser. Wenn Sie den L2-Cache mit anderen Partitionen teilen, besteht die Möglichkeit, dass die am häufigsten aufgerufenen Daten des Prozessors aus dem Cache gelöscht werden und der Zugriff über den L3-Cache oder den Hauptspeicher mehr Zeit in Anspruch nimmt.
————————————-
Auslagerungsbereich (auch Auslagerungsbereich genannt)
Der Arbeitsspeicher und der Auslagerungsbereich sind in 4 KB große Abschnitte unterteilt, die als Seitenrahmen bezeichnet werden. (Eine Seite ist eine Einheit des virtuellen Speichers, die 4 KB Daten enthält.) Wenn das System mehr RAM benötigt, werden Seitenrahmen mit Informationen aus dem RAM auf die Festplatte verschoben. Das nennt man Paging out. Wenn diese Seitenrahmen von Informationen wieder benötigt werden, werden sie von der Festplatte genommen und zurück in den RAM verschoben. Dies nennt man Paging in.
Wenn das System mehr Zeit damit verbringt, Seitenrahmen in und aus dem RAM zu mischen, anstatt nützliche Arbeit zu leisten, schlägt das System zu.
Wenn die Menge des verfügbaren Auslagerungsraums unter einen Schwellenwert fällt, der als Auslagerungsraumwarnstufe bezeichnet wird, sendet das System allen Prozessen (mit Ausnahme der Kernelprozesse) ein SIGDANGER-Signal. Dieses Signal weist die Prozesse an, ordnungsgemäß zu beenden. Wenn die Menge an leerem Auslagerungsbereich weiter unter einen zweiten Schwellenwert fällt, der als Auslagerungsbereich-Kill-Level bezeichnet wird, sendet das System ein SIGKILL-Signal an Prozesse, die den meisten Auslagerungsbereich verwenden. (terminate nongracefully)
Wenn AIX installiert ist, erstellt es automatisch Paging-Speicherplatz auf der Installationsdiskette, die normalerweise die Festplatte hdisk0 ist. Der Name dieses Auslagerungsbereichs ist immer hd6. Die Datei /etc/swapspaces enthält eine Liste der Auslagerungsbereiche, die beim Systemstart aktiviert werden.
swapon ist ein Begriff aus den Tagen vor der Verwendung von Seitenrahmen. Damals, um 1982, tauschte AIX ganze Programme aus dem RAM auf die Festplatte. Heute bleibt ein Teil des Programms im RAM und der Rest wird aus dem Programm auf die Festplatte ausgelagert. Der Begriff Swapon blieb bestehen, daher bezeichnen wir heute manchmal das Auslagern und Auslagern als Auslagern
Sobald Sie eine Berechnungsseite auslagern, belegt sie weiterhin Speicherplatz in der Auslagerungsdatei, solange der Prozess existiert, auch wenn die Seite anschließend wieder ausgelagert wird. Im Allgemeinen sollten Sie Paging überhaupt vermeiden.
Wie viel Paging-Speicherplatz benötigen Sie auf Ihrem System? Was ist die Faustregel?
Datenbankadministratoren fordern normalerweise die höchste Anzahl von Anfragen an und weisen Sie möglicherweise an, den Auslagerungsbereich Ihres Arbeitsspeichers zu verdoppeln (die alte Faustregel). Wenn mein System über mehr als 4 GB RAM verfügt, möchte ich im Allgemeinen ein Eins-zu-Eins-Verhältnis von Auslagerungsbereich zu RAM erstellen. Überwachen Sie Ihr System häufig, nachdem Sie live gegangen sind. Wenn Sie feststellen, dass Sie sich nie wirklich 50 Prozent der Auslastung des Auslagerungsbereichs nähern, fügen Sie den Speicherplatz nicht hinzu.
Die Anzahl und die Art der Anwendungen bestimmen den benötigten Paging-Speicherplatz. Es wurden viele „Faustregeln“ für die Größenanpassung veröffentlicht, aber die einzige Möglichkeit, den Auslagerungsbereich Ihres Computers korrekt zu dimensionieren, besteht darin, die Auslagerungsaktivität zu überwachen.
Tipps für Paging-Raum:
– Nur 1 Paging-Speicherplatz pro Festplatte
– Festplatten mit der geringsten Aktivität verwenden
– Paging-Spcaes sollten die gleiche Größe haben
– Erweitern Sie eine Paging-Spcae nicht auf mehrere PV’s
Idealerweise sollten mehrere Paging-Spaces gleicher Größe auf verschiedenen physischen Volumes vorhanden sein. Der Paging-Bereich wird in einer Round-Robin-Weise zugewiesen und verwendet alle Paging-Bereiche gleichermaßen. Wenn Sie zwei Auslagerungsbereiche auf einer Festplatte haben, verteilen Sie die Aktivität nicht mehr auf mehrere Festplatten.Aufgrund der verwendeten Round-Robin-Technik wird die Auslastung des Auslagerungsbereichs nicht ausgeglichen, wenn sie nicht dieselbe Größe haben.
bootinfo -r zeigt den realen Speicher in Kilobyte an (dies funktioniert auch: lsattr -El sys0 -a realmem)
lscfg -vp |grep -p DIMM zeigt das Speicher-DIMM an
lsattr -El sys0 -a realmem (Attribute auflisten) Sehen Sie, wie viel realer Speicher Sie haben
ps aux | sort +4 -n listet auf, wie viel mem von den Prozessen verwendet wird
svmon -P | 1930>pid> Sie können sehen, wie viel Paging-spce ein Prozess verwendet
svmon -P -O sortseg=pgsp zeigt die Auslastung des Auslagerungsbereichs von Prozessen an
mkps -s 4 -n -a rootvg hdisk0 erstellt einen Auslagerungsbereich (geben Sie den Namen automatisch an:paging00)
-n aktiviert es sofort,
-a es wird auch beim nächsten Neustart aktiviert (fügt es zu /etc/swapspaces hinzu)
-s Größe 4 lp
lsps -a listet alle Auslagerungsbereiche und die Verwendung eines Auslagerungsbereichs auf
lsps -s Zusammenfassung aller Auslagerungsbereiche kombiniert (alle Auslagerungsbereiche werden addiert)
chps -s 3 hd6 Vergrößern Sie dynamisch die Größe eines Auslagerungsbereichs mit 3 lps
chps -d 1 paging00 Verkleinern Sie dynamisch die Größe eines Auslagerungsbereichs mit 1 lp (es wird ein temporärer Auslagerungsbereich erstellt)
/etc/swapspaces enthält eine Liste der Auslagerungsbereiche
vmstat -s
smitty mkps Hinzufügen von Auslagerungsbereichen space
smitty chps Ändern des Paging-space
swapon /dev/paging02 dynamisch aktivieren oder online bringen, ein Paging-space (oder smitty pgsp)
swapoff /dev/paging03 Deaktivieren Sie einen Paging-Space
——————————
entfernen eines Auslagerungsbereichs:
swapoff /dev/paging03 Deaktivieren eines Auslagerungsbereichs (das /dev wird benötigt)
rmps paging03 entfernt einen Auslagerungsbereich (das /dev wird nicht benötigt)
——————————
Zum Leeren des Auslagerungsbereichs:
(es wird ein hoher Prozentsatz angezeigt, aber tatsächlich wird nichts verwendet)
1. chps -d 1 hd6 es wird die Größe des Paging-Spave um 1 lp verringern (es wird ein temp. paging raum, kopieren sie die conntent…)
(wenn nicht genug Platz in der vg, wird es das nicht tun)
2. chps -s 1 hd6 Erhöhen Sie den Auslagerungsbereich auf seine ursprüngliche Größe
——————————
Fork:
Wenn eine Meldung bezüglich cannot fork vorliegt… dies wird wahrscheinlich durch einen geringen Auslagerungsbereich
verursacht Wenn ein Prozess fork() aufruft, erstellt das Betriebssystem einen untergeordneten Prozess des aufrufenden Prozesses.
Der von fork() erstellte untergeordnete Prozess ist eine Art Replikat des aufrufenden Prozesses. Einige Serverprozesse oder Daemons rufen fork() einige Male auf, um mehr als eine Instanz von sich selbst zu erstellen. Ein Beispiel hierfür ist ein Webserver, der sich vorab verzweigt, sodass er eine bestimmte Anzahl eingehender Verbindungen verarbeiten kann, ohne in dem Moment, in dem sie ankommen, forken () zu müssen.
Wenn AIX keinen Speicher mehr hat, werden Prozesse beendet. Der Schutz eines Prozesses (z. B. ssh) kann für den Server wichtig sein.
Die vmo-Option ’nokilluid‘ kann verwendet werden, um bestimmte Prozesse zu schützen:
1. grep ssh /etc/passwd Abrufen der Benutzer-ID von ssh (in unserem Fall war es 202)
2. vmo -o nokilluid = 202 Benutzer-IDs, die niedriger als dieser Wert sind, werden aufgrund des geringen Seitenspeichers nicht getötet
——————————
Verwaltung des virtuellen Speichers:
(dieser Abschnitt gilt auch für ioo, no, nfso)
vmo -a/egrep „minperm%|maxperm%|maxclient%|lru_file_repage|strict_maxclient|strict_maxperm|minfree|maxfree“
root@aix04 : / # vmo -a /grep maxclient
maxclient% = 8
strict_maxclient = 1
Wurzel@aix1: /root # vmo -L
NAME AKTUELL DEF BOOT MIN MAX EINHEIT TYPE
DEPENDENCIES
——————————————————————————–
cpu_scale_memp 8 8 8 1 64 B
——————————————————————————–
data_stagger_interval n/a 161 161 0 4K-1 4KB Seiten D
lgpg_regions
——————————————————————————–
D = Dynamisch: kann frei geändert werden
B = Bosboot: kann nur mit Bosboot und reboot geändert werden
S = Statisch: Der Parameter kann niemals geändert werden
R = Reboot: der Parameter kann nur während des Bootvorgangs geändert werden
/etc/tunables/nextboot <–Werte, die auf den nächsten Neustart angewendet werden. Diese Datei wird automatisch beim Booten angewendet.
/etc/tunables/lastboot <–wird beim Booten automatisch generiert. Es enthält die Parameter mit ihren Werten nach dem letzten Start.
/etc/tunables/lasboot.log <- enthält die Protokollierung der Erstellung der lastboot-Datei, dh jede vorgenommene Parameteränderung wird protokolliert
vmo -o maxperm%=80 <- setzt auf 80
vmo -p -o maxperm%=80 -o maxclient%=80 <- setzt maxperm% und maxclient% auf 80
(-p: setzt sowohl den aktuellen als auch den Neustartwert (aktualisiert den aktuellen Wert und /etc/tunables/nextboot)
vmo -r -o lgpg_size=0 -o lgpg_regions=0 <–setzt nur in der Nextboot-Datei, wird also nach dem Neustart aktiviert
——————————
SAP-Hinweis 973227 Empfehlungen:
minperm% = 3
maxperm% = 90
maxclient% = 90
lru_file_repage = 0
strict_maxclient =1
strict_maxperm = 0
minfree = 960
maxfree = 1088
————————————–
————————————–
————————————–