-
Notifications
You must be signed in to change notification settings - Fork 475
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
add ebpf() plugin and reuseport randomization #4365
Conversation
Build FAILURE |
7a27366
to
3316f54
Compare
Build FAILURE |
3316f54
to
68d046f
Compare
Build FAILURE |
68d046f
to
136bff2
Compare
Build FAILURE |
ec2adc8
to
acf0bdf
Compare
This PR depends on some packages that we need to install into our tarball container, but the CI is run on a previous version. At the moment, I've added the installation of these packages in our actions workflow in a temporary commit. As soon as we are ready with the review, we should probably merge the dbld pieces first, wait for images to be generated and then merge the rest, while dropping the temporary change in the actions script. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have found some build/configure related things.
Some of them were not trivial for me to understand and recommend a fix, so I have fixed them on my working branch and opened a PR for your convenience: bazsi#17
Could you kindly check it out? Thanks!
The dbld image dep PR went in, we can now rebase this to master and drop the workaround commit. |
Signed-off-by: Balazs Scheidler <[email protected]>
Signed-off-by: Balazs Scheidler <[email protected]>
Signed-off-by: Balazs Scheidler <[email protected]>
This hook can be used by plugins to potentially change socket related settings once syslog-ng has finished by its own. This makes it possible to attach EBPF programs, change socket options, etc. Signed-off-by: Balazs Scheidler <[email protected]>
acf0bdf
to
0b46933
Compare
Only one comment, otherwise LGTM. |
Could you add some developer notes to the NEWS about the configure options and necessary dependencies? |
Signed-off-by: Balazs Scheidler <[email protected]>
Building the eBPF module is not for the fainthearted, but we need some testing, so enable it in the devshell build, even if it is disabled everywhere else. This ensures that at least we are in a compilable state. Signed-off-by: Balazs Scheidler <[email protected]>
ea5051f
to
875d108
Compare
Signed-off-by: Balazs Scheidler <[email protected]>
Signed-off-by: Attila Szakacs <[email protected]> Signed-off-by: Balazs Scheidler <[email protected]>
875d108
to
ffde0e4
Compare
I've added a paragraph to the NEWS file. in short don't compile it, unless you need it. Also, it will be a nightmare to enable this in all distros. |
ebpf()
plugin and udp packet balancer: a new ebpf() plugin was added whichleverages the kernel's eBPF infrastructure to improve performance and
scalability of syslog-ng. The first ebpf based solution improves
performance when a single (or very few) senders generate most of the inbound
UDP traffic that syslog-ng needs to process. Normally, the kernel
distributes load between so-reuseport sockets by keeping each flow (e.g.
same source/dest ip/port) in its dedicated receiver. This fails to balance
the sockets properly if only a few senders are responsible for most of the
load. ebpf(reuseport()) will replace the original kernel algorithm with an
alternative that changes the algorithm, so individual packets will be
assigned to one of the sockets randomly, thereby producing a more uniform
load.
Example:
Depends on #4373