Startseite>Die Raspberry-Pi-Hardware optimal ausreizen
Aus Raspberry Pi Geek 06/2013

Die Raspberry-Pi-Hardware optimal ausreizen

© Steve Mann, 123RF

Need for Speed

Bernhard Bablok

Der Raspberry Pi ist zwar klein und sparsam, jedoch auch nur begrenzt leistungsfähig. Gezieltes Tuning hilft ihm aber schnell auf die Beine.

README

In Sachen Performance bietet der Raspberry Pi bekanntermaßen eher Schonkost. Als Tempobremse erweisen sich hier neben der 700-MHz-CPU überraschenderweise auch Komponenten wie die Stromversorgung. Der Artikel zeigt wie Sie die Leistung des RasPi ausloten und dann durch gezielte Eingriffe um bis zu 50 Prozent verbessern.

Der Raspberry Pi eignet sich aus vielen Gründe beinahe perfekt zum Hosten eigener Web-Projekte. Bei komplexeren Anwendungen kommt der Knirps aber mächtig ins Schwitzen, wie etwa bei Owncloud [1]. Zwar läuft dessen Installation problemlos durch, doch die Antwortzeiten erweisen sich dann selbst beim bestem Willen als nicht erträglich (siehe Kasten “Owncloud-Tuning”). Entsprechend gilt es, etwas an der Performance-Schraube zu drehen.

Bei Problemen solcher Art gilt unabhängig von der Hardwareplattform immer die Reihenfolge: Messen, ändern, messen. Nur diese Methode gibt sicheren Aufschluss darüber, welche Maßnahmen am Ende auch erfolgreich waren.

Owncloud-Tuning

Es war das träge Verhalten von Owncloud auf dem RasPi, das den Autor ursprünglich zur Arbeit an diesem Artikel animierte. Dabei bot die Privat-Cloud auch abseits der Hardware Anlass zu weitergehenden Performance-Untersuchungen. Tatsächlich steigerten schon gewisse Optimierungsmaßnahmen innerhalb der Anwendung deren Ablaufgeschwindigkeit deutlich.

Eine Analyse mit Firebug ergab zum Beispiel, dass jeder Seitenabruf sehr viel Zeit im Skript cron.php vertrödelte, über das Owncloud regelmäßige interne Aufräumarbeiten anstößt. Als Vorgabe erfolgt eine Aktivität pro Seitenabruf. Stellen Sie, wie in der Owncloud-Dokumentation beschrieben, direkt auf cron um, dann erfolgt das Ausmisten im Hintergrund, die Benutzer bekommen die abgerufenen Seiten deutlich schneller zu sehen.

Die Installation des PHP-Caches APC mit apt-get install php-apc bringt ebenfalls zusätzliche Leistung, genauso wie die direkte Auslieferung von statischen Seiten ohne den Umweg über PHP.

Messen, messen, messen

Bei Performance-Problemen greift der erfahrene Linux-Anwender naturgemäß erst einmal zum Unix-Urgestein top, das Auskunft über die aktuelle Systemlast gibt.

Abbildung 1 zeigt die Ausgabe von Top für eine Situation mit sehr hoher CPU-Last. Das bereitet in der Regel an sich keine Probleme, aber wenn dadurch zum Beispiel Antwortzeiten leiden, wäre eigentlich eine schnellere CPU gefordert. Anders sieht es in Abbildung 2 aus, wo der wa-Wert (“wait”) sehr hoch ausfällt. Hier wartet die CPU auf Daten von einem Speichermedium und dreht derweil Däumchen. Ein schnellerer Prozessor würde hier nur mehr Zyklen lang nichts tun.

Abbildung 1: Bei hoher CPU-Last könnte ein schnellerer Prozessor möglicherweise das Problem beseitigen, doch …

Abbildung 1: Bei hoher CPU-Last könnte ein schnellerer Prozessor möglicherweise das Problem beseitigen, doch …

Abbildung 2: … bei einem hohen Wert für "Waits" wartet selbst eine leistungsfähigere CPU nur länger auf Daten.

Abbildung 2: … bei einem hohen Wert für “Waits” wartet selbst eine leistungsfähigere CPU nur länger auf Daten.

Top gibt zwar wichtige Hinweise, zeigt aber immer nur den momentanen Status an. Ausgefeiltere Monitoring-Programme zeichnen dagegen den Stand verschiedenster Messwerte regelmäßig auf und stellen so auch Verlaufsdaten bereit. Das erspart Ihnen die Mühe, bei Tests ständig ein Fenster mit der Top-Ausgabe im Blick behalten zu müssen.

