Hello and welcome back to the Digistor Blog!
Today I would like to highlight a useful command line tool included with Quantum StorNext systems called vidio.
Vidio is a benchmarking tool that administrators can use to test the performance of various video editing workloads on their system.
This tool is excellent for getting an initial benchmark on your system (normally from the perspective of your MDC, which usually has the fastest connection back to your storage, but it can also be run on a normal client). Initial benchmarks are a solid reference for troubleshooting any apparent slowness down the track.
Vidio can be used to test the speed of various frame sizes and frame rates against the Block Size (aka Stripe Size) and Stripe Breadth set on the storage. Depending on your workflow, you may find certain tunings of RAID Level, Block Size and Stripe Breadth will perform better for different environmental requirements.
For example, for large sequential file access (usually HD and upwards workflows), storage throughput becomes more important and larger Stripe Size has a definite advantage. For smaller and/or random file access, RAID write-back and IO Latency are more critical – this is achieved with smaller Stripe Sizes. RAID level is also a considering factor, but this is another topic.
Obviously, such tuning is normally performed before the system actually goes online, as changes to these values means wiping and recreating the entire filesystem!
A brief usage of vidio is detailed below.
vidio [options] dir_path [dir_path1 dir_path2 . . .]
-B use system buffered I/O
-c continuously update display
-f frame_size framesize in bytes or frame type:
sdtv standard definition video
hdtv high definition video
fa2k full aperture 2K frames
fa4k full aperture 4K frames
-F frame_rate frame_rate in frames/second
-l frame_list read frame file names from list file
-n nframes number of frames
-N nframes number of frames per file - default = 1
-p name prefix of file names - default 'vidio'
-q queue_depth async i/o queued queue_depth deep
-r read: consumer mode
-T <millisecs> stop test if IO time is > millisecs
-V print version and exit
-w write: producer mode – default
For example -
vidio -f fa4k -q 2 -n 1500 /path/to/storage/test_folder/
(Write 1500x 4k frames, queued 2 deep (asynchronous) to test_folder at the root your storage mount point)
A Practical example – System with 24 spinning disks, 1 MDC, 1 fibre client:
Note: We like to perform tests that are larger than the RAM in the client that is testing to ensure data is not cached and potentially providing higher results than reading/writing to actual disk.
Digistor always perform benchmarks on systems while they are in our workshop – a known stable environment with no extra patching or unknown cabling between systems. This can be invaluable when we get to the actual installation and start to notice inconsistencies against our initial expectations.
While we have many tools at our disposal, I have found this one quite useful on many linux systems and feel it worth a mention.
Anyway, I've got to get back to the workshop and benchmark some more storage – see you all next time!