Worstcase Latency Test Scenario

From RTwiki
Revision as of 00:50, 29 July 2009 by Leemgs (Talk | contribs)

Jump to: navigation, search

This is Realtime Latency Test Scenario during 24hours. In this experiment,I adjusted CPU Affinity Policy to reduce Latency overheads in the Multicore.

Contents

Requirements

Prepare cyclictest(rt-tests), taskset, chrt, ltp-full-20090531.tar.gz ,hackbench , ping, dd, tar, netperf commands.

- H/W Informatoin : Core2 Quad CPU
- Target board : 192.168.155.20(Private IP)
- Opensource Utilities: 
  http://blogfiles6.naver.net/data42/2009/6/19/149/opensource-list-scheduling-invain.png
- Graphical Test Map: 
  http://blogfiles13.naver.net/data44/2009/6/19/108/latency-worstcase-testscenario-invain.png

Latency Test Scenario

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

Latency Test

ssh geunsik@192.168.155.20
cd /opt/
git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
cd rt-tests
make clean ; make
cp ./cyclictest /usr/sbin/

# 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 (for WorcaseCase)

* Tip) Utilize iotop & top command to monitor CPU & IO Ratio.
# 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
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 &

Personal tools