Mit / dev / shm können Anwendungen manchmal abstürzen

359
Emanuele

Manchmal verwende ich /dev/shmtemporäre Dateien mit einer Größe von bis zu 500 MB (ich habe 8 GB RAM - Ubuntu 11.04 x86-64) und wenn ich StarCraft II (mit Wine) lade, bekomme ich möglicherweise Speicherfehler im Spiel (beschädigte Daten oder "Couldn" t xyz laden ").

Wenn ich stattdessen ein geeignetes temporäres Dateisystem für meine Dateien verwende (z. B. SSD-Datenträger /disk3), tritt kein Problem auf.

Könnte dies auf die Tatsache zurückzuführen sein, dass /dev/shmkontinuierlich gefüllt und entleert wird, während SC2 (oder andere Programme hier) mit etwas verfügbarem Speicher rechnen und daher mallocfehlschlägt (und der Prozess dann Fehler meldet , bei denen vorher erwartet wurde, dass etwas verfügbarer Speicher vorhanden ist)?

Ich bin wirklich sehr verwirrt.

3

1 Antwort auf die Frage

0
mirabilos

Soweit ich gehört habe, hat die GNU libc ihre eigene Semantik /dev/shm/und als Benutzer (oder lokaler Administrator) sollten Sie sie überhaupt nicht selbst verwenden.

In den meisten Distributionen ist die Größe außerdem begrenzt.

Und ja, so etwas Winewird viel gemeinsam genutzten Speicher verwenden, der auch frisst /dev/shm.

Ich empfehle, a tmpfsan einem anderen Ort zu montieren (in der Tat empfehle ich, Systeme mit /tmpas auszuführen tmpfsund TMPDIR=/var/tmpfür Dinge zu verwenden, die einen größeren Arbeitsbereich benötigen).