Linux Memory Management für MySQL

Ähnliche Dokumente
Linux Paging, Caching und Swapping

Prozesse, Logs und Systemverwaltung

Linux. Memory-Verwaltung unter Linux - Mythen aus der Praxis. Thorsten Bruhns Solution Architect. OPITZ CONSULTING GmbH. Nürnberg,

Tutorium Rechnerorganisation

Speicherverwaltung (Swapping und Paging)

RO-Tutorien 15 und 16

Hugepages, NUMA or nothing on Linux?

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Betriebssysteme KU - Bewertung A2 - WS 15/16

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Leichtgewichtsprozesse

Virtueller Speicher und Memory Management

Tru64 UNIX Performance Tuning. Tuning. Was heißt Tuning. Know your environment. Inhalt. Grundregeln. Grundregeln

Wunschvorstellung der Entwickler vom Speicher

Zwei Möglichkeiten die TLB zu aktualisieren

Wie groß ist die Page Table?

7. Speicherverwaltung

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Dynamic Ressource Management

Vorlesung: Virtualisierung und Rechenzentrumsinfrastrukturen. Lars Göbel & Christian Müller VL04: Einführung in die Virtualisierung

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Rechnerarchitektur und Betriebssysteme (CS201): Virtual Memory

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Echtzeit-Multitasking

Echtzeit-Multitasking

Echtzeitbetriebssysteme

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Memory Management. Peter Puschner Institut für Technische Informatik

Betriebssystemschichten ( )

Konzepte von Betriebssystemkomponenten

IBM DB2 für Linux/Unix/Windows Monitoring und Tuning

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

IBM Informix Tuning und Monitoring

Computer-Systeme Teil 15: Virtueller Speicher

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

Betriebssysteme. Tutorium 12. Philipp Kirchhofer

Prozesse und Logs Linux-Kurs der Unix-AG

5.5.5 Der Speicherverwalter

Cache Blöcke und Offsets

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

PVFS (Parallel Virtual File System)

Laborübung - Verwalten von virtuellem Speicher in Windows 7

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1

Prozesse und Logs Linux-Kurs der Unix-AG

Überschrift. Speicherverwaltung. Prof. Dr. Margarita Esponda Freie Universität Berlin 2011/2012

Leistungsanalyse unter Linux

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Prof. Dr. Sharam Gharaei. Inhaltsverzeichnis. 1 Einleitung 1. 2 Grundlage der Realisierung 2. 3 Die Realisierung 3. Literaturverzeichnis 7

Laborübung - Verwalten von virtuellem Speicher in Windows Vista

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Betriebssysteme. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.

Betriebssysteme. Agenda. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.

Partitionierung Indizes und Statistiken

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

Betriebssysteme. Speicherverwaltung - Grundlegende Konzepte. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Rechnergrundlagen SS Vorlesung

AIX Performance Tuning

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Betriebssysteme 1. Thomas Kolarz. Folie 1

Einführung in Dateisysteme

MySQL Backup- und Recovery-Strategien

Freispeicherverwaltung Martin Wahl,

Hauptspeicherverwaltung - Memory Management

8. Swapping und Virtueller Speicher

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Die Marvel, ein gedrosselter Supercomputer

MMU Virtualisierung. ISE Seminar Thomas Schaefer 1

Solaris 11 Systemadministration Grundlagen

4.3 Hintergrundspeicher

Betriebssysteme KU - Einführungstutorium

Rechnerarchitekturen und Betriebssysteme (CS201): Dateisysteme II Virtual Memory

Index Rebuild. DOAG Konferenz , Nürnberg. Martin Hoermann

Transkript:

Linux Memory Management für MySQL SIG MySQL - Performance 13.03.2012 Marius Dorlöchter mdo@ordix.de www.ordix.de

Vorstellung Marius Dorlöchter Consultant bei ORDIX seit 2006 Gruppe Systemintegration Betriebssysteme: Linux, Solaris, AIX Monitoring Apache / Tomcat Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 1

