openzipkin-attic / docker-zipkin

Docker images for OpenZipkin
Apache License 2.0
689 stars 330 forks source link

Memory requirements of collector/query/web services #79

Open sunil-kumar3 opened 8 years ago

sunil-kumar3 commented 8 years ago

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.

codefromthecrypt commented 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.

sunil-kumar3 commented 8 years ago

Is there any benchmark script that can be used to generate spans?

codefromthecrypt commented 8 years ago

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.

codefromthecrypt commented 8 years ago

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.

camerondavison commented 8 years ago

Is there a way to set the Xmx and Xms

codefromthecrypt commented 8 years ago

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