3 ms·
This is well written. I never gave much thought to the resource usage during the period between SYN and accept. This article explained it very nicely. Also, now
by IgorPartola 6y ago
This is well written. I never gave much thought to the resource usage during the period between SYN and accept. This article explained it very nicely. Also, now I’m curious why don’t these Linux limits don’t scale with the amount of RAM available? Like, yes on a low resource machine you wouldn’t want more than the default 128 for the backlog. But if I have 512GB of RAM then why not give me a backlog of a few thousand?
- yjftsjthsd-h 6y agoObvious option: you might want that memory for processes. Dynamic scaling does seem sane, though.
- JoshTriplett 6y agoIn general, Linux does favor automatic defaults over fixed static settings, if there's a reasonable heuristic to produce those defaults. But suppose, for instance, that you can't actually handle that many connections? There are two possibilities here: one is that you are processing connections fast enough to keep up, and the other is that you're not keeping up at all. In the former case, scaling the backlog up may help you keep up, though you may already have unacceptable latency. In the latter case, no amount of backlog will help you, and the backlog may make an attacker's job easier. That said, there might well be a case for automatic backlog scaling. Or, for that matter, for increasing the default.