Open s0nx opened 1 year ago
@s0nx why the issue is crucial? Doesn't Nginx on vanilla (not ours) kernel leads to OOM?
Another aspect of the current issue is that we need to test error handling branches for memory allocation failures. Some of the function are not reentrant. As well need to consider using error injection mechanism provided by the kernel or use our implementation of error injection.
This task is crucial to provide resistance to DDoS attacks. Probably just a default rate limits and maybe a global rate limit will mitigate the problem.
Motivation
Memory allocation failures should not result in a kernel crash.
Scope
As of now, high volume of legitimate traffic might cause OOM, which in turn leads to the kernel panic. For example, a VM with 6 GB RAM becomes unresponsive in a matter of seconds on
h2load
test with 1k connections and 2k of streams per connection.Testing
Tempesta config:
Cache warmup:
h2load https://f35tfw.local -t 1 -c 1 -n 1
+ Workload:h2load https://f35tfw.local -t 2 -c 1000 -D 30 -m 2048