之前有個 case,要透過 PC 上的 SNMP Client 去對 DUT 產生 CPU 的 loading,使 Client 的 request 被 queue 住。
我在一台 PC 上同時 run 了 45 個 Client,對 DUT 也確實產生了 CPU 的 loading。
但是後來發生兩個狀況,
一個是 DUT 的 CPU loading 始終沒辦法維持 100%,
一個是 Project Leader 唸我說這樣測不準確。
為什麼呢?
因為我在一台 PC 上 run 45 個 Client,
但是以 OS 的角度我們必須用更細微的眼光來看,
雖然所有的 Client 是同時在 run,但是因為是在同一台 PC 上,
所以 OS 還是針對每個 Client 逐一的去處理,逐一的送出 request,
因此我們可以確定 request 是逐一到達 DUT,而不會同時到達造成 DUT 在 CPU loading 重的時候,
必須 queue 住一些request。
較準確的作法應該是,
用多台 PC 同時下去跑 Client,讓每台 PC 上的送出的 request 為各自獨立的事件,
同時間才會有 request 同時到達 DUT,才有可能產生 queue 住的情形。
大學和研究所都有修 OS,
我竟然沒想到 Orz。
沒有留言:
張貼留言