Ich habe ein verblüffendes Problem. Ich habe eine Bibliothek , die verwendet sg zur Ausführung angepasst CDB. Es gibt einige Systeme, die routinemäßig Probleme mit der Speicherzuweisung in sg haben . Normalerweise hat der SG- Treiber ein hartes Limit von ca. 4 MB, aber wir sehen es auf diesen wenigen Systemen mit ~ 2,3 MB Anfragen. Das heißt, die CDBs bereiten sich auf eine Übertragung von 2,3 MB vor. Hier sollte es keine Probleme geben: 2.3 <4.0.
Nun das Profil der Maschine. Es handelt sich um eine 64-Bit-CPU, auf der jedoch CentOS 6.0 32-Bit ausgeführt wird (ich habe sie weder erstellt noch habe ich etwas mit dieser Entscheidung zu tun). Die Kernel-Version für diese CentOS-Distribution ist 2.6.32. Sie haben 16 GB RAM.
Hier sehen Sie, wie die Speichernutzung auf dem System aussieht (da dieser Fehler während des automatisierten Tests auftritt, habe ich noch nicht überprüft, ob dies den Status widerspiegelt, in dem dieser Fehler von sg zurückgegeben wird ).
top - 00:54:46 up 5 days, 22:05, 1 user, load average: 0.00, 0.01, 0.21
Tasks: 297 total, 1 running, 296 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 15888480k total, 9460408k used, 6428072k free, 258280k buffers
Swap: 4194296k total, 0k used, 4194296k free, 8497424k cached
Ich habe diesen Artikel aus dem Linux Journal gefunden, in dem es um die Zuweisung von Speicher im Kernel geht. Der Artikel ist datiert, scheint sich aber auf 2.6 zu beziehen (einige Kommentare zum Autor an der Spitze). Der Artikel erwähnt, dass der Kernel auf ungefähr 1 GB Speicher begrenzt ist (obwohl es aus dem Text nicht ganz klar ist, ob diese jeweils 1 GB für physisch und virtuell oder insgesamt sind). Ich frage mich, ob dies eine genaue Aussage für 2.6.32 ist. Letztendlich frage ich mich, ob diese Systeme diese Grenze erreichen.
Obwohl dies keine wirkliche Antwort auf mein Problem ist, frage ich mich, ob die Behauptung für 2.6.32 wahr ist. Was ist dann die tatsächliche Speichergrenze für den Kernel? Dies muss möglicherweise bei der Fehlerbehebung berücksichtigt werden. Alle anderen Vorschläge sind willkommen. Was dies so verwirrend macht, ist, dass diese Systeme mit vielen anderen identisch sind, die nicht dasselbe Problem aufweisen.