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

Jenkins performance suite to drive progress #3325

Closed
synctext opened this issue Dec 29, 2017 · 7 comments
Closed

Jenkins performance suite to drive progress #3325

synctext opened this issue Dec 29, 2017 · 7 comments

Comments

@synctext
Copy link
Member

synctext commented Dec 29, 2017

#1287 If you can't measure it, you can't improve it. Helps us focus on right things. Drives our forward progress. Ultimately run them for each PR: Any change should strictly improve the metric. Core Tribler features are: search, stream, and share. We need a single score number for each build. Capture average download speed accurately. How to measure spend CPU cycles? Our 8 core performance metrics:
-‎anon stream
-‎anon download
-stream
-‎download
-‎search
-‎idle 24h
-‎anon seed
-‎first 1h bootstrap

inspiration,be an effective engineer:https://gist.github.com/rondy/af1dee1d28c02e9a225ae55da2674a6f

@synctext synctext added this to the V7.1 milestone Dec 29, 2017
@devos50
Copy link
Contributor

devos50 commented Mar 23, 2018

For example, see our existing Jenkins job (https://jenkins.tribler.org/job/Test_Tribler_idle_run_1H/1220/). A very basic improvement could be to extend this job with 20 pre-selected downloads (Ubuntu/Debian torrents).

fd_usage

@synctext
Copy link
Member Author

@ichorid @xoriole Good plan. If the downloading is integrated (e.g. https://cdimage.debian.org/debian-cd/current/amd64/bt-dvd/debian-9.4.0-amd64-DVD-1.iso.torrent x 20) we can buy some servers with real remote links. Next week I can buy some https://flokinet.is/vps-server.php Romania & Iceland servers for usage as Jenkins_client.

@synctext
Copy link
Member Author

We need to visit network-awareness issue again, after token economy is up and running in initial form. Redo some work from 13 years ago. Tribler becomes a portable network performance measurement lab. Tribler measures all available bandwidth after install. Within Jenkins and servers on various continents, it does this daily.
First step, do a simple download test, inform the user, like:
image

@ichorid
Copy link
Contributor

ichorid commented May 24, 2018

I created a Jenkins performance test for 1-hop download.
It sets up Seeder<->Router<->Leecher testnet on a loopback device of an isolated "bare-metal" machine and produces simple download speed plots, like this one:
result

The test runs on daily schedule.

Suggestions for further modifications are welcome.

@devos50
Copy link
Contributor

devos50 commented May 24, 2018

@ichorid nice!

It would be nice to extend the test a bit and let the Jenkins job fail when no data is being transmitted at all during the test. Next, I can add jour performance test to the nagios checker and we monitor the job.

@qstokkink
Copy link
Contributor

Cool. I guess you could also run it multiple times and produce a shaded error bar plot so we can judge stability.

@devos50
Copy link
Contributor

devos50 commented Feb 28, 2019

After some discussion, we conclude that we by now have an extensive set of tests on Jenkins, both for validation and performance. Therefore, we believe that we can close this issue.

@devos50 devos50 closed this as completed Feb 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

5 participants