Performance Test: Difference between revisions

From Yocto Project
Jump to navigationJump to search
No edit summary
 
(170 intermediate revisions by 8 users not shown)
Line 1: Line 1:
'''Poky/Bitbake Performance:'''<br>
== Build time tracking ==
Performance is an essential point for measuring the quality of a build system.<br>
This page is to track performance trend of poky build. Detailed development work is on https://wiki.yoctoproject.org/wiki/Performance.<br>
<br>
'''Hardware and software configuration:'''<br>
CPU: 4-core * 2-threads Intel(R) Core(TM) i7 CPU 860  @ 2.80GHz<br>
Memory: 4GB<br>
Harddisk: 1TB<br>
<br>
OS: Ubuntu 11.10 x86_64<br>
Kernel: 2.6.35-22<br>
<br>
local.conf:<br>
CONF_VERSION = "1"<br>
DL_DIR ?= "/sda1/sources/downloads" # Using a local download dir to avoid fetch.<br>
BB_NUMBER_THREADS = "8"<br>
PARALLEL_MAKE = "-j 8"<br>
MACHINE ?= "qemux86"<br>
DISTRO ?= "poky"<br>
BBMASK = ""<br>
EXTRA_IMAGE_FEATURES = "debug-tweaks"<br>
PACKAGE_CLASSES ?= "package_rpm"<br>
USER_CLASSES ?= "image-mklibs image-prelink"<br>
PACKAGE_DEBUG_SPLIT_STYLE = '.debug'<br>
BBINCLUDELOGS = "yes"<br>
ENABLE_BINARY_LOCALE_GENERATION = "1"<br>
NO32LIBS = "1"<br>
<br>


'''Build Performance Trend'''
Script used for running the builds:
{|border="1"
 
|| '''Host''' || '''[[Yocto1.2-M1-RC2-build]]'''|| '''[[Yocto1.1-M4-RC4-build]]'''|| '''[[Yocto1.1-M4-RC3-build]]''' || '''[[Yocto1.1-M4-RC2-build]]'''|| '''[[Yocto1.1-M2-RC3-build]] (both rpm and ipk built by default)'''
*Before morty: poky/scripts/contrib/build-perf-test.sh
|-
*After morty: poky/scripts/oe-build-perf-test
||Ubuntu11.10 x86_64 || real 104m24s <br> user 374m16s <br> real 50m 37s || real 119m31s <br> user 355m3s <br> sys 47m42s  || real 127m33s <br> user 346m3s <br> sys 48m5s || real 124m54s <br> user 342m57s <br> sys 47m33s || real 109m53s <br> user 356m16s <br> sys 48m16s
 
|}
Two identical test systems are used for the results, with all updates available installed. Extra packages installed (besides what's by the default in the distro) are the ones in the Quick Start guide.
 
Configuration of the GDC Setup 2.1 - Current master
* Ubuntu 15.10 (Wily Werewolf)" -->  4.2.0-16-generic
* Fedora release 23 (Twenty Three) --> 4.7.10-100.fc23.x86_64
* HW configuration: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz, 16GB RAM,  1 x 600 GB SDD, 1 x 2 TB HDD
 
All system/distro settings are '''distro's defaults''', that includes:
 
- FS mount options: ext4 rw,relatime,data=ordered
 
- IO scheduler: cfq and CPU governer: ondemand
 
local.conf it's the default one (the script doesn't touch it except for changing DL_DIR if necessary).
 
It however exports these in the enviroment:
<nowiki>BB_NUMBER_THREADS = "8"
PARALLEL_MAKE = "-j 8"
MACHINE = "qemux86"</nowiki>
 
