I/O-Benchmarks

Den Erfolg einer Tuning-Maßnahme können letztendlich nur Messungen belegen. Dafür kann man zum einen das Antwortverhalten der Applikation heranziehen, die zu beschleunigen war, zum anderen eignen sich Benchmarks dafür. Häufig eingesetzte I/O-Benchmarks sind beispielsweise Bonnie++ [3] oder etwa Iozone [4], das automatisch die verschiedenen I/O-Operationen bei unterschiedlichen File- und Blockgrößen misst (Abbildung 4). Sehr flexibel ist auch »fio« [5], mit dem sich unterschiedliche Workload-Charakteristiken nachstellen lassen.

Abbildung 4: Iozone misst automatisch verschiedene I/O-Operationen – hier das Schreiben – bei verschiedenen File- und Blockgrößen.

Netze beschleunigen

Auch noch in die Kategorie I/O fällt das Netzwerk. Dieser Beitrag konzentriert sich auf den Linux-Server und lässt aktive Komponenten wie Router oder Switches außen vor – praktisch spielen sie natürlich eine Rolle und sind mit zu berücksichtigen. Dasselbe trifft auf WAN-Verbindungen und das Internet zu, zumal nicht erreichbare DNS- oder hängende NFS-Server leicht zu Folgeproblemen führen, die nicht immer sofort als solche erkennbar sind. Eine isolierte Betrachtung des Servers kann aber durchaus sinnvoll sein, um die Problemstellen einzugrenzen. Im Hinterkopf sollte man dabei das siebenstufige ISO/OSI-Referenzmodell oder das auf vier Schichten reduzierte Modell (Abbildung 5) haben.

Abbildung 5: Die leicht vereinfachte Variante des Netzwerk-Referenzmodells. Alle Daten durchlaufen den Stack auf Senderseite von oben nach unten und beim Empfänger in umgekehrter Richtung.

Ein guter Ausgangspunkt ist eine Bestandsaufnahme, die klärt:

  • Welche Netzwerk-Interfaces kommen mit welchen Einstellungen (Geschwindigkeit, Duplex-Settings) und Adressen zum Einsatz?
  • Wie viel Traffic hat jedes Interface zu bewältigen? Wie hoch ist der Anteil ein- und abgehender Datentransfers?
  • Welcher Art ist der Datenverkehr (Protokolle)?
  • Wer erzeugt den Verkehr?
comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019