On Thu, Aug 17, 2017 at 1:16 AM, Teemu Huovila <[email protected]> wrote:
> Below is an answer by the current weakforced main developer. It overlaps > partly with Samis answer. > > ---snip--- > > Do you have any hints/tips/guidelines for things like sizing, both in a > > per-server sense (memory, mostly) and in a cluster-sense (logins per sec > :: > > node ratio)? I'm curious too how large is quite large. Not looking for > > details but just a ballpark figure. My largest install would have about 4 > > million mailboxes to handle, which I'm guessing falls well below 'quite > > large'. Looking at stats, our peak would be around 2000 logins/sec. > > > > So in terms of overall requests per second, on a 4 CPU server, latencies > start to rise pretty quickly once you get to around 18K requests per > second. Now, bearing in mind that each login from Dovecot could generate 2 > allow and 1 report requests, this leads to roughly 6K logins per second on > a 4 CPU server. > > In terms of memory usage, the more the better obviously, but it depends on > your policy and how many time windows you have. Most of our customers have > 24GB+. > > > I'm also curious if -- assuming they're well north of 2000 logins/sec -- > > the replication protocol begins to overwhelm the daemon at very high > > concurrency. > > > Eventually it will, but in tests it consumes a pretty tiny fraction of the > overall CPU load compared to requests so it must be a pretty high limit. > Also, if you don’t update the time windows DB in the allow function, then > that doesn’t cause any replication. We’ve tested with three servers, each > handling around 5-6000 logins/sec (i.e. 15-18K requests each) and the > overall query rate was maintained. > > > Any rules of thumb on things like "For each additional 1000 logins/sec, > add > > another # to setNumSiblingThreads and another # to setNumWorkerThreads" > > would be super appreciated too. > > > > Actually the rule of thumb is more like: > > - WorkerThreads - Set to number of CPUs. Set number of LuaContexts to > WorkerThreads + 2 > - SiblingThreads - Leave at 2 unless you see issues. > > > Thanks! And again, feel free to point me elsewhere if there's a better > > place to ask. > Free free to ask questions using the weakforced issues on GitHub. > > > For a young project, the docs are actually quite good. > > Thanks, that’s appreciated - we try to keep them up to date and > comprehensive. > > > Wow, wow, wow. Thanks so much to all three of you guys for such detailed answers. That's absolutely perfect info and just what I was looking for.
