Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:realtime:benchmark:start [2019-01-24 16:21] mgehrig2software:linux:realtime:benchmark:start [2023-04-11 11:17] (aktuell) – gelöscht Urs Graf
Zeile 1: Zeile 1:
-====== Benchmark ======= 
-===== Introduction ===== 
-There are many different tools available to measure the realtime performance of a system. 
- 
-The cyclictest is the simplest and most usefull benchmark. 
- 
- 
-===== Cyclictest ===== 
-The Cyclictest starts several tasks, which are called periodically. 
-The effective period duration is measured and the jitter is displayed. 
- 
-  * [[https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start?s[]=cyclictest | Cyclictest website]] 
- 
-A presentation from the "Embedded Linux Conference 2013" offers a good introduction to the use of Cyclictest. 
-The presentation can be watched on [[https://www.youtube.com/watch?v=f_u4r6ehZKY | Youtube]]. 
-The PPT slides can be downloaded {{:software:linux:realtime:benchmark:cyclictest_frank_rowand_ppt.pdf|here}}. 
- 
-==== Installation ==== 
-<code>git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git 
-sudo apt-get install build-essential libnuma-dev 
-cd rt-tests 
-git checkout -b tmp taggs/v1.0 
-make all 
-</code> 
- 
-==== Cross compile ==== 
-TODO 
- 
-To install the Cyclictest on a MPC follow [[software:linux:realtime:benchmark:cyclictest_on_mpc|this]] guid. 
- 
-==== Quickstart ==== 
-<code> 
-sudo ./cyclictest -p 80 -t5 
-</code> 
- 
-5 threads are created, which are called periodically. 
-After a few minutes, the maximum latency can be roughly estimated. 
- 
- 
-==== Extensive Measurement ==== 
-In order to benchmark the realtime performance of a system well appropriately, a measurement duration of at least 24h under real or artificial load is recommended. 
-The frequency of different latencies can be counted and displayed in a histogram. 
- 
-=== Start Benchmark === 
-<code>sudo ./cyclictest -Sp80 -l86400000 -i1000 -h1000 -q > histogramm.log</code> 
- 
-[{{ :software:linux:cyclictest:histograme05.jpg?400|Histogramm of a x86 system with RT Kernel. Measurement time = 1h}}] 
- 
-| -Sp80       |S = alle cores; p = priority**-**80 (Realtime)| 
-| -l86400000  |86'400'000 cycles| 
-| -i1000      |1000us per cycle| 
-| -h1000      |Latencies up to 1000us will be stored for the histogram| 
-| -q          |quiet| 
-^ Measurement time: |l86400000*i1000 = 86400e6us = 86400s = 24h| 
- 
-All measurements longer than ''-h1000'' do not appear in the histogram. These measurements are counted and displayed at the end of the log file as //Histogram Overflows://. The Maximum Latency is displayed as //Max Latencies://. 
- 
-To plot the histogram this Matlab script {{:software:linux:realtime:benchmark:plothistogram.rar|plotHistogramm.m}} can be used. 
- 
-The homepage of [[https://www.osadl.org/Latency-plots.latency-plots.0.html|OSADL]] explains well how such a histogram can be interpreted.