Comments (4)
Loxilb has a garbage collector which monitors its connection-track entries. If a connection goes through its normal life cycle - e.g init, init-ack, est, fin etc, eBPF module itself cleans up the CT entries. But for half-cooked connections, the garbage collector comes into play. Currently, it is set to aggressive GC.One potential solution is to trigger GC only when there is a space pressure in its CT map.
from loxilb.
Thanks for bringing this to notice. It seems strange but we will have a look and update soon.
from loxilb.
Hi @luisgerhorst, we have tried to reproduce this with loxilb latest docker but in our test we couldn't find this issue. nginx and wrk seems to be taking only 10%. We used validation-wrk script to test this. If you are using some other config/steps then please share with us and we will try with them. You may join our slack channel, we will be able to assist you better.
from loxilb.
I'm sorry for the incomplete description. I have been running wrk2 at a much higher rate than the version merged (12.5k RPS, roughly 80% of the max. on my machine).
I run https://github.com/luisgerhorst/loxilb/blob/ccf029a1f6cf8b914b23909d4cc922a4c32662d0/cicd/tcpsctpperf/validation-wrk using OSE_PERF_STAT="perf stat" OSE_LOXILB_SERVERS=1 OSE_LATENCY_PAYLOAD_SIZE=1024 ./validation-wrk 2 60 $(pwd)/ 100 | tee v.log
against loxilb v0.9. Using parca I was able to record a CPU trace of the behaviour I observed:
The screenshot has the x axis separated into 6 segments. The dark purple line is loxilb which is mostly idle in segments 3 and 4 and ramps up in segments 2, 5, and 6. The red/green line in segments 3-6 are wrk2 and nginx (red/orange in 1-2). The light purple line is parca which periodically processes the cpu samples collected.
Here's the CPU profile while loxilb is in it's idle phase: https://pprof.me/2d2a1527503cfa10ae0a46890b2cb3a0
And here's the CPU profile when loxilb is in it's busy phase: https://pprof.me/414cf26812ea9d7d3b973563bec491ed
Iterestingly, loxilb seems to consume 100% here even thougth the benchmark is not at it's limit (I can achieve 15.5k RPS using this same setup). Therefore, maybe this behaviour is not acutally limiting the performance (at least directly).
from loxilb.
Related Issues (20)
- Support for docker arm builds HOT 2
- Direct host route addition cause traffic forwarding to stop working HOT 11
- Master node IP address changed to one of the Loadbalancer IP addresses after deployment HOT 1
- Issue with BFD Patch for Fast Failover: BFD Not Stable in HA Setup with loxilb HOT 2
- Configure end-point probe-time,retry values etc from kube-loxilb HOT 1
- BFD State Inconsistent [ Both shows MASTER ] at times HOT 2
- [BFD] New loxilb instance not retaining MASTER state after failover HOT 1
- Misleading libbpf FAILED logs
- Build from code and run is not working in a VM with kernel version 5.xxx-generic IF hypervisor (host) has a bigger kernel version like 6.xxx-generic HOT 16
- BPFireOS: cpumap libbpf: map 'cpu_map': failed to create: Argument list too long HOT 20
- BPFireOS: Prog section 'tc_packet_hook0' rejected: Permission denied (13)! R1 type=scalar expected=map_ptr HOT 11
- Ubuntu 22.04 libbpf: prog 'tc_packet_func_fast': BPF program load failed: Argument list too long HOT 4
- Loxilb SYNProxy support? HOT 1
- loxilb go code build error in BPFire chroot build environment HOT 1
- Support for proxy protocol v2
- Support for AWS multi-AZ HOT 3
- SCTP Load Balancing on Kubernetes HOT 1
- Fullnat support pool of local IP addresses assigned to local network interface as source IP HOT 1
- LoxiLB cannot start on Docker Desktop for Mac HOT 6
- SCTP round-robin LB selection
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from loxilb.