====== Seminar „Leistungsanalyse unter Linux“ ====== ===== Beschreibung ===== Im Seminar werden wir zunächst eine Übersicht über die Möglichkeiten zur Leistungsanalyse geben. Mit Hilfe von Werkzeugen kann das Speicher, CPU und E/A-Verhalten von Anwendungen aufgezeichnet und analysiert werden. Somit können Engpässe und ineffiziente Programmabschnitte identifiziert werden. Verschiedene Ansätze und Schnittstellen werden in eigenen Themen vertieft und anhand von Beispielen erläutert. Ein wichtiger Aspekt des Seminars wird die praktische Demonstration von Werkzeugen zur Leistungsanalyse sein. Beachten Sie auch unsere allgemeinen organisatorischen [[:teaching:organisatorische_hinweise:seminar_proseminar#seminare|Hinweise zu Seminaren]]. ===== Zielgruppe ===== Das Projekt eignet sich für Studierende der Informatik in den Diplom- und Bachelorstudiengängen. Studierende anderer Studiengänge müssen die Anrechnung mit dem jeweiligen Prüfungsausschuss klären. Interessierte Zuhörer sind auch herzlich willkommen. ===== Daten der Veranstaltung ===== || Zeit || Wöchentlich -- nach Absprache || || Ort || [[http://maps.google.com/maps?q=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hl=de&cd=2&ei=BUxYS-GvKIuLOKaotbgJ&sig2=Kv8CBjHeXm8lAVC3XxRrIQ&ie=UTF8&view=map&cid=262423906154203330&ved=0CBsQpQY&hq=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hnear=&z=16&iwloc=A|DKRZ]], Raum 034 || || Beginn || Dienstag, 27.03 um 12:15 Uhr || || Vorbesprechung || 30.09.11, 16:00 Uhr im DKRZ, Raum 034 || || Mailingliste || [[http://wr.informatik.uni-hamburg.de/listinfo/lul-1112|LUL-1112]] || ===== Dozenten ===== * [[People:Alumni:Michael Kuhn]] * [[People:Alumni:Julian Kunkel]] * [[People:Thomas Ludwig]] * [[People:Alumni:Timo Minartz]] ===== Themenliste ===== Die Themenliste hier gibt eine erste Übersicht über den Inhalt des Seminars, die Liste wird noch nach Absprache mit den Teilnehmern angepasst. * Einführung in die Leistungsanalyse -- //Jan Hendrik Bartels// * Zusammenhänge und Leistungsfaktoren * Einfache Werkzeuge zur Systemanalyse -- //Norbert Schramm// ((Michael Kuhn)) * vmstat * top * iostat * LatencyTOP * PowerTOP * CPU Counter * Speichern Leistungsrelevante Ereignisse der CPU * Analysemöglichkeiten * Implementation in der Hardware * Betriebsystemaspekte bei der Nutzung von CPU Countern * Ansteuerung durch das Betriebsystem * Ereignisse den Prozessen / Threads zuordnen * Infrastruktur * Schnittstellen für den Zugriff auf CPU Counter * perf, PAPI-C * kcachegrind (valgrind) -- //Marlo Haering// ((Timo Minartz)) * Simulation von Speicherzugriffen und Cache Nutzung * OProfile, perf -- //Felix Grabowski// ((Timo Minartz)) * Grundlagen Performance Counter * Systemweiter Profiler * Oprofile in Google RZ * E/A Zugriffe analysieren -- //Florian Steffens// * iotop * strace + lsof * ioprofile * iogrind * Instrumentation des Kernels -- // Hajo Möller // * systemtap * kprobes * google perftools, LTTNG -- //Heye Vöcking// Weitere Themen können gerne vorgeschlagen werden. ===== Zeitplan und Materialien ===== Das Blockseminar findest statt am: Dienstag, 27.03 um 12:15 Uhr. * 12:15--13:15 Uhr: **Einführung in die Leistungsanalyse** -- //Jan Hendrik Bartels// {{:teaching:wintersemester_2011_2012:lul-1112-bartels-praesentation.pdf|Präsentation}} -- {{:teaching:wintersemester_2011_2012:lul-1112-bartels-ausarbeitung.pdf|Ausarbeitung}} * 13:15--14:15 Uhr: **Einfache Werkzeuge zur Systemanalyse** -- //Norbert Schramm// {{:teaching:wintersemester_2011_2012:lul-1112-schramm-praesentation.pdf|Präsentation}} -- {{:teaching:wintersemester_2011_2012:lul-1112-schramm-ausarbeitung.pdf|Ausarbeitung}} * 14:15--15:15 Uhr: **Valgrind** -- //Marlo Haering// {{:teaching:wintersemester_2011_2012:lul-1112-haering-valgrind-ausarbeitung.pdf|Ausarbeitung}} * 15:30--16:30 Uhr: **OProfile und perf** -- //Felix Grabowski// {{:teaching:wintersemester_2011_2012:lul-1112-grabowski-oprofile_und_perf-praesentation.pdf|Präsentation}} {{:teaching:wintersemester_2011_2012:lul-1112-grabowski-oprofile_und_perf-ausarbeitung.pdf|Ausarbeitung}} * 16:30--17:30 Uhr: **E/A Zugriffe analysieren** -- //Florian Steffens// -- //Der Autor hat nicht das Recht zur Veröffentlichung seiner Präsentation/Ausarbeitung erteilt.// * 17:30--18:30 Uhr: **Instrumentation des Kernels** -- // Hajo Möller// {{:teaching:wintersemester_2011_2012:lul-1112-möller-praesentation.pdf|Präsentation}} -- {{:teaching:wintersemester_2011_2012:lul-1112-möller-ausarbeitung.pdf|Ausarbeitung}} * 18:30--19:30 Uhr: **Google perftools, LTTNG** -- //Heye Vöcking// {{:teaching:wintersemester_2011_2012:lul-1112-vöcking-praesentation.pdf|Präsentation}} -- {{:teaching:wintersemester_2011_2012:lul-1112-vöcking-ausarbeitung.pdf|Ausarbeitung}} ===== Literaturhinweise ===== * [[http://oprofile.sourceforge.net/about/|OProfile]] * [[http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/pubs/archive/36575.pdf|Google nutzt OProfile im RZ]] * [[https://perf.wiki.kernel.org/|perf]] * [[http://www.pro-linux.de/news/1/14700/neues-tool-fuer-die-leistungsanalyse-von-linux.html|Timechart]] * [[http://lttng.org/|LTTng]] * [[http://icl.cs.utk.edu/projects/papi/wiki/Introduction_to_PAPI-C|PAPI(-C)]] * Verfügbare CPU Counter und Hardware [[http://oprofile.sourceforge.net/docs/intel-corei7-events.php|1]] [[http://software.intel.com/sites/products/collateral/hpc/vtune/performance_analysis_guide.pdf|2]] * [[http://www.heise.de/open/artikel/Kernel-Log-Was-2-6-31-bringt-4-Tracing-Architektur-Code-Virtualisierung-237148.html|Kernel Infrastruktur für CPU Counter]] * [[http://www.ibm.com/developerworks/library/l-graphvis|GProf + GraphVis]] * [[http://glandium.org/blog/?p=1476|I/O Profiling mit Systemtap]] * [[http://code.google.com/p/google-perftools/|Google-Perftools]] * [[http://www.pixelbeat.org/programming/profiling/|Übersicht über weitere Tools]] * http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html