bcc
flamegraph
Our great sponsors
bcc | flamegraph | |
---|---|---|
55 | 40 | |
16,869 | 3,260 | |
2.2% | 4.8% | |
8.8 | 6.1 | |
1 day ago | 19 days ago | |
C | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bcc
-
Sloth – A Mac app that shows all open files, directories, sockets, etc.
On Linux, this can be done using BPF (Berkley Packet Filter). In fact there is a tool in BCC[0] called filetop, which lists reads/writes by process and file[1].
0. https://github.com/iovisor/bcc
1. https://github.com/iovisor/bcc/blob/master/tools/filetop.py
-
Announcing allocscope: a tool for tracking allocations in Rust / C++ / C apps
I recommend you investigate using eBPF hooks in the linux kernel for this allocation tracking, it is measurable much faster. E.g. https://github.com/iovisor/bcc/blob/master/tools/memleak.py
-
Memory Tracing
Hey there! Of course. There are a few good examples here and here. Yes, they're specific tools (which I, by the way, do recommend), but you can have a look at the BPF code here as well.
Thanks for the link :) this one seems pretty much like what I was looking for, with Vxlan encapsulation, will bother you if i face issues on running the script they have there. Looks like couple of years old since the last contribution to that git page: https://github.com/iovisor/bcc/tree/master/examples/networking/tunnel_monitor
-
Can I just have KubeCTL access? I used to have it in my old company
What we saw was stalling in the kernel run queue. One of the other people on our team did some debugging with eBPF. I think they may have used runqlen.py. But as soon as they evicted the one damaging pod from the machine, all the other workloads were no longer starved.
-
Navigate your way to production bliss with Caretta
We set out to look for an additional probe that can help us complete the picture. Even then, we find eBPF useful to explore the linux TCP stack. Tools like stacksnoop or stackcount can be used to understand the flow a network packet is going through when it’s processed and compare different functions to see how “noisy” each function is. Searching for data probing locations consists of a constant trade-off between being too nosy and being blind, and we’re looking for the sweet spot in the middle.
- Name a program that doesn't get enough love!
-
How do I intercept executed commands in user space?
If you're interested specifically in bash, you can look into bcc's bashreadline to output user commands. If you're interested in applying security policies to potential user commands, you can also take a look at Tracee although other open source solutions exist here as well.
-
Dwarf-Based Stack Walking Using eBPF
That's right! There's no "traditional" loops as programs have to be proved to terminate at some point.
That being said, very recently support for bounded loops landed [0]. It's very exciting and useful, and I've seen it reduce verification times significantly, but we can't use this yet as it requires kernel 5.3 or greater, and we would like to support as many users as possible!
[0]: https://lwn.net/Articles/877062/
[1]: https://github.com/iovisor/bcc/commit/38304256c49a02aecbf78f...
flamegraph
- making a virtual machine in rust
-
superdiff - a way to find similar code blocks in projects (comments appreciated)
I don't see any obvious problems with your algorithm. I've had luck using cargo-flamegraph to identify the slow parts of my code. That's going to show you which parts to focus on improving the performance of!
-
Data-driven performance optimization with Rust and Miri
From the readme of cargo flamegraph:
-
Any tips for writing performant Rust during AoC?
However, if your goal is to have the best performing code, you might want to take a look at profiling tools such as Cargo Flamegraph. They can show you where your code takes the most time and then you can try to make that part more efficient.
-
Improve performance
Better: an idea of how you can know where the bottleneck is. Use a profiler. cargo-flamegraph is nice.
-
How to investigate a potential Rust memory leak?
I had some nice insights using FlameGraph that relies on Linux perf. There is a Rust version here.
-
Noob request: help optimize my text processing code
Try doing a flamegraph to see where you are getting bottlenecked and post reaults here. https://github.com/flamegraph-rs/flamegraph
-
Why would introducing a panic cause a 20% performance increase
Use cargo-flamegraph and do a side-by-side with and without the panic?
-
Hey Rustaceans! Got a question? Ask here! (40/2022)!
Probably cargo flamegraph?
-
CPU Profiling in WSL-ish setup
cargo install --git https://github.com/flamegraph-rs/flamegraph
What are some alternatives?
cargo-flamegraph - Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3
tracing - Application level tracing for Rust.
libbpf - Automated upstream mirror for libbpf stand-alone build.
tensorflow_macos - TensorFlow for macOS 11.0+ accelerated using Apple's ML Compute framework.
hashbrown - Rust port of Google's SwissTable hash map
zfs - OpenZFS on Linux and FreeBSD
linux - Linux kernel source tree
libbpf-bootstrap - Scaffolding for BPF application development with libbpf and BPF CO-RE
rbspy - Sampling CPU profiler for Ruby
snmalloc-rs - rust bindings of snmalloc
ebpf-for-windows - eBPF implementation that runs on top of Windows
nokogiri-rust - Ruby FFI wrapper around scraper crate to be used instead of Nokogiri. Status: proof of concept.