2010-05-08 18 views
5

Leistungsindikatoren für Linux sind ein neues kernelbasiertes Subsystem, das einen Rahmen für alle Leistungsanalysen bietet. Es umfasst Hardware-Funktionen (CPU/PMU, Performance Monitoring Unit) sowie Softwarefunktionen (Software-Zähler, Trace-Punkte). Seit 2.6.33 stellt der Kernel die Kernel-API "perf_event_create_kernel_counter" bereit, mit der Entwickler einen Kernel-Zähler zum Erfassen von Systemlaufzeitinformationen erstellen können. Was mich am meisten betrifft, ist der Leistungseinfluss auf das Gesamtsystem, wenn tracepoint/ftrace aktiviert ist. Es gibt keine Dokumente, die ich über sie finden kann. Mir wurde einmal gesagt, dass ftrace durch dynamisches Patchen von Code implementiert wurde, wird es das System dramatisch verlangsamen?Performance Overhead des Perf Event Subsystems in Linux Kernel

+0

Perf ist so wenig wie möglich zu beeinflussen, wie viel hängt davon ab, was Sie damit tun – Spudd86

Antwort

0

Diese Dinge werden eingefügt, weil die Leute denken, sie könnten nützlich sein, und zweifellos können sie interessante Informationen sammeln. Wenn das das Ziel ist, gut.

Wenn jedoch das Ziel tune Software für höhere Leistung tun, sind sie von geringem diagnostischen Wert.

Sie können interessante Messungen liefern, aber sie nicht sagen Ihnen, was zu beheben.

This method does tell you what to fix.

+0

Nun, mein Ziel ist langfristige Profilerstellung auf Produktionsmaschinen laufen, so dass die Leistung Overhead mich am meisten angeht. –

+1

@Bo: Ich würde denken, für eine langfristige Überwachung der Gesundheit, brauchen Sie möglicherweise keine hochfrequenten Informationen - es wäre mehr eine Frage des Gesamtzeitpunkts. Wenn Sie etwas so häufig sammeln, dass es sich auf die Leistung auswirkt, würde es meiner Meinung nach viel mehr Informationen geben, als Sie möglicherweise für sinnvoll halten. Üblicherweise machen Leute "Instrumentierung" (und sind besorgt über Overhead), um zu versuchen, "Engpässe" zu finden (für die es keine gute Methode ist). –

1

dynamische Patching wird als eine Möglichkeit, Overhead zu minimieren, wenn die Ablaufverfolgung nicht aktiviert ist. Der Overhead der PMU-basierten Hardware-Zähler sollte davon abhängen, wie viele verschiedene Ereignisse Sie wie oft abtasten. Es ist wahrscheinlich niedrig genug für Sie, um eine akzeptable Konfiguration zu finden, je nachdem, was Sie wollen. Ich würde versuchen, die Informationssammlung zu aktivieren, die Sie interessiert, die Frequenz sorgfältig festlegen und dann empirisch überprüfen, ob der Overhead akzeptabel ist.