Tracking memory, PCI(-E) bus usage?
Ryan Stone
rysto32 at gmail.com
Fri Feb 24 18:27:38 UTC 2012
I can't help you with PCI bandwidth usage(and personally I'd be very
interested in being able to measure that), but I do know that
Nehalem-based Intel Core i7s (and presumably more recent Intel CPUs)
export PMCs for measuring memory bandwidth utilization. The PMCs for
the Core i7 are:
QMC_BUSY.WRITE.CH0
QMC_BUSY.READ.CH0
QMC_BUSY.WRITE.CH1
QMC_BUSY.READ.CH1
QMC_BUSY.WRITE.CH2
QMC_BUSY.READ.CH2
You can divide these by UCLOCK to get the percent utilization.
If you hate doing math by hand I've written a simple curses-based
utility for measuring PMC statistics like this:
https://code.google.com/p/perfdb/
It outputs stats like this:
Memory Channel Utilization: (hotkey m)
GQ_Write_Nonempty: 0.11
GQ_To_L3_Busy: 0.00
GQ_To_QPI_Busy: 0.00
GQ_To_Core_Busy: 0.00
Chan0_Util_Write: 0.01
Chan0_Util_Read: 0.03
Chan1_Util_Write: 0.00
Chan1_Util_Read: 0.03
Chan2_Util_Write: 0.00
Chan2_Util_Read: 0.00
It's still very much a work in progress and there's zero documentation
for it(hint: the left and right arrow keys are used to cycle between
pages of stats, and the q key quits) but I thought that I'd mention
it.
More information about the freebsd-hackers
mailing list