https://rt.wiki.kernel.org/index.php/Cyclictest
git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
cd rt-tests
git checkout stable/v1.0
make all // 不適用NUMA則 make all NUMA=0
make install
常用參數
-p PRIO --prio=PRIO 最高優先級線程的優先級 使用時方法爲: -p 90 / --prio=90
-m --mlockall 鎖定當前和將來的內存分配
-c CLOCK --clock=CLOCK 選擇時鐘 cyclictest -c 1
0 = CLOCK_MONOTONIC (默認)
1 = CLOCK_REALTIME
-i INTV --interval=INTV 基本線程間隔,默認爲1000(單位爲us),下面介紹原理的時候會提到
-l LOOPS --loops=LOOPS 循環的個數,默認爲0(無窮個),與 -i 間隔數結合可大致算出整個測試的時間,比如 -i 1000 -l 1000000 ,總的循環時間爲1000*1000000=1000000000 us =1000s ,所以大致爲16分鐘多。
-n --nanosleep 使用 clock_nanosleep
-h HISTNUM --histogram=US 在執行完後在標準輸出設備上畫出延遲的直方圖(很多線程有相同的權限)US爲最大的跟蹤時間限制,這個在下面介紹實例時可以用到,結合gnuplot 可以畫出我們測試的結果圖。
-q --quiet 使用-q 參數運行時不打印信息,只在退出時打印概要內容,結合-h HISTNUM參數會在退出時打印HISTNUM 行統計信息以及一個總的概要信息。
-f --ftrace ftrace函數跟蹤(通常與-b 配套使用,其實通常使用 -b 即可,不使用 -f )
-b USEC --breaktrace=USEC 當延時大於USEC指定的值時,發送停止跟蹤。USEC,單位爲謬秒(us)。