Die erste Lösung ist meist mehr RAM. Das sollte nicht immer so sein

Embedded board with an application processor and a DDR3 memory chip

Zusammenfassung: Wenn Embedded-Linux-Software wächst, lautet der erste Vorschlag oft: mehr RAM. Manchmal ist das richtig. Bei LaMetric SKY haben Profiling, Softwareoptimierung und zRAM die ursprüngliche Hardwarekonfiguration erhalten und höhere Stücklistenkosten bei jedem Gerät vermieden.

Eine bekannte Anfrage

Meist beginnt es mit: „Können wir von 2 GB auf 4 GB wechseln?“ Manchmal ist das genau die richtige Entscheidung. Aber manchmal nicht.

Viele Embedded-Linux-Projekte folgen demselben Muster. Wenn die Software wächst, steigt der Speicherbedarf, und der erste Vorschlag ist mehr RAM.

Warum mehr RAM selten eine kleine Änderung ist

Bei einem vernetzten Gerät ist ein Speicher-Upgrade nicht nur eine neue Teilenummer. Ein anderes Speicherbauteil kann eine Board-Änderung bedeuten, ein neues Layout und neue Prüfungen der Signalintegrität, einen anderen Lieferanten und Preis sowie eine neue Qualifizierung in der Produktion. Bei einem Produkt, das bereits im Feld ist, bedeuten zwei Hardwarevarianten außerdem zwei Konfigurationen, die gebaut, getestet und betreut werden müssen.

Die Kosten fallen bei jeder ausgelieferten Einheit erneut an. Deshalb lohnt es sich, vor der Entscheidung genau zu wissen, wohin der Speicher geht.

Was bei LaMetric SKY passiert ist

Während der Entwicklung von LaMetric SKY überstieg der Speicherbedarf der Software schließlich 128 MB. Die naheliegende Lösung war mehr RAM. Das hätte aber auch die Stücklistenkosten jedes ausgelieferten Geräts erhöht.

Stattdessen wurde eine andere Frage gestellt: Lassen sich CPU-Zyklen gegen RAM tauschen?

  • Der Speicherverbrauch wurde profiliert.
  • Die Software wurde optimiert.
  • zRAM wurde eingeführt. Statt selten genutzte Speicherseiten in den Flash auszulagern, komprimierte Linux sie im RAM.

Die CPU-Auslastung stieg leicht, aber das System gewann genug effektiven Speicherspielraum, um die ursprüngliche Hardwarekonfiguration zu behalten.

Build icon
Passende Leistung
Embedded-Linux-Entwicklung
Mehr erfahren →

Wohin der Speicher bei Embedded Linux meist geht

  • Anwendungsprozesse, die mehr Bibliotheken, Caches oder Ressourcen laden, als sie nutzen.
  • Mehrere Laufzeitumgebungen, zum Beispiel getrennte Interpreter oder Frameworks für verschiedene Dienste.
  • Puffer für Grafik, Video, Netzwerk oder Logging, die für den schlechtesten Fall bemessen sind und nie freigegeben werden.
  • Dateisystem-Caches und temporäre Dateien in RAM-basierten Dateisystemen.
  • Speicherlecks und Fragmentierung, die sich erst nach Tagen Laufzeit zeigen.

Optionen, bevor Sie mehr Speicher kaufen

OptionWas sie bewirktAbwägung
Profiling und Beheben der größten VerbraucherFindet die Prozesse und Puffer, die den meisten Speicher belegenEngineering-Zeit, keine Hardwareänderung
SoftwareoptimierungKleinere Builds, weniger Dienste, schlankere Bibliotheken, kleinere CachesBraucht Tests, damit alle Funktionen erhalten bleiben
zRAMKomprimiert selten genutzte Speicherseiten im RAM, statt sie in den Flash auszulagernBraucht etwas CPU; vermeidet zusätzlichen Flash-Verschleiß
Auslagerung in den FlashVerschiebt Speicherseiten auf den DatenspeicherLangsam und zusätzlicher Schreibverschleiß am Flash
Mehr RAMSchafft physische ReserveHöhere Kosten bei jeder Einheit, Board- und Lieferkettenänderungen

Das Prinzip

Erst die Software optimieren, dann die Hardware aufrüsten. Mehr RAM ist manchmal die richtige Antwort, aber es sollte nicht die erste sein.

Add more RAM vs optimise first with profiling and zRAM

Checkliste, bevor Sie RAM ergänzen

  • Den Speicherverbrauch pro Prozess auf dem echten Gerät nach langer Laufzeit messen, nicht nur nach dem Boot.
  • Trennen, was das System braucht und was es nur zwischenspeichert.
  • Mit Langzeittests nach Speicherlecks suchen.
  • zRAM und einen schlankeren Build ausprobieren und die CPU-Kosten messen.
  • Wachstum einplanen: Wie viel Reserve brauchen künftige Software-Releases?
  • Erst dann die Kosten eines Speicher-Upgrades über die erwartete Stückzahl vergleichen.

So profilieren Sie den Speicher eines Embedded-Linux-Geräts

