Kapitel 3. Bandbreite und Prozessleistung

Von den zwei Ressourcen, die in diesem Kapitel beschrieben werden, ist eine davon (Bandbreite) oft für den Systemadministrator nicht einfach zu verstehen, während die andere (Prozessleistung) zumeist einem einfach zu verstehenderen Konzept unterliegt.

Zusätzlich dazu mag der Anschein erweckt werden, dass diese beiden Ressourcen nicht eng miteinander verbunden sind — warum also gemeinsam behandeln?

Der Grund dafür, dass beide Ressourcen gemeinsam behandelt werden, ist derjenige, dass diese Ressourcen auf Hardware basieren, welche in direktem Zusammenhang mit der Fähigkeit eines Computers Daten zu transportieren und zu verarbeiten stehen.

3.1. Bandbreite

Grundsätzlich ist Bandbreite die Kapazität zur Datenübertragung — in anderen Worten, wieviele Daten in einem bestimmten Zeitraum von einem Punkt zum anderen transportiert werden können. Eine Punkt-zu-Punkt Datenkommunikation setzt folgende zwei Dinge voraus:

Es gibt zwei Arten von Systemkomponenten, die diesen Anforderungen entsprechen:

Die folgenden Abschnitte untersuchen diese in allen Einzelheiten.

3.1.1. Busse

Wie zuvor angegeben, ermöglichen Busse Punkt-zu-Punkt Kommunikation und benutzewn eine Art Protokoll, um sicher zu gehen, dass jegliche Kommunikation auf eine kontrollierte Art abläuft. Jedoch haben Busse auch andere charakteristische Merkmale:

  • Standardisierte, elektrische Merkmale (wie zum Beispiel die Anzahl von Leitern, Spannungspegel, Übertragungsgeschwindigkeit, usw.)

  • Standardisierte, mechanische Merkmale (wie die Art von Stecker, Kartengröße, physikalische Anordnung, usw.)

  • Standardisiertes Protokoll

Das Wort "standardisiert" ist wichtig, da Busse die hauptsächliche Form darstellen, in der verschiedene Systemkomponenten verbunden werden.

In vielen Fällen erlauben Busse die Verbindung von Hardware unterschiedlicher Hersteller; ohne Standardisierung wäre dies nicht möglich. Jedoch auch in Situationen, in denen ein Bus urheberrechtliches Eigentum eines bestimmten Erzeugers ist, ist Standardisierung ein wichtiger Punkt, der dem Erzeuger erlaubt auf einfachere Weise verschiedene Komponenten zu implementieren, wobei eine allgemeine Schnittstelle verwendet wird — nämlich der Bus selbst.

3.1.1.1. Beispiele von Bussen

Ganz egal wo Sie bei einem Computersystem nachschauen, finden Sie Busse. Hier sind einige der gebräuchlicheren Busse:

  • Massenspeicher-Busse (ATA und SCSI)

  • Netzwerke[1] (Ethernet und Token Ring)

  • Speicher-Busse (PC133 und Rambus®)

  • Expansions-Busse (PCI, ISA, USB)

3.1.2. Datenpfade

Datenpfade können schwerer zu identifizieren sein, sind jedoch wie Busse überall anzutreffen. Genauso wie Busse ermöglichen auch Datenpfade Punkt-zu-Punkt-Kommunikation. Jedoch im Gegensatz zu Bussen:

  • Benutzen Datenpfade ein einfacheres Protokoll (falls überhaupt)

  • Besitzen Datenpfade wenig (falls überhaupt) mechanische Standardisierung

Der Grund dafür ist, dass Datenpfade normalerweise systemintern sind und nicht dazu benutzt werden, ad-hoc die Verknüpfung zwischen verschiedenen Komponenten herzustellen. Als solches sind Datenpfade höchst optimiert auf bestimmte Situationen, in denen Geschwindigkeit und geringe Kosten gegenüber langsamerer und teurerer Mehrzweck-Flexibilität vorgezogen werden.

3.1.2.1. Beispiele von Datenpfaden

Hier sind einige typische Datenpfade:

  • 'CPU zu On-Chip Cache'-Datenpfad

  • 'Grafik Prozessor zu Video-Speicher'-Datenpfad

3.1.3. Potentielle Bandbreiten-bezogene Probleme

Es gibt zwei Arten auf denen Probleme, die auf Bandbreiten bezogen sind, entstehen können (entweder für Busse oder Datenpfade):

  1. Der Bus oder Datenpfad kann eine gemeinsam benutzte Ressource darstellen. In diesem Fall wird durch die dadurch für den Bus entstehende Konkurrenzsituation die effektive Bandbreite reduziert, die für alle Geräte am Bus erhältlich ist.

    Ein SCSI-Bus mit einigen höchst aktiven Laufwerken wäre ein gutes Beispiel dafür. Die höchst aktiven Laufwerke sättigen den SCSI-Bus, wobei nur wenig Bandbreite für jegliche andere Geräte auf dem selben Bus übrig bleibt. Als Endergebnis sind alle I/O-Vorgänge in Verbindung mit irgendeinem der Geräte auf diesem Bus langsam, sogar wenn jedes einzelne Geräte auf dem Bus nicht übermäßig aktiv ist.

  2. Der Bus oder Datenpfad kann eine fest zugeordnete Ressource mit einer festgelegten Anzahl von angeschlossenen Geräten sein. In diesem Fall schränken die elektrischen Eigenschaften des Busses (und in gewisser Weise auch die Art des benutzten Protokolls) die erhältliche Bandbreite ein. Dies ist normalerweise häufiger bei Datenpfaden als bei Bussen der Fall. Dies ist auch einer der Gründe, warum Grafik-Adapter dazu neigen, bei höheren Auflösungen oder Farbtiefen langsamer zu arbeiten — Bei jedem Auffrischen des Bildschirms müssen mehr Daten entlang des Datenpfads transportiert werden, welcher Videospeicher und Grafikprozessor miteinander verbindet.

