You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.3 KiB
57 lines
2.3 KiB
Demonstrations of llcstat.
|
|
|
|
|
|
llcstat traces cache reference and cache miss events system-wide, and summarizes
|
|
them by PID and CPU.
|
|
|
|
These events, defined in uapi/linux/perf_event.h, have different meanings on
|
|
different architecture. For x86-64, they mean misses and references to LLC.
|
|
|
|
Example output:
|
|
|
|
# ./llcstat.py 20 -c 5000
|
|
Running for 20 seconds or hit Ctrl-C to end.
|
|
PID NAME CPU REFERENCE MISS HIT%
|
|
0 swapper/15 15 3515000 640000 81.79%
|
|
238 migration/38 38 5000 0 100.00%
|
|
4512 ntpd 11 5000 0 100.00%
|
|
150867 ipmitool 3 25000 5000 80.00%
|
|
150895 lscpu 17 280000 25000 91.07%
|
|
151807 ipmitool 15 15000 5000 66.67%
|
|
150757 awk 2 15000 5000 66.67%
|
|
151213 chef-client 5 1770000 240000 86.44%
|
|
151822 scribe-dispatch 12 15000 0 100.00%
|
|
123386 mysqld 5 5000 0 100.00%
|
|
[...]
|
|
Total References: 518920000 Total Misses: 90265000 Hit Rate: 82.61%
|
|
|
|
This shows each PID's cache hit rate during the 20 seconds run period.
|
|
|
|
A count of 5000 was used in this example, which means that one in every 5,000
|
|
events will trigger an in-kernel counter to be incremented. This is refactored
|
|
on the output, which is why it is always in multiples of 5,000.
|
|
|
|
We don't instrument every single event since the overhead would be prohibitive,
|
|
nor do we need to: this is a type of sampling profiler. Because of this, the
|
|
processes that trigger the 5,000'th cache reference or misses can happen to
|
|
some degree by chance. Overall it should make sense. But for low counts,
|
|
you might find a case where -- by chance -- a process has been tallied with
|
|
more misses than references, which would seem impossible.
|
|
|
|
|
|
USAGE message:
|
|
|
|
# ./llcstat.py --help
|
|
usage: llcstat.py [-h] [-c SAMPLE_PERIOD] [duration]
|
|
|
|
Summarize cache references and misses by PID
|
|
|
|
positional arguments:
|
|
duration Duration, in seconds, to run
|
|
|
|
optional arguments:
|
|
-h, --help show this help message and exit
|
|
-c SAMPLE_PERIOD, --sample_period SAMPLE_PERIOD
|
|
Sample one in this many number of cache reference
|
|
and miss events
|