So finden Sie Shared Memory Limits-und Semaphore-Grenzen in Solaris,HP-UX und AIX?
Ich bin mit den folgenden Befehlen zu finden, Shared Memory Limits-und Semaphore-Grenzen in Linux.
Finden Shared Memory Limits, die ich verwendet diesen Befehl:
ipcs -lm
und ich bekam die folgende Ausgabe:
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 1073741824
min seg size (bytes) = 1
Finden Semaphore Limits benutzte ich das Kommando:
ipcs -ls
und ich bekam die folgende Ausgabe:
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
Ich weiß nicht, wie man diese Ausgabe in Solaris,HP-UX und AIX. Ich habe viel gesucht im internet, aber ich konnte nicht die feine Lösung. Teilen Sie Ihre Ideen, um diese Dank im Voraus.
Sie schreiben shell-Skript oder Sie benötigen eine Lösung in C? Wie auch immer, mit sysctl-Variablen in Linux vielleicht einfacher: d.h.
Ja, ich Schreibe shell-Skript
Ich habe meine Kenntnisse über Linux & Solaris. Ich verwendet, um zu tun, dass in AIX einmal, aber es war lange her, also machte ich meine post ein wiki, hoffe, jemand wird updates mein post auf der AIX & HP-UX
cat /proc/sys/kernel/shmmax
erhalten Sie die maximale shared-memory-segment. Apropos Solaris, Solaris 10 führt Projekte, so dass Lösungen für >= 10 und <10 wird anders sein. So oder so, kann trial-and-error-Ansatz ist einfacher: if error in shmget(100 GB) than shmmax is not enough
Ja, ich Schreibe shell-Skript
Ich habe meine Kenntnisse über Linux & Solaris. Ich verwendet, um zu tun, dass in AIX einmal, aber es war lange her, also machte ich meine post ein wiki, hoffe, jemand wird updates mein post auf der AIX & HP-UX
InformationsquelleAutor Kavi Chinna | 2015-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Trial-and-error
Die einfachste und robustere Methode ist die Sonde, wenn Sie können, reservieren Sie diese Ressourcen, d.h.:
I. e. Oracle-Datenbank funktioniert.
Linux
Unter Linux sind diese Grenzwerte erfolgt über
sysctl
:Erhalten Sie die sysctl-Parameter von
/proc/sys
:Solaris vor 10
In Solaris vor 10 kernel-Parameter verwendet wurden. Sie befinden sich in
/etc/system
. Erhalten Sie die tatsächlichen Werte aus dem kernel, aber nur, wennshmsys
undsemsys
Module geladen sind (Solaris-faul-lädt diese auf den ersten syscall):Beachten Sie, dass ich verwendet
/J
Modifikator in die mdb, die dumps 8-byte die hexadezimale. Auf 32-bit-builds, sind Sie wahrscheinlich müssen/X
die Müllkippen 4-bytes.Solaris 10 und höher
Solaris 10 eingeführt Projekten, die es ermöglichen, diese Grenzen mit einer Granularität von Benutzer oder sogar ein Prozess. Verwenden
prctl
um entsprechende Grenzwerte:priviliged
Werten ist, was Sie suchenInformationsquelleAutor
AIX
AIX keine Befehle, Ausgabe der IPC-Grenzen, die Sie suchen, leider. Zumindest keine, die ich überhaupt gefunden habe... ich in der Regel beziehen sich auf diese Tabelle und nehmen den kleinsten gemeinsamen Nenner für die Versionen von AIX, die ich bin Unterstützung.
Wenn ich brauchen, um programmgesteuert erkennen von Grenzen in der Schale ist, würde ich nur schreiben eine wrapper-Funktion/Skript, eingeschlossen die Logik in der Tabelle aufgeführt, basierend auf den erkannten version von AIX.
InformationsquelleAutor CoreyStup