OOM tötet und vertauscht IoT-Geräte mit eMMC- und SD-Speicher?

394
jww

Bei BeagleBoards, CubieTrucks usw. erlebe ich gelegentlich einen Out-of-Memory (OOM) -Ausstoß des Compilers. Es handelt sich um IoT-Geräte mit ARM-Stromversorgung, die im Allgemeinen 512 MB bis 2 GB RAM aufweisen und 4 oder 8 GB eMMC verwenden und SD-Kartenspeicher. Ihnen fehlt oft eine Auslagerungsdatei aufgrund der Eigenschaften der zugrunde liegenden Speichertechnologie.

Ich habe viele Informationen zu Desktops und Servern gefunden, nicht jedoch zu IoT-Geräten.

Ich erkenne auch, dass die zusätzlichen Schreibvorgänge die Lebensdauer der Medien verringern.

Was sind die Empfehlungen für den Austausch von BeagleBoards, CubieTrucks usw.?

0
Sehr langsam beim Schreiben (und der relativ geringen Anzahl an Schreiblebensdauern) deutet nicht auf SWAP hin, sondern, wenn möglich, enge Speicherverwaltung in der Anwendung, um Speicherauslastung zu vermeiden (wäre meine Empfehlung, aber ich bin ein Coder ;-) Dilettant vor 7 Jahren 0
@Dilettant - Diese Geräte verwenden standardmäßig keine Auslagerungsdatei. Ich möchte mit einer Auslagerungsdatei experimentieren, weil mir der RAM ausgeht. Ich kann nichts gegen OOM-Kills in "cc1plus" tun (ich habe auch andere Dinge ausprobiert, zB "-pipe" vermeiden). Ich habe auch [das Problem] (http://bugs.linaro.org/show_bug.cgi?id=1997) an Linaro gemeldet. Sie können auch nichts tun. jww vor 7 Jahren 1
Ich habe einen kleinen Swap mit einem mit eMMC ausgestatteten, mit Yocto Linux betriebenen Gerät verwendet - aber es war so klein, dass ich weder von OutOfRAMbutStillInSwap-Situationen profitierte = (), noch interessierte ich mich dafür, was es auf die körperliche Gesundheit auswirkt. Dilettant vor 7 Jahren 0
Warum nicht auf Ihrem PC kompilieren? Daniel B vor 7 Jahren 0
@DanielB - Das hängt von der getesteten Bibliothek ab. Crypto ++ ist einfach (es hat Prozeduren dokumentiert); OpenSSL ist nicht so einfach (es gibt keine offiziellen, dokumentierten Verfahren). Um die Probleme beim Cross-Compilieren zu vermeiden, sende ich einfach ein SSH in ein Gerät und führe den nativen Build aus. Die andere Wahl ist [Debian Chroot's] (http://cryptopp.com/wiki/Debian_Chroot) auf dem Host-Computer, die bis zu 10x langsamer sind. jww vor 7 Jahren 0
Ich schlage vor, Sie schauen in Crosstool-ng. Es hat gut funktioniert, als ich es vor langer Zeit ausprobiert habe. Es sollte das Cross-Compilieren wesentlich einfacher machen. Daniel B vor 7 Jahren 0

0 Antworten auf die Frage