Cyclictest
是 rt-tests 下的一個(gè)測(cè)試工具,也是rt-tests 下使用最廣泛的測(cè)試工具,一般主要用來測(cè)試使用內(nèi)核的延遲,從而判斷內(nèi)核的實(shí)時(shí)性。
編譯安裝
sudo apt-get install build-essential libnuma-dev make
運(yùn)行測(cè)試
要在每個(gè)CPU或每個(gè)CPU核心上運(yùn)行一個(gè)測(cè)試線程,請(qǐng)輸入以下命令
sudo ./cyclictest -a -t -n -p99
在非實(shí)時(shí)系統(tǒng)中,您可能會(huì)看到類似的內(nèi)容
T: 0 ( 3431) P:99 I:1000 C: 100000 Min: 5 Act: 10 Avg: 14 Max: 39242 T: 1 ( 3432) P:98 I:1500 C: 66934 Min: 4 Act: 10 Avg: 17 Max: 39661
最右邊的列包含最重要的結(jié)果,即最壞情況下的延遲為39.242毫秒。在啟用實(shí)時(shí)的系統(tǒng)上,結(jié)果可能如下所示
T: 0 ( 3407) P:99 I:1000 C: 100000 Min: 7 Act: 10 Avg: 10 Max: 18 T: 1 ( 3408) P:98 I:1500 C: 67043 Min: 7 Act: 8 Avg: 10 Max: 22
因此,表示短期最壞情況下的延遲為18微秒。
只在短時(shí)間內(nèi)運(yùn)行cyclictest,而不創(chuàng)建適當(dāng)?shù)膶?shí)時(shí)壓力條件,這是非常沒有意義的,因?yàn)閺目臻e狀態(tài)執(zhí)行異步事件通常總是非常快,而且每個(gè)—甚至非rt系統(tǒng)—都可以做到這一點(diǎn)。所面臨的挑戰(zhàn)是,無論外部事件到達(dá)時(shí)執(zhí)行的代碼路徑是什么,都要盡量減少響應(yīng)異步事件時(shí)的延遲。因此,在循環(huán)測(cè)試運(yùn)行時(shí)必須存在特定的應(yīng)力條件,以可靠地確定給定系統(tǒng)的最壞情況延遲。
您知道哪些好用的linux 實(shí)時(shí)性能測(cè)試工具,歡迎評(píng)論分享,共同探討學(xué)習(xí)
如果覺得文章能夠?qū)δ兴鶐椭梢躁P(guān)注我,你的支持會(huì)鼓勵(lì)我不斷分享更多更好的優(yōu)質(zhì)文章。