FAQ:
*Q: Where is 1.5_M2? It's there but it's called: 1.5_M1.final-412-geaa5df3 The M2 build wasn't released hence no git tag
*Q: What's with the different number of RCs? See [[Yocto_Project_Release_Process#Milestone_Releases]]
*Q: Why are there more results for some commits? The script is ran from a cron job multiple times a day, sometimes master changes daily sometimes it doesn't, hence more results for one commit (ie weekends)
 
 
== Daily Test Results ==
Build performance test suite is run multiple times per day. Latest test reports for master branch can found here:
* [https://wiki.yoctoproject.org/charts/build_perf/latest/ypperf-ubuntu16_master_qemux86.html Ubuntu 16.04]
* [https://wiki.yoctoproject.org/charts/build_perf/latest/ypperf-ubuntu16-xeon_master_qemux86.html Ubuntu 16.04 (Intel® Xeon® HW)]
* [https://wiki.yoctoproject.org/charts/build_perf/latest/ypperf-centos7_master_qemux86.html CentOS 7]
* [https://wiki.yoctoproject.org/charts/build_perf/latest/ypperf-opensuse422_master_qemux86.html OpenSUSE Leap 42.2] (retired)
* [https://wiki.yoctoproject.org/charts/build_perf/latest/ypperf-fedora25_master_qemux86.html Fedora 25] (retired)
* [https://wiki.yoctoproject.org/charts/build_perf/latest/ypperf01_master_qemux86.html Fedora 23] (retired)
* [https://wiki.yoctoproject.org/charts/build_perf/latest/ypperf02_master_qemux86.html Ubuntu 15.10] (retired)
 
== Milestone Test results ==
Guadalajara Setup from 2.1 M4 to actual master
 
* [https://wiki.yoctoproject.org/charts/perf_milestone_GDC/performance_test.html GDC Charts]
 
== Old Test results ==
 
Milestone test results from the retired Romania Setup (Yocto 1.6 – 2.1) can be found from here:
 
* [https://wiki.yoctoproject.org/charts/perf_milestone/performance_test.html RO Charts]
 
Raw test data from the retired Romania test setup has been moved to
* [[Performance_Test_Old_Results]]
* [[Performance_Test_Weekly_1.5]] has the old weekly results ran during the 1.5 cycle.
 
Configuration for the Romania Setup 1.6 - 2.1:
 
* Ubuntu 12.04 (uname -nr: ubuntu12 3.8.0-31-generic) and
* Fedora 19 (uname -nr: fedora19 3.11.3-201.fc19.x86_64)
* HW configuration: SandyBridge i7-2600 CPU @ 3.40GHz (4 cores/8 threads), 8GB RAM, 1 x 500 GB HDD

Latest revision as of 14:17, 28 January 2019

Build time tracking

Script used for running the builds:

  • Before morty: poky/scripts/contrib/build-perf-test.sh
  • After morty: poky/scripts/oe-build-perf-test

Two identical test systems are used for the results, with all updates available installed. Extra packages installed (besides what's by the default in the distro) are the ones in the Quick Start guide.

Configuration of the GDC Setup 2.1 - Current master

  • Ubuntu 15.10 (Wily Werewolf)" --> 4.2.0-16-generic
  • Fedora release 23 (Twenty Three) --> 4.7.10-100.fc23.x86_64
  • HW configuration: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz, 16GB RAM, 1 x 600 GB SDD, 1 x 2 TB HDD

All system/distro settings are distro's defaults, that includes:

- FS mount options: ext4 rw,relatime,data=ordered

- IO scheduler: cfq and CPU governer: ondemand

local.conf it's the default one (the script doesn't touch it except for changing DL_DIR if necessary).

It however exports these in the enviroment:

BB_NUMBER_THREADS = "8"
PARALLEL_MAKE = "-j 8"
MACHINE = "qemux86"

FAQ:

  • Q: Where is 1.5_M2? It's there but it's called: 1.5_M1.final-412-geaa5df3 The M2 build wasn't released hence no git tag
  • Q: What's with the different number of RCs? See Yocto_Project_Release_Process#Milestone_Releases
  • Q: Why are there more results for some commits? The script is ran from a cron job multiple times a day, sometimes master changes daily sometimes it doesn't, hence more results for one commit (ie weekends)


Daily Test Results

Build performance test suite is run multiple times per day. Latest test reports for master branch can found here:

Milestone Test results

Guadalajara Setup from 2.1 M4 to actual master

Old Test results

Milestone test results from the retired Romania Setup (Yocto 1.6 – 2.1) can be found from here:

Raw test data from the retired Romania test setup has been moved to

Configuration for the Romania Setup 1.6 - 2.1:

  • Ubuntu 12.04 (uname -nr: ubuntu12 3.8.0-31-generic) and
  • Fedora 19 (uname -nr: fedora19 3.11.3-201.fc19.x86_64)
  • HW configuration: SandyBridge i7-2600 CPU @ 3.40GHz (4 cores/8 threads), 8GB RAM, 1 x 500 GB HDD