Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

X hour run for Tribler #184

Closed
whirm opened this issue Jun 11, 2013 · 8 comments
Closed

X hour run for Tribler #184

whirm opened this issue Jun 11, 2013 · 8 comments
Assignees

Comments

@whirm
Copy link

whirm commented Jun 11, 2013

Create a Jenkins job that runs Tribler for N hours, logging all the usual stuff from the experiments. And keep it running in a loop.

@ghost ghost assigned whirm Jun 11, 2013
@NielsZeilemaker
Copy link

Ok, this is how I would do it:

  • Create a file in Tribler/Main/vwxGUI similar to tribler_profiler.py, e.g. import the run method of tribler.
  • Only before calling run(), spawn a thread which is going to wait for dispersy to be running, e.g. similarly to startTest in TestGuiAsServer in test_as_server.py
  • After you got a reference to dispersy, you only need to wait for lm.initComplete, enable the statistics using
dispersy.statistics.enable_debug_statistics(True)
  • Schedule the do_log method from script.py. It's probably going to be a bit difficult, maybe move it to another class and let ScenarioScriptBase inherit the method from there.

Then run the new tribler.py file from within the process_monitor, and parse the files as usual afterwards.

@synctext
Copy link
Member

@NielsZeilemaker, is your proposed approach reusing stuff from Jenkins FullGUI-test?

So we additionally need a representative workload.
There are several options we can focus on or have multiple results sequentially.
We can measure Tribler with a 1 hour workload of:

  • idle and no searches and no channel joins
  • do a search in the search community every 1 minute (use tag cloud for terms)
  • sync with AllChannel and join the channel with most votes, next join after 5 minutes (5-55min = 9 joins). NOTE: no pollution of the real votes on channels, hopefully we can join without a +1 vote on AllChannels.
  • Start a new file download with Libtorrent every 5 minutes (VODO stuff)
  • Start a new file download with Libswift every 5 minutes (what content? seed on localhost?)

@NielsZeilemaker
Copy link

More or less, it's basically doing your first "workload" the idle and no searches thingy.
If we want to have all these different workloads, I suggest creating a unit_test which uses the GuiAsServer class.

It's maybe even easier this way:

  • Copy the test_remote_search.py file
  • Modify the startTest method to schedule the do_log method and maybe enable the debug statistics (if we're going to run in optimized mode)
  • Run the test from within the process_monitor etc.

Using the GuiAsServer class you can easily create the workloads as described by Johan above. Maybe even call the annotate method to have the lines in the cpu/resource figures showing the different parts of the workload.

@whirm
Copy link
Author

whirm commented Jul 29, 2013

A quick update on the status of this one.
We already have the experiment running and collecting data. The reporting part is almost there.

@whirm
Copy link
Author

whirm commented Sep 20, 2013

Assigning the issue to @corpaul as he's working on the reporting.

@ghost ghost assigned corpaul Sep 20, 2013
@NielsZeilemaker
Copy link

@corpaul lets create daily 1 hour tribler run, simply calling tribler.py from within a systemtab enabled environment should result in enough data.

@corpaul
Copy link

corpaul commented Apr 22, 2014

We used to have this working but I think the updates over time killed it. Will check with @whirm when he is in

@corpaul
Copy link

corpaul commented Jun 18, 2014

should be up and running again http:https://jenkins.tribler.org/job/Test_performance_Tribler_idle_1H_nightly_devel so this can be closed

@corpaul corpaul closed this as completed Jun 18, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants