User Tools

Site Tools


realtime:documentation:howto:tools:worstcaselatency

This is an old revision of the document!


Worst Case Latency Test Scenarios

This section talks about different ways one can generate workloads to test worst case latency for a real-time system. These tests were originally designed by Geunsik Lim.

Requirements

Following tools are being used by this test:

  • hackbench (part of the rt-tests.)
  • other commands like taskset, chrt, ping, dd, tar and netperf which is usually available by default in most linux systems.

Latency test scenarios

This is Test scenario to measure a latency guarantee in the worstcase environments using simple script and commands.

Latency test

# This is task to keep Latency(Max limitation: 200uSec) at the worst case.
# Written by GeunSik,Lim 
# If you need histogram information just, Please Use -h option.
time cyclictest -t1 -p 99 -i 1000 -n -l 1000000000000 -d 86400 -m -a 1

Stress Environments

# Now, Below test code is background stress for the worst case in RT system.
time cyclictest -t50 -p 80 -i 10000 -n -l 100000000000 -d 86400  -a 3
 
taskset -c 2,3 ./stress.20080904.sh
---------------------------
#!/bin/sh
# Most hardcore test (Ingo Molnar - http://lkml.org/lkml/2005/6/22/347)
# For Heavy CPU Ratio.
while true; do /bin/dd if=/dev/zero of=bigfile bs=1024000 count=1024; done &
while true; do /usr/bin/killall hackbench; sleep 5; done &
while true; do /sbin/hackbench 20; done &
# some source code(ltp-full-20090531) consists of sched_setschduler() with FIFO 99.
cd ltp-full-20090531; while true; do ./runalltests.sh -x 40; done  &
----------------------------
 
# For 100% Usage of CPU Load using ping
# Should run as root to preload more than 3 packets.
taskset -c 0 /bin/ping -l 100000 -q -s 10 -f localhost &
taskset -c 1 /bin/ping -l 100000 -q -s 10 -f localhost &
taskset -c 2 /bin/ping -l 100000 -q -s 10 -f localhost &
taskset -c 3 /bin/ping -l 100000 -q -s 10 -f localhost &
----------------------------
 
# For 100% Usage of I/O Load using linux-2.6.30 tar source like tiobench s/w.
# Don't forget disk total usage ratio (ex: df ).
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6.30
cd /opt
while true; do taskset -c 0 tar cvzf test1.tgz  ./linux-2.6.30 ; done  &
while true; do taskset -c 1 tar cvzf test2.tgz  ./linux-2.6.30 ; done  &
while true; do taskset -c 2 tar cvzf test3.tgz  ./linux-2.6.30 ; done  &
while true; do taskset -c 3 tar cvzf test4.tgz  ./linux-2.6.30 ; done  &
----------------------------
 
# Estimate file space usage ( for I/O Load)
while true; do taskset -c 3 /bin/du / ; done  &
----------------------------
 
# Network Stress ( Network Performance & Stress )
/usr/bin/netserver
/usr/bin/netperf -H 192.168.155.20 -t TCP_STREAM -A 16K,16K -l 3600
# Streamming Stress using firefox webbrowser.
firefox http://www.intomail.net/stream.php
----------------------------
 
# USB Disk I/O Stress(External HDD's I/O )
cd /media/usb/
taskset -c 2 tar cvzf test5.tgz  /media/usb/linux-2.6.30 &

A lot of these tests produce a lot of output. It can be redirected to /dev/null so that it does not flood the terminal. This can especially be a problem when using a serial console.

Contacts

Geunsik Lim, leemgs1@gmail.com

realtime/documentation/howto/tools/worstcaselatency.1486563877.txt.gz · Last modified: 2017/02/08 14:24 by anna-maria