Page-Fehler im perf
Tool von Linux-Tools ( perf_events
) betreffen sowohl kleinere als auch größere Seitenfehler. Kleinere Seitenfehler betreffen nicht den Zugriff auf die Festplatte. Und nicht jeder größere Seitenfehler bezieht sich auf den Datenträgerzugriff (nur die Datenträgerdatei wurde mmap
bearbeitet). Festplattenzugriffe von Lesen / Schreiben erzeugen keine Seitenfehler.
Einige generische Lösungen zur Fehlerzählung von Seiten finden Sie unter https://stackoverflow.com/questions/23302763 .
Um die Festplattenzugriffe global zu zählen, verwenden Sie das iostat
Tool http://man7.org/linux/man-pages/man1/iostat.1.html (tps, r / s, w / s) oder das vmstat
Tool http://man7.org/linux /man-pages/man8/vmstat.8.html (bo, bi, -d
). Beide werden mit einem Zeitraum in Sekunden verwendet, um iostat 1
oder vmstat 1
alle Sekunden einen Satz von Aktivitäten zu drucken, bis sie von ctrl-c abgebrochen werden. oder ähnlich iostat 1 60
oder vmstat 1 60
um jede Sekunde für 1 Minute zu drucken und zu beenden.
Eine andere Lösung besteht in der Verwendung einer Kombination aus perf
Werkzeug und bestimmten Ereignissen aus E / A- oder Platten-Subsystemen. Gregg hat einige Beispiele für die erweiterte Verwendung von Perf unter http://www.brendangregg.com/perf.html und https://github.com/brendangregg/perf-tools .
Sein iosnoop-Tool http://www.brendangregg.com/blog/2014-07-16/iosnoop-for-linux.html und http://www.brendangregg.com/blog/2014-07-23/linux-iosnoop -latency-heat-maps.html (basierend auf perf) kann Datenträger -E / A mit Prozess-PID, Datenträger-ID, Offset und Io-Größe verfolgen und die Latenz des Datenträgerzugriffs messen.
Überprüfen Sie auch "7.2. Heat Maps" von http://www.brendangregg.com/perf.html
Ich habe perf_events verwendet, um die Blockanforderungsausgabe (Datenträger-E / A) und statische Tracepoints für den Abschluss aufzuzeichnen:
# perf record -e block:block_rq_issue -e block:block_rq_complete -a sleep 120