Answer the question
In order to leave comments, you need to log in
Contitnious Integration: how to load test a C++ daemon?
Good evening!
I am involved in the development of a c++ daemon for Ubuntu Server 12.04, which will have to withstand heavy loads under operating conditions. In this regard, at the very beginning of development, I would like to charge CI (Jenkins) for compiling-> load testing of each commit, so that it would be possible to study according to the schedule how much memory the daemon ate during the test, how many times it accessed the disk ... Fortunately, it is quite large a set of test data for verification is already on hand =)
At this stage, I get a compiled binary file that I can run.
1) How to run it and measure the consumed resources (maximum RAM eaten, running time, hard disk load, *some-cpu-usage-metric*) ?
2) How in Jenkins to build a chart "change in indicator from commit to commit" based on this data?
I will also be glad to hear comments and criticism on the idea in principle.
Thank you!
Answer the question
In order to leave comments, you need to log in
The idea is definitely not bad, it has a place to be. Regarding the collection of metrics - dig towards collectd . This utility provides both a server on which metrics will be aggregated and a client (daemon) that will send them. IMHO, it's much more convenient than using "big" analogs like Zenoss or Zabbix.
As far as storing metrics, the best practices here are using RRD . With the help of rrdtool, you can either build graphs and the output will be a bitmap, or you can export to xml, which can be fed to Jenkins, there is a plugin for this .
we look at the logs and understand why this is happening,
if we don’t understand, then we set monitoring munin or zabbix and understand why this happens
See the logs, the load, if there are enough resources, if the network is falling, etc.
Logs exactly. If the server is virtual, then the hoster may also have problems. It is possible to uporotsya for the remote syslog. Perhaps it will be clearer if something always precedes the problem.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question