Agenda Speichervarianten RAM, Swap und Virtueller Speicher Virtual vs. Resident Buffer und Cache Paging / Swapping Verhalten Memory Overcommitment Out of Memory PageTables und Translation Lookaside Buffer (TLB) Hugepages Relevante Limits Tools zur Performance Analyse Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 2

Speichervarianten auf einem Linux System Wie teil sich der Speicher eines Systems auf? CPU Kern / Register (Von der Hardware verwaltet) L1-3 Cache (Von der Hardware verwaltet) RAM (Vom Betriebssystem verwaltet) Festplatte (Vom Betriebssystem verwaltet) Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 3

RAM ca. 100 x langsamer als der CPU Kern ca. 100.000 x schneller als Festplattenzugriffe Wofür wird der Arbeitsspeicher (RAM) bei Linux genutzt? - Kernel Memory: kann nicht ausgelagert werden (erscheint nicht als Teil des verfügbaren Speichers) - Program Memory: Prozessdaten (Code, Heap, Stack) - Shared Memory: Gemeinsam genutzter Speicher - Buffers: Puffer für Zugriffe auf Blockdevices, FS-Metadaten - Cache: Puffer für Dateiinhalte - Free Memory: Ungenutzter Speicher Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 4

SWAP Speicherbereich auf der Festplatte zur Erweiterung des RAM Realisiert als Partition oder Datei ( Swapfile oder Pagefile ) RAM + SWAP = Maximal nutzbarer Speicher Wird tatsächlich mehr Speicher genutzt als RAM vorhanden, werden inaktive Seiten auf den SWAP Bereich ausgelagert (pageout) Werden die ausgelagerten Seiten wieder benötigt, wird beim Zugriff ein pagefault erzeugt und der Kernel schiebt die Seiten wieder in den RAM (pagein) Eingelagerte Seiten bleiben im Swapspace solange sie readonly genutzt werden (Swapcache) Zuständiger Kernel-Prozess: kswapd Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 5

Virtual vs. Resident Virtueller Speicher kann größer sein als RAM (in der Regel fordern Prozesse mehr Speicher an als sie tatsächlich brauchen) Virtual Set Size (VSZ): Die Speichermenge, die einem Prozess insgesamt zugeordnet bzw. für ihn reserviert ist (Code + Libs + Heap/Stack) Resident Set Size (RSS): Die Speichermenge, die ein Prozess tatsächlich gerade nutzt Private RSS: Der Teil des Speichers eines Prozesses, der aktuell genutzt und nicht mit anderen geteilt wird Shared RSS: Der Teil des Speichers eines Prozesses, der aktuell genutzt und mit anderen geteilt wird Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 6

Buffer und Cache Warum ist der Speicher bei Linux nach einer Weile immer voll? Ungenutzter Speicher ist verschwendeter Speicher Ungenutzter Speicher wird daher für Buffer und Cache verwendet Buffer: Block-I/O (z.b. Inode-Table, etc) Cache: Filesystem (Dateiinhalte) Buffer und Cache sind potentieller freier Speicher und stehen sofort zur Verfügung, falls Speicher von Prozessen benötigt wird Eine kleine Menge freier Speicher reicht normalerweise aus, um akuten Anforderungen der Prozesse sofort nachzukommen Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 7

Paging / Swapping Verhalten Was passiert, wenn RAM zu 100% belegt ist und ein Prozess zusätzlichen Speicher braucht? Alternativen Buffer / Cache freigeben Inaktive Seiten auslagern (pageout) Konfigurierbar über Kernel-Parameter vm.swappiness : (Werte zwischen 0 und 100, default: 60) 100: pageout immer bevorzugen 0: cache/buffer immer freigeben Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 8

Memory Overcommitment Prozesse fordern in der Regel deutlich mehr Speicher an, als sie wirklich benutzen Standardmäßig keine Begrenzung des Virtuellen Speichers! Konfigurierbar über Kernelparameter: vm.overcommit_memory vm.overcommit_ratio Werte für overcommit.memory: 0: heuristic Overcommitment 2: Overcommitment bis vm.overcommit_ratio/100 * RAM + SWAP 1: Overcommitment ohne Begrenzung Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 9