Beginnen Sie mit dem Gesamtsystem und grenzen Sie dann ein. Betrachten Sie den gesamten Speicherverbrauch, den Page Cache und den freien Speicher über eine lange Laufzeit, nicht nur direkt nach dem Boot. Schlüsseln Sie ihn dann pro Prozess auf und trennen Sie den Speicher, den ein Prozess wirklich besitzt, von dem, den er mit anderen teilt, etwa Bibliotheken. Wiederholen Sie die Messung nach Tagen Laufzeit und unter der höchsten realen Last, denn Lecks und Fragmentierung zeigen sich erst mit der Zeit.

Hilfreich ist auch ein Blick auf den Speicher pro Funktion: welche Dienste nur für eine Funktion existieren, welche Caches kleiner sein könnten und welche Puffer für einen schlimmsten Fall bemessen sind, der im Feld nie eintritt.

Kosten über die gesamte Produktlebensdauer betrachten

Eine Speicherentscheidung wird einmal getroffen, aber bei jeder Einheit bezahlt, solange das Produkt ausgeliefert wird. Vergleichen Sie den einmaligen Engineering-Aufwand der Optimierung mit den Mehrkosten pro Einheit multipliziert mit der erwarteten Stückzahl. Berücksichtigen Sie das Lieferrisiko: Speicherbauteile ändern über die Produktlebensdauer Preis und Verfügbarkeit, und ein Design, das von einem größeren oder selteneren Bauteil abhängt, ist stärker exponiert. Lassen Sie andererseits genug Reserve für die geplanten Software-Releases, damit dem Produkt nicht zwei Jahre nach dem Launch der Speicher ausgeht.

FAQ

Ist zRAM für Seriengeräte sicher?

zRAM ist Teil des Linux-Kernels und weit verbreitet. Wie jede Änderung sollte es unter realer Last getestet und die CPU-Kosten gemessen werden.

Wann ist mehr RAM die richtige Antwort?

Wenn das Profiling zeigt, dass das Produkt den Speicher wirklich braucht, die Optimierung über die erwartete Stückzahl mehr kosten würde als die Hardware oder die Roadmap Reserven braucht, die Software nicht schaffen kann.

Sollten wir das vor dem Design-Freeze entscheiden?

Ja. Speicherentscheidungen sind vor dem Einfrieren des Boards am günstigsten und beeinflussen auch die Bezugsmöglichkeiten, wie wir in unserem Artikel über die RAM-Knappheit beschrieben haben.

Ersetzt zRAM eine saubere Speicherverwaltung?

Nein. Es schafft Reserve, aber Lecks und überdimensionierte Puffer wachsen weiter. Beheben Sie zuerst die größten Verbraucher und nutzen Sie zRAM dann für den verbleibenden Spielraum.

Wie vermeiden wir, dass nach dem Launch der Speicher ausgeht?

Verfolgen Sie den Speicherverbrauch in jedem Release, testen Sie mit langer Laufzeit und der höchsten realen Last und überwachen Sie den Speicher auf Geräten im Feld. Legen Sie ein Budget pro Dienst fest, in das neue Funktionen passen müssen, und behandeln Sie ein Release, das das Budget überschreitet, wie jeden anderen fehlgeschlagenen Test. Das Monitoring im Feld schließt den Kreis: Wächst der Speicher auf einigen Geräten über Wochen, sehen Sie es vor den Nutzern und können es mit einem Software-Update beheben.

Was, wenn das Produkt später wirklich mehr Speicher braucht?

Dann planen Sie es als Hardware-Revision mit klarem Grund, einem Kostenvergleich und einem Migrationsplan für Software und Produktion. Eine Entscheidung auf Basis von Messungen lässt sich leichter begründen und einplanen als eine unter Druck.

Wie wir helfen

Unsere Embedded-Linux-Ingenieure profilieren Speicher- und Bootverhalten, bevor jemand die Stückliste ändert. Siehe unsere Leistungen Embedded-Linux-Entwicklung und Senkung der Stücklisten- und Fertigungskosten. Wenn Ihr Produkt gerade auf einen größeren Speicherbaustein wechseln soll, sprechen Sie zuerst mit einem Ingenieur.

Engineering-Insights direkt ins Postfach

Dazu neue Artikel, News und Unternehmens-Updates.

Weitere Artikel

Kontakt

Sprechen Sie mit einem Ingenieur, nicht mit dem Vertrieb

Idee, Prototyp, Produktion oder eine Flotte im Feld: Sagen Sie uns, wo Sie stehen. Ein erfahrener Ingenieur antwortet innerhalb eines Werktags.

Ihre Vorteile:
Wie geht es weiter?
1

Ein kostenloses 30-minütiges Gespräch mit einem erfahrenen Ingenieur

2

Ein kurzes technisches Erstgespräch

3

Ein Angebot mit Umfang, Zeitplan und Kosten

Erzählen Sie uns von Ihrem Projekt
PDF, Office-Dateien, Bilder oder ZIP, bis 10 MB