FreeBSD 10-Trace-Festplattenaktivität

9

Gibt es eine Möglichkeit, einen Prozess zu finden, der unter FreeBSD 10 mit ZFS regelmäßig auf die Festplatte schreibt (laut HDD-LED) (möglicherweise wird ZFS in den ausführlichen Protokollierungsmodus versetzt)?

lsof und andere sofort aggregierende Statistikdienstprogramme scheinen aufgrund einer kurzen Zeitspanne eines Festplattenzugriffs nichts abfangen zu können.

o_0
quelle
Was ist mit der Verwendung des Io-Displays von top, um nach dem Prozess zu suchen, der Ihre Festplatten-E / A frisst? : top -m io -o total : Freebsd.org/cgi/...
Es ist wahrscheinlich nützlich für Prozesse mit hoher Last, die meistens im Vordergrund stehen, aber nicht für Prozesse, bei denen die Aktivität nicht mit dem Top-Zeitplan übereinstimmt. zB wenn hdd led ständig in ein paar Sekunden blinkt, gibt es fast keine Chance, etw oben zu sehen, so weit ich es versucht habe
o_0

Antworten:

9

DTrace kann über vfs-Informationen in FreeBSD (sowie über eine Reihe anderer Sonden) berichten. DTrace ist im 10-Kernel standardmäßig aktiviert. Sie müssen also nur das Modul laden und dann das dtrace-Skript ausführen.

Laden Sie das DTrace-Modul

kldload dtraceall

Holen Sie sich das Skript vfssnoop.d aus den FreeBSD-Foren. Der gesamte Thread ist eine Fundgrube für die Festplattenüberwachung.

Starte es:

./vfssnoop.d

Beobachten Sie die Ausgabe für den Zugriff:

# ./vfssnoop.d 
cc1: warning:  is shorter than expected
TIMESTAMP           UID    PID PROCESS          CALL             SIZE PATH/FILE
1555479476691083      0   1225 nfsd             vop_getattr         - /share/netboot
1555479478601010      0   1225 nfsd             vop_inactive        - /share/netboot
1555479482457241      0   1225 nfsd             vop_getattr         - /share/wpad.dat
1555480557262388      0   1432 cron             vop_getattr         - /var/cron/tabs
1555480557302178      0   1432 cron             vop_inactive        - /var/cron/tabs
1555480557336414      0   1432 cron             vop_inactive        - /etc
1555480557346224      0   1432 cron             vop_getattr         - /etc/crontab
Matt
quelle
Heilige Makkaroni! Vielen Dank, mein Googeln ist endlich zu Ende)
o_0
5

Lauf: top -m io -o write -s 1

Dadurch wird die Liste der Prozesse ausgedruckt, sortiert nach der Menge, die sie auf die Festplatte schreiben, und alle 1 Sekunde aktualisiert

Allan Jude
quelle