Out of Memory (OOM) Was tun, wenn Overcommitment schief gegangen ist? Einen Prozess beenden aber welchen? Den bösesten! Kommentar im Kernel-Quellcode zur Funktion badness() bzgl. der Kriterien, nach denen der zu beendende Prozess ausgewählt wird: 1. we lose the minimum amount of work done 2. we recover a large amount of memory 3. we don't kill anything innocent of eating tons of memory 4. we want to kill the minimum amount of processes (one) 5. we try to kill the process the user expects us to kill, this algorithm has been meticulously tuned to meet the principle of least surprise... (be careful when you change it) Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 10

PageTables und Translation Lookaside Buffer Speicher ist aufgeteilt in Pages der Größe 4k Zuordnung Virtual <-> Physical Speicheradresse erfolgt in PageTable Translation Lookaside Buffer (TLB) = Cache für PageTable Einträge Jeder Prozess erhält eigene virtuelle Zuordnungstabelle Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 11

Hugepages Standardgröße einer Speicherseite (Page) : 4k Größe einer Hugepage: 2048k Zur Reduzierung der Pagetable-Größe und Optimierung des TLB Zusammenhängender Speicherbereich Reservierung erfolgt über Kernelparameter vm.nr_hugepages MySQL-Parameter (InnoDB): large-pages Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 12

Ulimit Mit ulimit können Limits auf User-Ebene gesetzt werden: file size max locked memory open files cpu time max user processes virtual memory Linux Virtual Memory Management, BASF IT Services, 09.02.2012 13

Tools zur Performance-Analyse Analyse-Tools: free [ -m ] free zeigt eine Zusammenfassung der Speicherauslastung des Systems an Hinweise: Spalte shared ist immer 0 (nicht implementiert) Wichtig sind vor allem die Werte +/- buffers / cache - sie definieren die reale Speicherauslastung durch die Prozesse Shared Memory Segmente verstecken sich in cached Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 14

Tools zur Performance-Analyse Analyse-Tools: sar <Option> <interval> <# messungen> Für fast alle Performance-Messungen zu gebrauchen - muss evtl. nachinstalliert werden (Paket: sysstat ) Option -r: Speicherauslastung Option -W: Pagein / Pageout Aktivitäten Option -S: Swapspace Nutzung Hinweise: Es ist nicht schlimm, wenn Swap genutzt wird, solange nicht permanent einund ausgelagert wird Ist der Pagein/Pageout Wert groß, besteht RAM-Engpass (es wird ständig geswappt) Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 15

Tools zur Performance-Analyse Analyse-Tools: vmstat <interval> <# messungen> Komprimierte Anzeige von Speicherauslastung, Paging-Aktivitäten, I/O und CPU-Auslastung Hinweise: Die Werte für si/so zeigen die Swapping-Aktivität an (idealerweise -> 0, kleine Werte (<100) vertretbar) Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 16

Tools zur Performance-Analyse Analyse-Tools: ps aux Speicherbelegung der Prozesse auslesen Hinweise: Beachte die Spalten RSS (Resident Set Size) und VSZ (Virtual Set Size) ACHTUNG: VSZ und RSS beinhalten i.d.r. große Teile geteilten Speichers (Summe aller RSS!= reale Speicherauslastung!) Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 17

Tools zur Performance-Analyse Analyse-Tools: pmap <PID> Detaillierte Speicherbelegung einzelner Prozesse auslesen Hinweise: nur die Speicherbereiche, die als rw gekennzeichnet sind und nicht auf Shared Memory verweisen, belegt der Prozess wirklich exklusiv! Linux Memory Management für MySQL, SIG MySQL - Performance, 13.03.2012 18

Zentrale Paderborn Westernmauer 12-16 33098 Paderborn Tel.: 05251 1063-0 Trainingscenter Wiesbaden Kreuzberger Ring 13 65205 Wiesbaden Tel.: 0611 77840-00 Zentrales Fax: 0180 1 67349 0 0180 1 ORDIX 0 Weitere Geschäftsstellen in Köln, Münster und Neu-Ulm E-Mail: info@ordix.de Internet: http://www.ordix.de Vielen Dank für Ihre Aufmerksamkeit!