# For Linux, uses BCC, eBPF. See .c file.
#
# USAGE: bitesize
-# Ctrl-C will print the partially gathered histogram then exit.
#
+# Ctrl-C will print the partially gathered histogram then exit.
#
# Copyright (c) 2016 Allan McAleavy
# Licensed under the Apache License, Version 2.0 (the "License")
struct val_t *valp;
valp = commbyreq.lookup(&req);
- if ( valp == 0) {
+ if (valp == 0) {
return 0;
}
bpf_probe_read(&key.name, sizeof(key.name),valp->name);
dist.increment(key);
}
- return 0;
+ return 0;
}
"""
try:
sleep(99999999)
except KeyboardInterrupt:
- dist.print_log2_hist("Kbytes", "Process Name:")
+ dist.print_log2_hist("Kbytes", "Process Name")
-Example of BCC tool bitesize.py
+Examples of bitesize.py, the Linux bcc/eBPF version.
+
The aim of this tool is to show I/O distribution for requested block sizes, by process name.
Tracing... Hit Ctrl-C to end.
^C
-Process Name: = 'kworker/u128:1'
+Process Name = 'kworker/u128:1'
Kbytes : count distribution
0 -> 1 : 1 |******************** |
2 -> 3 : 0 | |
4 -> 7 : 2 |****************************************|
-Process Name: = 'bitesize.py'
+Process Name = 'bitesize.py'
Kbytes : count distribution
0 -> 1 : 0 | |
2 -> 3 : 0 | |
64 -> 127 : 0 | |
128 -> 255 : 1 |****************************************|
-Process Name: = 'dd'
+Process Name = 'dd'
Kbytes : count distribution
0 -> 1 : 3 | |
2 -> 3 : 0 | |
512 -> 1023 : 0 | |
1024 -> 2047 : 488 |****************************************|
-Process Name: = 'jbd2/dm-1-8'
+Process Name = 'jbd2/dm-1-8'
Kbytes : count distribution
0 -> 1 : 0 | |
2 -> 3 : 0 | |
4 -> 7 : 1 |****************************************|
-Process Name: = 'cat'
+Process Name = 'cat'
Kbytes : count distribution
0 -> 1 : 1 | |
2 -> 3 : 0 | |
128 -> 255 : 0 | |
256 -> 511 : 1924 |****************************************|
-Process Name: = 'ntpd'
+Process Name = 'ntpd'
Kbytes : count distribution
0 -> 1 : 0 | |
2 -> 3 : 0 | |
4 -> 7 : 104 |****************************************|
-Process Name: = 'vmtoolsd'
+Process Name = 'vmtoolsd'
Kbytes : count distribution
0 -> 1 : 0 | |
2 -> 3 : 0 | |
4 -> 7 : 1 |****************************************|
-Process Name: = 'bash'
+Process Name = 'bash'
Kbytes : count distribution
0 -> 1 : 0 | |
2 -> 3 : 0 | |
8 -> 15 : 0 | |
16 -> 31 : 2 |****************************************|
-Process Name: = 'jbd2/sdb-8'
+Process Name = 'jbd2/sdb-8'
Kbytes : count distribution
0 -> 1 : 0 | |
2 -> 3 : 0 | |
We can see from above that there was a dd command being run which generated 488 IOPS between 1MB and 2MB, we can also see the
cat command generating 1924 IOPS between 256Kb and 512Kb.
-
-
-See also systemtap version:
-https://github.com/brendangregg/systemtap-lwtools/blob/master/disk/bitesize-nd.stp