-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use batch operations #74
Comments
Sent in aquasecurity/libbpfgo#97 to support this. |
Submitted aquasecurity/libbpfgo#101 to improve error checking within libbpfgo which is necessary for our usage of these batch operations. |
This patch adds support for using eBPF batch operations on maps which should dramatically improve the performance of the parca-agent by enabling it to batch lookup and delete keys/values in maps in a single operation. This replaces the use of iterators in favor of iteration in batches. Fixes parca-dev#74
This is currently blocked on a libbpfgo patch to improve error handling when calling into the libbpf C library. See aquasecurity/libbpfgo#100 (comment) for a summary on my thoughts for error handling and look at comments from Grant on overall summary of where the patch is and the direction for it. |
This patch adds support for using eBPF batch operations on maps which should dramatically improve the performance of the parca-agent by enabling it to batch lookup and delete keys/values in maps in a single operation. This replaces the use of iterators in favor of iteration in batches. Fixes parca-dev#74
This patch adds support for using eBPF batch operations on maps which should dramatically improve the performance of the parca-agent by enabling it to batch lookup and delete keys/values in maps in a single operation. This replaces the use of iterators in favor of iteration in batches. Fixes parca-dev#74
This patch adds support for using eBPF batch operations on maps which should dramatically improve the performance of the parca-agent by enabling it to batch lookup and delete keys/values in maps in a single operation. This replaces the use of iterators in favor of iteration in batches. Fixes parca-dev#74
This patch adds support for using eBPF batch operations on maps which should dramatically improve the performance of the parca-agent by enabling it to batch lookup and delete keys/values in maps in a single operation. This replaces the use of iterators in favor of iteration in batches. Fixes parca-dev#74
This patch adds support for using eBPF batch operations on maps which should dramatically improve the performance of the parca-agent by enabling it to batch lookup and delete keys/values in maps in a single operation. This replaces the use of iterators in favor of iteration in batches. Fixes parca-dev#74
👋 , is there any profile that shows this is a hotspot? If no, perhaps we can close it. We will always re-evaluate things and keep on profiling the agent to ensure that the performance is within what we expect |
Let's close it 😊 |
parca-agent/pkg/agent/profile.go
Line 280 in 32327ea
libbpf supports the batch operations such as:
bpf_map_lookup_and_delete_batch
bpf_map_lookup_batch
bpf_map_delete_batch
These make sense to be used. Because we already load all the data from the BPF maps into the memory of our user-space program, so might as well do it efficiently. And not only does it allow us to batch, but it also allows us to delete items at the same time, which is exactly what we do anyways after each profiling iteration.
They first need to be implemented in libbpfgo.
The text was updated successfully, but these errors were encountered: