0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Linuxでframetestという映像向けベンチマーク

Last updated at Posted at 2023-09-01

ストレージ向けのベンチマークはいろいろあるけど、映像専用の物もあるらしい。
という事で早速入れてみたのでメモ。

1, frametestをダウンロード
2, 32Bitのglibcインストール
3, 実行
4, 結果

1, frametestをダウンロード

こちらからダウンロード
https://support.dvsus.com/hc/en-us/articles/212925466-How-to-use-frametest
ただし、64Bit版は無いようなので、32bit版を使います。
ダウンロードするとパッケージというよりは実行ファイルその物のような形でダウンロードするのでセキュリティの警告が出るけど、勿論無視。
ダウンロードしたら実行権を与えておきます。

#chmod +x frametest

2, 32Bitのglibcインストール

デフォルトのUbuntu 22.04(64Bit)のままだと32Bitプログラムなので動かない。
glibc-i686が必要と書いてありますが、Ubuntuだとピンポイントではインストール出来ないっぽい。
よって、ライブラリーごとバサッと入れちゃう。

#apt install gcc-multilib

これでOK!

3, 実行

リンクにある通りにやってみる。
実行すると連番ファイルが大量に生成されるので、テスト用のディレクトリを作った方が消すときに楽です。
Syntaxは
#./frametest [options]
Options:
-w size Perfrom write test with 'size' KB frames or "sd", "hd", "2k", "4k"
-e Perform write test with empty frames (open/close test)
-r Perform read test using existing frames (default)
-s Perform streaming test to/from a single file
-n num Number of frames to read or write (default = 1800)
-a num Use async I/O with 'num' overlapped operations (default is sync)
-t num Use multithreading I/O, with 'num' threads at one time
-o Handle completed I/Os out-of-order (not used in read and sync IO)
-f rate Limit speed to 'rate' frames per second
-q num Maximum 'num' of queued buffers before a frame is dropped
-b num Pre-buffer 'num' frames before starting "playback" (default = 5)
-v Create/access files in reverse order
-m Create/access files in a random pattern
-l num Number of frames to loop (default = 0: don't loop)
-i num Number of I/Os per frame (default = 1, ignored in async mode)
-z size Specifies a custom 'size' for read or write test in KB
-d num Use directories, with 'num' files per directory
-p secs Pause 'secs' before starting test
-c perc Crop mode, read middle 'perc'% of frame (ignored in write test)
-u secs Display update interval in seconds (default = 1s)
-h secs Histogram displays last 'secs' worth of info (default = all)
-x file Export detailed timing to a file (comma separated), append '.csv'

まずは、DPX 2Kを想定した書き込みなので、-w 2kにしてフレーム数はデフォルトは1800ですが9000枚に。
またログを取っておきたいので-x でファイル名.csvを指定。
最後に出力先で、今回はHDD x12本のSoftware RAIDをマウントしてあるディレクト先に書いてみます。
ちなみに、1回目のテストはReadが混ざるので2回目以降の方がリアルな結果になるらしい。

#mkdir /data/set1
#./frametest -w 2k -t 4 -n 9000 -x DPX_write.csv /data/set1

Test parameters:      -w12512 -n9000 -t4 
Test duration:        142 secs
Frames transferred:   8977 (109687.719 MB)
Fastest frame:        8.324 ms (1467.96 MB/s)
Slowest frame:        650.225 ms (18.79 MB/s)

Averaged details:
              Open        I/O         Frame      Data rate   Frame rate
  Last 1s:   0.033 ms    66.82 ms    17.24 ms   708.67 MB/s   58.0 fps
       5s:   0.026 ms    62.94 ms    16.85 ms   725.22 MB/s   59.4 fps
      30s:   0.026 ms    60.36 ms    16.54 ms   738.95 MB/s   60.5 fps
  Overall:   0.028 ms    57.67 ms    15.86 ms   770.21 MB/s   63.0 fps

Histogram of frame completion times:
   20% |                                                                     
       |                                       *                             
       |                                      **                             
       |                                      ***                            
       |                                     ****                            
       |                                     *****                           
       |                                    ******                           
       |                                   ********                          
       |                                  **********               **        
       |                               *********************      ****       
       +|----|-----|----|----|-----|----|----|-----|----|----|-----|----|
  ms  <0.1  .2    .5    1    2     5   10   20    50   100  200   500  >1s


  Overall frame rate .... 63.12 fps (808663695 bytes/s)

  Average file time ...... 57.630 ms
  Shortest file time ..... 8.324 ms
  Longest file time ...... 650.225 ms

  Average create time .... 0.028 ms
  Shortest create time ... 0.004 ms
  Longest create time .... 5.511 ms

  Average write time ..... 57.6 ms
  Shortest write time .... 8.3 ms
  Longest write time ..... 650.2 ms

  Average close time .... 0.008 ms
  Shortest close time ... 0.001 ms
  Longest close time .... 0.409 ms

Writing log file...

4, 結果

なんかクリスマスツリーみたいでかわいいけど、これはレイテンシーの分布ですね。
スループットは 770.21 MB/sで、フレームレートは63.0 fps。
良いのか悪いのか判断が解りませんが、連番で60fps出てるよって事かな。だとしたらGoodだと思いたい。

連番ではなくシングルファイルの時は以下のようにシンプルに。

書き込み
#./frametest -s -w 8192 /data/set1/testfile1  
読み出し
#./frametest -s -z 8192 -r /data/set1/testfile1

以上、まずは簡単にやってみたレベルですが、いつか誰かの役に立ちますように。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?