3.1.4. Potenzielle, Bandbreiten-bezogene Lösungen

Glücklicherweise kann auf Probleme, die sich auf Bandbreite beziehen, reagiert werden. Tatsächlich gibt es einige unterschiedliche Vorgehensweisen:

  • Die Last verteilen

  • Die Last reduzieren

  • Die Kapazität erhöhen

Die folgenden Abschnitte befassen sich genauer mit jeder Vorgehensweise:

3.1.4.1. Verteilen der Last

Die erste Annäherung ist die gleichmäßigere Verteilung der Bus-Aktivität. In anderen Worten, wenn ein Bus überlastet und ein anderer frei ist, so könnte die Situation wahrscheinlich dadurch verbessert werden, dass einiges der Arbeitslast an den freien Bus weitergeleitet wird.

Als Systemadministrator ist dies die erste Methode, die sie in Betracht ziehen sollten, da des öfteren bereits zusätzliche Busse in ihrem System vorhanden sind. Zum Beispiel beinhalten die meisten PCs mindestens zwei ATA-Channels (was nur eine andere Bezeichnung für Bus ist). Wenn Sie zwei ATA-Laufwerke besitzen und zwei ATA-Channels, warum sollten dann beide Laufwerke auf dem selben Channel sein?

Auch wenn Ihre Systemkonfiguration keine zusätzlichen Busse beinhaltet, so kann auch die reine Verteilung der Last eine vernünftige Lösung darstellen. Die Ausgaben für Hardware, um dies zu bewerkstelligen, wären immer noch geringer, als wenn ein bestehender Bus durch Hardware mit höherer Kapazität ausgetauscht werden müsste.

3.1.4.2. Reduzieren der Last

Auf den ersten Blick scheinen das Verteilen und das Reduzieren der Last lediglich verschiedene Seiten der selben Münze zu sein. Immerhin gilt, dass wenn man die Last verteilt, dies gleichzeitig die Last reduziert (zumindest auf dem überlasteten Bus), richtig?

Während dieser Standpunkt zwar korrekt erscheint, hat das Verteilen der Last jedoch nicht die selbe Auswirkung, als das globale Reduzieren der Last. Der Schlüssel dazu liegt in der Ermittlung, ob ein gewisser Aspekt in der Systemlast zur Überlastung des jeweiligen Busses führt. Kann es sein, dass zum Beispiel ein Netzwerk schwerstens überlastet ist aufgrund unnötiger Aktivitäten? Vielleicht ist auch eine kleine temporäre Datei der Empfänger enormer Lese-/Schreib-Eingänge/Ausgänge? Wenn sich diese temporäre Datei auf einem im Netzwerk befindlichen Dateiserver befindet, so könnte viel Netzwerkverkehr vermieden werden, wenn z.B. lokal mit dieser Datei gearbeitet wird.

3.1.4.3. Die Kapazität erhöhen

Die offensichtliche Lösung für ungenügende Bandbreite ist diese irgendwie zu erhöhen. Jedoch ist dies normalerweise ein teures Unterfangen. Nehmen wir zum Beispiel einen SCSI-Controller und dessen überlasteten Bus. Um dessen Bandbreite zu erhöhen, müsste der SCSI-Controller (und wahrscheinlich alle angehängten Geräte) gegen schnellere Hardware ausgetauscht werden. Wenn der SCSI-Controller eine separate Karte ist, dann wäre dies ein relativ unkomplizierter Prozess. Wenn der SCSI-Controller jedoch ein Teil der Hauptplatine ist, so wird es zusehends schwerer den ökonomischen Punkt einer solchen Veränderung zu rechtfertigen.

3.1.5. Im Überblick…

Alle Systemadministratoren sollten sich über Bandbreite und die Auswirkungen von System-Konfiguration und -Benutzung auf die Bandbreite im Klaren sein. Leider ist es nicht immer offensichtlich, wenn es sich bei einem Problem um ein Bandbreiten-Problem handelt. Manchmal ist der Bus selbst nicht das Problem, dafür eine der Komponenten, welche mit dem Bus verbunden sind.

Stellen Sie sich zum Beispiel einen SCSI-Adapter vor, der mit einem PCI-Bus verbunden ist. Im Falle von Performance-Problemen mit dem SCSI-Festplatten-I/O kann dies das Ergebnis eines dürftig ausführenden SCSI-Adapters sein, auch wenn die SCSI- und PCI-Busse nicht im Geringsten deren eigentliche Bandbreiten-Fähigkeiten erreicht haben.

Fußnoten

[1]

Anstatt eines Intra-System-Bus, können Netzwerke auch als Inter-System-Bus angesehen werden.