Thread crazieness (Y threads x num_cpu_cores)
Hi.
We are running mcrouter in a configuration where it launches with "proxy-threads auto" on 4 core servers. So we are getting 4 threads per core. However we are running 6 individual instances of mcrouter pointing to different memcache clusters. So in this config on each server the effective number of threads is 6 * 4 for each server, but pointing to different pools. In this particular case we have eight servers acting as mcrouter front-ends. Some memcache clusters see high usage, others low.. it is quite mixed.
My question is if I am likely to run into race conditions/thread collisions that can effect performance or reliability? I realize this is predicated on usage levels somewhat, but in general?
Would tuning options such global-tko-tracking be beneficial?
Thanks. -G
@galitz, out of curiosity, why do you need to run 6 individual mcrouters instead of 1? Each mcrouter will have its own configuration thread, stats logging thread, and a couple other threads. 24 proxy threads on only 4 cores could lead to more context switching than you need. It's hard to say if any of this matters or not for your workload, but I would suggest going with the simplest possible setup (1 mcrouter) if you can.
In general, I don't recommend disabling TKO tracking without good reason.