Linux jobworks 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:53:05 UTC 2026 x86_64
Apache/2.4.58 (Ubuntu)
Server IP : 10.0.1.5 & Your IP : 216.73.217.52
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
bpfcc-tools /
examples /
tracing /
Delete
Unzip
Name
Size
Permission
Date
Action
CMakeLists.txt
276
B
-rw-r--r--
2023-12-08 15:36
biolatpcts.py
3.23
KB
-rwxr-xr-x
2023-12-08 15:36
biolatpcts_example.txt
650
B
-rw-r--r--
2023-12-08 15:36
bitehist.py
1.36
KB
-rwxr-xr-x
2023-12-08 15:36
bitehist_example.txt
1.18
KB
-rw-r--r--
2023-12-08 15:36
dddos.py
3.73
KB
-rwxr-xr-x
2023-12-08 15:36
dddos_example.txt
2.06
KB
-rw-r--r--
2023-12-08 15:36
disksnoop.py
1.9
KB
-rwxr-xr-x
2023-12-08 15:36
disksnoop_example.txt
1.55
KB
-rw-r--r--
2023-12-08 15:36
hello_fields.py
679
B
-rwxr-xr-x
2023-12-08 15:36
hello_perf_output.py
1.24
KB
-rwxr-xr-x
2023-12-08 15:36
hello_perf_output_using_ns.py
1.8
KB
-rwxr-xr-x
2023-12-08 15:36
kvm_hypercall.py
1.48
KB
-rwxr-xr-x
2023-12-08 15:36
kvm_hypercall.txt
1.74
KB
-rw-r--r--
2023-12-08 15:36
mallocstacks.py
1.9
KB
-rwxr-xr-x
2023-12-08 15:36
mysqld_query.py
1.66
KB
-rwxr-xr-x
2023-12-08 15:36
mysqld_query_example.txt
499
B
-rw-r--r--
2023-12-08 15:36
nflatency.py
6.07
KB
-rwxr-xr-x
2023-12-08 15:36
nodejs_http_server.py
1.34
KB
-rwxr-xr-x
2023-12-08 15:36
nodejs_http_server_example.txt
276
B
-rw-r--r--
2023-12-08 15:36
stack_buildid_example.py
3.03
KB
-rwxr-xr-x
2023-12-08 15:36
stacksnoop.py
3.18
KB
-rwxr-xr-x
2023-12-08 15:36
stacksnoop_example.txt
2.8
KB
-rw-r--r--
2023-12-08 15:36
strlen_count.py
1.3
KB
-rwxr-xr-x
2023-12-08 15:36
strlen_hist.py
1.81
KB
-rwxr-xr-x
2023-12-08 15:36
strlen_hist_ifunc.py
3.71
KB
-rwxr-xr-x
2023-12-08 15:36
strlen_snoop.py
1.35
KB
-rwxr-xr-x
2023-12-08 15:36
sync_timing.py
1.36
KB
-rwxr-xr-x
2023-12-08 15:36
task_switch.c
499
B
-rw-r--r--
2023-12-08 15:36
task_switch.py
486
B
-rwxr-xr-x
2023-12-08 15:36
tcpv4connect.py
2.36
KB
-rwxr-xr-x
2023-12-08 15:36
tcpv4connect_example.txt
1.04
KB
-rw-r--r--
2023-12-08 15:36
trace_fields.py
589
B
-rwxr-xr-x
2023-12-08 15:36
trace_perf_output.py
1.56
KB
-rwxr-xr-x
2023-12-08 15:36
undump.py
3.52
KB
-rwxr-xr-x
2023-12-08 15:36
undump_example.txt
886
B
-rw-r--r--
2023-12-08 15:36
urandomread-explicit.py
1.48
KB
-rwxr-xr-x
2023-12-08 15:36
urandomread.py
1.01
KB
-rwxr-xr-x
2023-12-08 15:36
urandomread_example.txt
675
B
-rw-r--r--
2023-12-08 15:36
vfsreadlat.c
896
B
-rw-r--r--
2023-12-08 15:36
vfsreadlat.py
1.3
KB
-rwxr-xr-x
2023-12-08 15:36
vfsreadlat_example.txt
3.53
KB
-rw-r--r--
2023-12-08 15:36
Save
Rename
#!/usr/bin/python # # biolatpcts.py IO latency percentile calculation example # # Copyright (C) 2020 Tejun Heo <tj@kernel.org> # Copyright (C) 2020 Facebook from __future__ import print_function from bcc import BPF from time import sleep bpf_source = """ #include <linux/blk_types.h> #include <linux/blk-mq.h> #include <linux/blkdev.h> #include <linux/time64.h> BPF_PERCPU_ARRAY(lat_100ms, u64, 100); BPF_PERCPU_ARRAY(lat_1ms, u64, 100); BPF_PERCPU_ARRAY(lat_10us, u64, 100); RAW_TRACEPOINT_PROBE(block_rq_complete) { // TP_PROTO(struct request *rq, blk_status_t error, unsigned int nr_bytes) struct request *rq = (void *)ctx->args[0]; unsigned int cmd_flags; u64 dur; size_t base, slot; if (!rq->io_start_time_ns) return 0; dur = bpf_ktime_get_ns() - rq->io_start_time_ns; slot = min_t(size_t, div_u64(dur, 100 * NSEC_PER_MSEC), 99); lat_100ms.increment(slot); if (slot) return 0; slot = min_t(size_t, div_u64(dur, NSEC_PER_MSEC), 99); lat_1ms.increment(slot); if (slot) return 0; slot = min_t(size_t, div_u64(dur, 10 * NSEC_PER_USEC), 99); lat_10us.increment(slot); return 0; } """ bpf = BPF(text=bpf_source) cur_lat_100ms = bpf['lat_100ms'] cur_lat_1ms = bpf['lat_1ms'] cur_lat_10us = bpf['lat_10us'] last_lat_100ms = [0] * 100 last_lat_1ms = [0] * 100 last_lat_10us = [0] * 100 lat_100ms = [0] * 100 lat_1ms = [0] * 100 lat_10us = [0] * 100 def find_pct(req, total, slots, idx, counted): while idx > 0: idx -= 1 if slots[idx] > 0: counted += slots[idx] if (counted / total) * 100 >= 100 - req: break return (idx, counted) def calc_lat_pct(req_pcts, total, lat_100ms, lat_1ms, lat_10us): pcts = [0] * len(req_pcts) if total == 0: return pcts data = [(100 * 1000, lat_100ms), (1000, lat_1ms), (10, lat_10us)] data_sel = 0 idx = 100 counted = 0 for pct_idx in reversed(range(len(req_pcts))): req = float(req_pcts[pct_idx]) while True: last_counted = counted (gran, slots) = data[data_sel] (idx, counted) = find_pct(req, total, slots, idx, counted) if idx > 0 or data_sel == len(data) - 1: break counted = last_counted data_sel += 1 idx = 100 pcts[pct_idx] = gran * idx + gran / 2 return pcts print('Block I/O latency percentile example. See tools/biolatpcts.py for the full utility.') while True: sleep(3) lat_total = 0; for i in range(100): v = cur_lat_100ms.sum(i).value lat_100ms[i] = max(v - last_lat_100ms[i], 0) last_lat_100ms[i] = v v = cur_lat_1ms.sum(i).value lat_1ms[i] = max(v - last_lat_1ms[i], 0) last_lat_1ms[i] = v v = cur_lat_10us.sum(i).value lat_10us[i] = max(v - last_lat_10us[i], 0) last_lat_10us[i] = v lat_total += lat_100ms[i] target_pcts = [50, 75, 90, 99] pcts = calc_lat_pct(target_pcts, lat_total, lat_100ms, lat_1ms, lat_10us); for i in range(len(target_pcts)): print('p{}={}us '.format(target_pcts[i], int(pcts[i])), end='') print()