Max mögliche Größe des gemeinsam genutzten Speichers im 64-bit-Linux-Maschine

Habe ich die 64-bit-Linux-Rechner(Intel Xeon L5410 @ 2,33 GHz).

**meminfo:**
MemTotal:     24672736 kB 
MemFree:        145372 kB 
Buffers:        181896 kB 
Cached:       22004648 kB 
SwapCached:     195072 kB 
Active:        9761028 kB 
Inactive:     13964532 kB 
HighTotal:           0 kB 
HighFree:            0 kB 
LowTotal:     24672736 kB 
LowFree:        145372 kB 
SwapTotal:    17414452 kB 
SwapFree:     15618852 kB 
Dirty:         2125148 kB 
Writeback:           0 kB 
AnonPages:     1358396 kB 
Mapped:        1069632 kB 
Slab:           699464 kB 
CommitLimit:  29750820 kB 
Committed_AS:  9236252 kB 
PageTables:      38620 kB 
VmallocTotal: 34359738367 kB 
VmallocUsed:     17272 kB 
VmallocChunk: 34359718843 kB 
HugePages_Total:     0 
HugePages_Free:      0 
HugePages_Rsvd:      0 
Hugepagesize:     2048 kB 

**Also the shm details are:**
shmall                2097152 
shmmax                3294967296 
shmmni                4096 

Ich versuche zum erstellen von gemeinsam genutzten Speicher über 2 GB, shmget erfolgreich ist, aber später core-dump tritt auf, mit der Fehlermeldung, dass nicht auf den Speicher zugreifen.
Während gemeinsamer Speicher unter 2 GB funktioniert einwandfrei.
Ich bin in der Lage zu finden, jeden gültigen Grund für das als meine shmmax Wert ist rund 3GB

  • wie haben Sie die binäre? Wenn Sie laden Sie die core-Datei in gdb, und verwenden Sie die "bt" - Befehl, um die Ablaufverfolgung zu erstellen, was bedeutet es zu sagen?
  • Die core-Datei zeigte mir die Linie, wo coredump aufgetreten. Wie ich Ihnen gesagt oben war der Fehler kein Zugriff auf den Speicher an der Adresse ...
  • dieser Fehler bedeutet mir nichts. Wie schwer ist es, fügen Sie den backtrace bekommt man so Lesen kann ich es für mich?
  • Könnten Sie bitte geben Sie eine Speicher-Karte von Ihrem Prozess, nachdem Sie Sie anfügen, die shared-memory-segment? Der einfachste Weg dies zu tun ist, um einfach nur eine pause nach shmat() und verwenden cat /proc/<pid>/maps oder besser cat /proc/<pid>/smaps. Man könnte auch erstellen und mmap() eine Datei in /dev/shm/ oder ein auf der Festplatte, wenn der Arbeitsspeicher.
InformationsquelleAutor Baplix | 2012-06-12
Schreibe einen Kommentar