Hier bietet sich der Einsatz von Ganglia an, das zwar für das Performance-Monitoring von Clustern gedacht ist, sich aber durchaus auch für Einzelrechner eignet. Unter Raspbian müssen Sie lediglich die Ganglia-Pakete einrichten und sonst nur wenig konfigurieren. Trotzdem kommen Sie damit in den Genuss sehr übersichtlich grafisch aufbereiteter Ergebnisse (siehe Kasten “Ganglia installieren”).

Ganglia installieren

Ganglia [5] selbst benötigt lediglich die Pakete ganglia-monitor und gmetad. Der Einsatz des Web-Frontends (ganglia-webfrontend) setzt dagegen neben einem Webserver auch eine lauffähige PHP-Installation voraus. Das Setup via apt-get zieht aber neben PHP selbst auch gleich noch den kompletten Apache-Stack mit auf den RasPi. Um das zu verhindern, installieren Sie vor den leichtgewichtigen Lighttpd , erst danach folgen PHP und zum Schluss das Web-Frontend für Ganglia. Die dazu notwendigen Kommandos zeigt Listing 1. Dessen letzter Befehl verlinkt das Web-Frontend in den Dateibaum, den Lighttpd ausliefert. Anschließend funktioniert der Zugriff über die Adresse http://[Host|IP]/ganglia/.

Listing 1

 

# apt-get install lighttpd
# apt-get install php5-cgi php-apc
# lighttpd-enable-mod fastcgi-php
# service lighttpd force-reload
# apt-get install ganglia-webfrontend
# ln -s /usr/share/ganglia-webfrontend /var/www/ganglia

Benötigen Sie keine grafische Analyse, installieren Sie statt Ganglia das Paket sysstat. Auch hier sammelt eine Komponente die Messwerte im Hintergrund. Das Kommando sar zeigt die Ergebnisse im Terminal an. Das Sysstat-Paket enthält darüber hinaus auch iostat, mit dem Sie die Schreib- und Leseleistung von Massenspeichern messen.

Zusätzlich benötigen Sie noch Programme, die für Tests entsprechende Lasten auf dem System erzeugen. Idealerweise handelt es sich hier um solche, die Ihrem Anwendungsfall nahe kommen. Alternativ dazu gibt es diverse Benchmark-Programme, die einzelne Komponenten wie die CPU oder den Massenspeicher gezielt belasten, aber für sich genommen realitätsfremd sind. Diese Programme (etwa der berühmte Linpack-Benchmark für Floating-Point-Leistung oder Bonnie++ für die I/O-Leistung) geben auch für einen Vorher/Nachher-Vergleich relevante Messwerte aus.

USB verleiht Flüüügel

Als Wurzel allen Übels beim Betrieb des RasPi entpuppt sich überraschenderweise die Stromversorgung. Das Gerät bezieht den Strom über einen Micro-USB-Anschluss und benötigt relativ konstante 5 Volt bei mindestens 700 mAh. Manche USB-Steckernetzteile liefern jedoch stur 500 mAh und simulieren damit einen PC-Anschluss. Andere besitzen zwei Buchsen, die vorgeblich je 2100 mAh liefern, obwohl die Gesamtstromstärke des Netzteils nur 3600 mAh beträgt. Solche Ladenetzteile reduzieren die Spannung bei sinkender Stromabnahme – für (fast) aufgeladene Tablets oder Smartphones durchaus sinnvoll, für den Raspberry Pi ein Problem.

Der per Micro-USB aufgenommene Strom versorgt CPU, GPU sowie alle per USB angeschlossenen Komponenten, insbesondere auch den Netzwerkchip. Die maximale Stromaufnahme des RasPi beträgt circa 1100 mAh. Das gilt es bei allen folgenden Tuning-Schritte stets zu berücksichtigen. Aber auch im Normalbetrieb deuten Instabilitäten oder Fehler beim Schreiben auf die SD-Karte auf eine mangelhafte Stromversorgung hin.

Overclocking

Es ist niemals unproblematisch, empfindliche Hardware außerhalb ihrer Spezifikation zu betreiben. In der ersten Revision des Pi änderte beispielsweise schon ein einziger Overclocking-Versuch irreversibel ein Bit im Prozessor – die Garantie war damit verwirkt. Inzwischen haben die Macher des Raspberry dazugelernt und erlauben ein Overclocking innerhalb gewisser Grenzen. Wer sich außerhalb dieser bewegt, verliert aber wie früher den Garantieanspruch.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland