Benchmark
如何模擬高影片負載以對 SSD 進行基準測試?
我正在嘗試為影片點播案例評估一些 SSD。我們已經對它們進行了一些基準測試,但我們想通過比典型基準工具更現實的負載測試來了解它們可以支持的影片流數量。
到目前為止,我已經這樣做了:
- 用電影文件填充 SSD
- 在其他伺服器上遠端安裝該 SSD
- 從這些其他伺服器執行一個腳本,該腳本在其中一個文件的循環上隨機啟動一堆 VLC 實例。(注意:VLC 實例使用選項執行,
--vout dummy --aout dummy --codec dummy
因此它不斷請求文件,但不對其進行任何解碼以節省 CPU)我還有一個從同一個 SSD 解碼的機頂盒。我們的想法是看看我們是否可以直覺地註意到 SSD 性能何時開始崩潰。
我得到了不錯的結果,但主要問題是負載伺服器可以抓取的流數量達到了限制(在 700-800 範圍內,10-12GB 的 RAM)。看起來這是由於大量交換同時發生,推
iowait
高了天空,使伺服器幾乎沒有響應。簡而言之,我的問題是:
- 這種設置有意義嗎?
- 你能想出另一種方法嗎?
- 你能想出一些調整來不讓負載伺服器在一定數量的流之後變得無響應嗎?(我玩了一點,
/proc/sys/vm/swappiness
但似乎沒有什麼不同)謝謝,
蒂姆
我做影片點播系統,沒有什麼可以替代實際編寫一些準確描繪真實播放特徵的程式碼。我們寫了一個我們稱之為“VODBasher”的軟體,它使用了我們在真實平台上真正使用的確切傳輸機制,並且我們從各地的真實位置執行它。這有助於我們了解哪裡會看到問題,哪裡不會。其他任何事情都是開玩笑的猜測。
在執行 700-800 個 VLC 副本的情況下,您實際上會在“負載伺服器”(在這種情況下充當客戶端)上耗盡記憶體,這似乎很合理。每個實例只使用 12-17MB 的 RAM,而你的 10-12GB。(所以難怪調整swappiness不會讓你走得太遠)。
有什麼特別的理由用 vlc 載入電影(即使是虛擬輸出),而不是僅僅把它轉儲到
/dev/null
.