Elders/Hystrix.NET

Hystrix Performance

Opened this issue · 3 comments

  1. Have you tested the performance when using hystrix in various configurations?
  2. Have you tested the performance and network usage when using the streams? (We have ~150 different microservices. each one on a normal day runs 8 instances)

There is some overhead using Hystrix.NET. We found that using semaphor and our own management of threads is best. The thread pooling which is currently in Hystrix.NET is not performance optimized. Regarding the network usage I have no idea. We publish our stats also to Atlas.

https://hub.docker.com/r/eldersoss/atlas/
docker run --restart=always --name=atlas -d -p 7101:7101 eldersoss/atlas

Thanks.

  1. What do you mean by?

using semaphore and our own management of threads is best
How do you manage your own threads? Did you added another thread management layer?

  1. Can you post a real world command setting?

  2. As I understand you do not recommenced the "thread" synchronization option. Have you tried it on production environment? Any additional insights on that?

  3. what would you do in order to optimize thread pooling for performance on hystrix .NET?

  1. https://github.com/Elders/Multithreading.Scheduler
  2. https://github.com/Elders/Cronus.Hystrix/blob/master/src/Elders.Cronus.Hystrix.NET/HystrixMiddlewareConfig.cs
    3 and 4) It is slow perf wise using the Hystrix thread management for our purposes. IMO the thread support should be removed from Hystrix.NET or completely rewrite it with async