Open sunil-kumar3 opened 8 years ago
Want to help try and determine this? I suspect if you add -verbose:gc and then use this for a while, you'll find out what the heap needs to be. Obv this will be just one datapoint as volume of spans will impact this significantly.
Is there any benchmark script that can be used to generate spans?
Nope. Just this https://github.com/openzipkin/zipkin-java/issues/45
Even if there were, it is still completely up to instrumentation what they log (ex some cases a single annotation is 2KB). Add to that the fact that people do scaling differently, ex some use one big instance. Finally, each storage backend will have different processing and encoding overhead.
Maybe just start with what you find from -verbose:gc and localize heap settings until you find what's right? Production environments are somewhat snowflakey.
If you are interested in benchmarking, would love a hand. Let's just make sure these are based on real usage patterns, ex by interviewing others if your zipkin isn't live.
Not a benchmark, but there is bin/tracegen in this project and also adrianco/spigo can generate span data which can be posted via json.
The collector accepts spans from kafka and scribe, and the query server accepts via HTTP post. Each could be considered its own benchmark suite.
My 2p is conserve energy for the architecture you actually plan to use, and don't assume the memory args will be useful to others.
Is there a way to set the Xmx and Xms
Both here and in the replacement docker repo ( https://github.com/openzipkin/docker-zipkin-java), you can set the env variable JAVA_OPTS with heap arguments
There are no memory args specified in
run.sh
file of collector/query/web services.It would be good to document minimum memory requirement for these services to help users setting up Zipkin in production.