IT Performance Martin Klier Klug GmbH integrierte Systeme, Teunz 24.03.2009
Referent Martin Klier, 29 Datenbank- und Systemadministrator Fachliche Schwerpunkte: - Systemperformance / Tuning hochverfügbare Systeme Cluster und Replikation Linux seit 1997 Oracle Database seit 2003 Kontakt: martin.klier@unix.net Weblog: http://www.usn-it.de
Unternehmen Klug GmbH integrierte Systeme Lindenweg 13 92552 Teunz Führendes und erfolgreiches Unternehmen der Software- und Steuerungssysteme für die Intralogistik Konzeption, Beratung, Softwareerstellung, Elektronik, Kommissioniertechnik, Hardware,... 210 Mitarbeiter 50 Auszubildende
IT-Performance - Agenda Vorstellung Allgemein + Begriff Prozessoren (CPU) Flüchtiger Speicher (RAM) CPU vs. RAM Skalierungsgrenzen Massenspeicher (HDD/SSD) RAID Rechnerverbindungen Zusammenfassung
Performance Performance = Problem Problem = Performance???
Performance Einige Definitionsversuche: IT-Performance im Sinn von Leistung ist eine Relation: - zu anderen Systemen oder zu demselben System vor bzw. nach Änderungen. Die Performance eines Systems ist ausreichend, wenn ein standardisiertes Leistungsminimum erreicht wird, z.b. Erfüllung des SLA (Service Level Agreement). => Absolute Betrachtungsweise.
Performance Das Wort Performance in Computer-Performance heißt dasselbe was Performance in jedem Kontext bedeutet: Wie gut kann der Computer die Arbeit tun, die er zu erledigen hat? (Arnold Allan) Welche Arbeit ist überhaupt zu erledigen?
Applikation Welche Arbeit ist überhaupt zu erledigen? -> Definiert durch die Applikation d.h. die Applikation bestimmt - was getan wird wie es getan wird wann es getan wird das was-wie-wann beeinflusst wie effektiv die Arbeit getan wird! Wir kommen später immer wieder darauf zurück!
IT-Performance - Agenda Vorstellung Allgemein + Begriff Prozessoren (CPU) Flüchtiger Speicher (RAM) CPU vs. RAM Skalierungsgrenzen Massenspeicher (HDD/SSD) RAID Rechnerverbindungen Zusammenfassung
Prozessor ( CPU ) Eigenschaften: Architektur (x86*, power6, SPARC64...) Core-Anzahl (Dual, Quad, Octa...) Interne Bitbreite (32bit, 64bit) Speicheradressierung (32bit, 38bit) Cache-Größen (Layer 1-3) Taktung (1,2GHz, 2,8GHz...) Preis
Arbeitsspeicher ( RAM ) Eigenschaften: Bandbreite (PC-3200 = 3200MB/s) Taktfrequenz (DDR-333 = 166MHz, DDR-400 = 200MHz) CAS-Latenz (CL2, CL3, CL4) Größe Packungsdichte Preis :)
Arbeitsspeicher ( RAM ) CAS-Latenz zählt mit! (CL2, CL3, CL4) => Anzahl der (CPU(!)-)Takte, die nach der Anfrage an das Modul vergehen, bis es Daten liefert. => Bei entsprechendem Workload (kleine Einheiten) ist CL2 theoretisch doppelt so schnell wie CL4! => Aber: CPU-Caches egalisieren den Effekt weitgehend
IT-Performance - Agenda Vorstellung Allgemein + Begriff Prozessoren (CPU) Flüchtiger Speicher (RAM) CPU vs. RAM Skalierungsgrenzen Massenspeicher (HDD/SSD) RAID Rechnerverbindungen Zusammenfassung
CPU vs. RAM: Entwicklung x86* IBM-PC Single-CPU 1980er 1990er 2000er IBM-PC Single-CPU 2010er
Adam und EVA Zeit Zeit Bussystem Quelle User RAM HDD Netz get Eingabe Controller HID RAM HDD/RAID Network Zeit Bussystem Verarbeitung CPU Ausgabe Controller Graphik RAM HDD/RAID Network put Ziel User RAM HDD Netz
Adam und EVA Netz User
Adam und EVA E V A User RAM-Controller + BUS Netz Net/HID-Controller + BUS DMA DMA (RAID-)Controller + BUS
CPU vs. RAM: Front Side Bus RAM Northbridge CPU PCIe Herkömmliche Methode
CPU vs. RAM: Front Side Bus RAM Northbridge CPU PCIe Herkömmliche Methode
CPU vs. RAM: Front Side Bus SnoopFilter RAM Northbridge CPU PCIe Verbesserte Methode
CPU vs. RAM: Entwicklung x86* IBM-PC Single-CPU 1980er Multi-CPU 1990er Multi-CPU SnoopFilter 2000er IBM-PC Single-CPU 2010er
CPU vs. RAM: HyperTransport Grundlagen I
CPU vs. RAM: HyperTransport Grundlagen II
CPU vs. RAM: HyperTransport Core(s) +L1,L2,L3 Crossbar-Switch PCIe Single-Socket(!) - Konfiguration
CPU vs. RAM: HyperTransport Context Context Core(s) +L1,L2,L3 Core(s) +L1,L2,L3 Crossbar-Switch Crossbar-Switch CrossbarArchitektur PCIe PCIe Crossbar-Switch Crossbar-Switch Core(s) +L1,L2,L3 Core(s) +L1,L2,L3 Context Context
CPU vs. RAM: HyperTransport Context Context Core(s) +L1,L2,L3 Core(s) +L1,L2,L3 Crossbar-Switch Crossbar-Switch NUMA CrossbarArchitektur PCIe Crossbar-Switch Non PCIe Uniform Memory Architecture Crossbar-Switch Core(s) +L1,L2,L3 Core(s) +L1,L2,L3 Context Context
CPU vs. RAM: HyperTransport Grundlagen III
CPU vs. RAM: Entwicklung x86* IBM-PC Single-CPU 1980er Multi-CPU 1990er IBM-PC Single-CPU Multi-CPU SnoopFilter 2000er 2010er MultiCPU NUMA
CPU vs. RAM: QuickPath Intercon Grundlagen I Nehalem-EX Beckton
CPU vs. RAM: QuickPath Intercon Grundlagen II
CPU vs. RAM: QuickPath Intercon Core(s) +SharedCache, LLC QPI-C IMC PCIe Single-Socket(!) - Konfiguration
CPU vs. RAM: QuickPath Intercon Context Context Core(s) +SharedCache, LLC IMC QPI-C Core(s) +SharedCache, LLC QPI-C PCIe IMC IMC PCIe QPI-C Core(s) +SharedCache, LLC QPI-C IMC Core(s) +SharedCache, LLC Context Context
CPU vs. RAM: QuickPath Intercon Grundlagen III
CPU vs. RAM: QuickPath Intercon
CPU vs. RAM: Entwicklung x86* IBM-PC Single-CPU 1980er Multi-CPU 1990er IBM-PC Single-CPU Multi-CPU SnoopFilter 2000er Multi-CPU NUMA 2010er MultiCPU NUMA
IT-Performance - Agenda Vorstellung Allgemein + Begriff Prozessoren (CPU) Flüchtiger Speicher (RAM) CPU vs. RAM Skalierungsgrenzen Massenspeicher (HDD/SSD) RAID Rechnerverbindungen Zusammenfassung
Skalierung Durchsatz Ideal Realität CPU-Anzahl
Amdahls Gesetz Gene Myron Amdahl (* 16. November 1922) (u.a. IBM s/360) Beschreibt Grenzen der Skalierbarkeit Problematik: Geschwindigkeitssteigerung durch Parallelisierung?
Amdahls Gesetz CPU 0 worst A CPU 1 B C D E Programmblöcke F idle CPU 2 Zeit optimal CPU 0 A CPU 0 A CPU 1 B CPU 1 B CPU 2 C CPU 2 C CPU 3 D CPU 3 D CPU 4 E CPU 4 E CPU 5 F CPU 5 F Realität idle Zeit
Amdahls Gesetz
IT-Performance - Agenda Vorstellung Allgemein + Begriff Prozessoren (CPU) Flüchtiger Speicher (RAM) CPU vs. RAM Skalierungsgrenzen Massenspeicher (HDD/SSD) RAID Rechnerverbindungen Zusammenfassung
Festplatten Eigenschaften: Bandbreite (MB/s) Bustyp (SATA, SAS, pscsi) Umdrehungszahl (3.200-15.000rpm) Packungsdichte Zugriffszeiten (8ms) Preis
Festplatten
Festplatten Hot zone Cold zone Immer?
Festplatten Hot zone Cold zone
Festplatten Welches Modell für welchen Fall? r u o y w e n! s ed o n K Bulk Random
Festplatten Arrays in welcher Zone anlegen?
Solid State Disks Eigenschaften: Bandbreite (MB/s) Zugriffszeiten (0,20ms) Single-Level-Cell / MLC Größe Preis
Solid State Disks Funktionsprinzip Word Bit Zelle Block
Solid State Disks Zellenaufbau Bildquelle: http://icrontic.com
Solid State Disks Vorgang Set (to zero) Bildquelle: http://icrontic.com
Solid State Disks Anordnung auf dem Chip Bildquelle: http://en.wikipedia.org
Solid State Disks Funktionsprinzip Word Bit Page
Solid State Disks Funktionsprinzip Blockorganisation 16kB 512kB pro Block
Solid State Disks Benchmark Lesend
Solid State Disks Funktionsprinzip Schreiben 1. löschen 16kB 512kB pro Block
Solid State Disks Funktionsprinzip Schreiben 2. schreiben 16kB 512kB pro Block
Solid State Disks Funktionsprinzip Schreiben Doppelter Overhead bei MLC! Bis zu 1MB pro Block
Solid State Disks Benchmark Schreibend
Solid State Disks Vorteile: - Nachteile: - Konstant kurze Random-Zugriffszeiten (Matrix!) Hohe Bandbreite für Bulk Niedrige Bandbreite für Kleinmengen Relativ niedrige Schreibrate Schreibfragmentierung Hoher Preis / GB Begrenzte Lebensdauer
IT-Performance - Agenda Vorstellung Allgemein + Begriff Prozessoren (CPU) Flüchtiger Speicher (RAM) CPU vs. RAM Skalierungsgrenzen Massenspeicher (HDD/SSD) RAID Rechnerverbindungen Zusammenfassung
RAID Platten-VERBUND - Synergie der erwünschten Eigenschaften Kompensation der unerwünschten E. Beispiel: IOPS - - 1x HDD: Seek ~10ms => 100 Seeks / Sekunde => 100 IOPS 2x HDD: 2 Seeks ~10ms da parallel möglich => 200 IOPS Ziel: 1000, 2000... 6000 IOPS
RAID5 - Schreiben Daten P 1/2 1/2 Daten 1/2 P 1/2 Daten 1/2 1/2 P Parity-Berechnung
RAID5 - Lesen Daten P 1/2 1/2 Daten 1/2 P 1/2 Daten 1/2 1/2 P
RAID5 - Degraded Lesen Daten P 1/2 1/2 Daten 1/2 P 1/2 Daten 1/2 1/2 P Parity-Rückrechnung
RAID10 - Schreiben Daten 1/2 1/2 1/2 1/2 Daten 1/2 1/2 1/2 1/2 Daten L1/2 L1/2 R1/2 R1/2 Spiegelung Spiegelung Striping
RAID10 - Lesen Daten L1/2 L1/2 R1/2 R1/2 Daten L1/2 L1/2 R1/2 R1/2 Daten L1/2 L1/2 R1/2 R1/2 Spiegelung Spiegelung Striping
RAID 5 oder 10? RAID5: theoretisch langsamer - Weniger Platten (IOPS!) Parityberechnung nötig RAID10: Theoretisch schneller - Immer 1x HDD mehr Keine Parityberechnung
RAID 5 oder 10? Praktisch kein Geschwindigkeitsunterschied - RAID-Controller sehr schnell (DualCore) Je größer das Array, desto weniger Differenz Aber: Beachte Degraded-Leistung! RAID5 skaliert über 8 bis 12 HDDs RAID10 skaliert nahezu unbegrenzt Auswahl durch Hersteller eingeschränkt, vorgegeben etc... Consider using ZFS
RAID 5 oder 10? Praktisch kein Geschwindigkeitsunterschied -! s d e e RAID-Controller sehr schnell (DualCore) Je größer das Array, desto weniger Differenz Aber: Beachte Degraded-Leistung! n r RAID5 skaliert über 8 bis 12u HDDs o RAID10 skaliert nahezu unbegrenzt y w o n Auswahl durch Hersteller K eingeschränkt, vorgegeben etc... Consider using ZFS
IT-Performance - Agenda Vorstellung Allgemein + Begriff Prozessoren (CPU) Flüchtiger Speicher (RAM) CPU vs. RAM Skalierungsgrenzen Massenspeicher (HDD/SSD) RAID Rechnerverbindungen Zusammenfassung
Rechnerverbindungen Eigenschaften Bandbreite (100Mbit, 1Gbit, 10Gbit) Latenz (1,5µs, 0,5ms, 150ms) Skalierbarkeit und Skalierungsmethode
Rechnerverbindungen Anwendungsfälle Compute Compute Cache Cache Kommunikation Kommunikation IO-Subsystem IO-Subsystem LAN, WAN, Internet z.b. Ethernet
Rechnerverbindungen Anwendungsfälle Compute Compute Cache Cache Kommunikation Kommunikation IO-Subsystem IO-Subsystem Storage Anbindung zentraler Massenspeicher z.b. FibreChannel
Rechnerverbindungen Anwendungsfälle Compute Compute Cache Cache Kommunikation Kommunikation IO-Subsystem IO-Subsystem Unterstützung von (High-Performance-) Clustering
Rechnerverbindungen Anwendungsfälle Compute Cache Kommunikation IO-Subsystem Compute Cache Kommunikation IO-Subsystem Unterstützung von (High-Performance-) Clustering Storage
Rechnerverbindungen Anwendungsfälle Compute Cache Kommunikation IO-Subsystem Storage Compute Cache Kommunikation IO-Subsystem Unterstützung von (High-Performance-) Clustering Storage
Rechnerverbindungen Spielarten: Ethernet (100Mbit-10Gbit, Milli-Sekunden) Infiniband (10Gbit-20Gbit, Mikro-Sekunden) [FibreChannel (2Gbit-8Gbit, Mikro-Sekunden)]
Rechnerverbindungen Infiniband Ethernet [FibreChannel]
Infiniband-Special Compute Cache Kommunikation IO-Subsystem Cache Kommunikation IO-Subsystem Infiniband Compute Storage Storage Compute Cache Kommunikation IO-Subsystem
Infiniband-Special Compute Cache Kommunikation IO-Subsystem Cache Kommunikation IO-Subsystem Infiniband Compute Storage Storage Compute Cache Cache Kommunikation Kommunikation IO-Subsystem
IT-Performance - Agenda Vorstellung Allgemein + Begriff Prozessoren (CPU) Flüchtiger Speicher (RAM) CPU vs. RAM Skalierungsgrenzen Massenspeicher (HDD/SSD) RAID Rechnerverbindungen Zusammenfassung
Zusammenfassung Performance ist die Abwesenheit von Wartezeit Latenzen addieren sich! Der Brennpunkt ist dort, wo viel passiert Brennpunkte sind böse Entzerren! vgl. NUMA Halbe bzw. kurzfristige Lösungen sind Beschäftigungstherapie (Tennis-Effekt) Denken Sie großflächig!
Zusammenfassung r u K o n o y w! s d e e n
Quellen http://www.amd.com http://www.hypertransport.com http://techreport.com http://www.nordichardware.com Craig Shallahamer: Forecasting Oracle Performance (Apress, 2007) http://wikipedia.org http://www.usn-it.de (eigenes Blog) Alle Marken und Logos sind Eigentum der jeweiligen Unternehmen. Diese Präsentation dient zu Schulungszwecken und stellt keine Werbung und keine Leistungszusicherung dar, weder durch den Autor, den Referenten noch durch die Klug GmbH integrierte Systeme. Irrtum und Änderungen vorbehalten. (c) 2009 by Martin Klier, Klug GmbH integrierte Systeme, Teunz Dieses Werk steht unter der Creative-Commons-Lizenz by-sa
Vielen Dank für Ihre Aufmerksamkeit!