Skip to content

StorMeter bricklet documentation

anton-daynix edited this page Jan 30, 2013 · 5 revisions

Table of Contents

Terminology Used

  • Host (host system, host operating system) - the primary & first installed operating system.
  • Guest (guest system, guest operating system) - a virtual guest or virtual machine (VM) that is installed under the host operating system.

About StorMeter bricklet

StorMeter bricklet is a Perl script for running IOMeter tool for Guest storage devices performance measuring and comparison. It collects the performance statistics for different scenarios and exposes it in convenient and easily comparable form.

StorMeter functionality

  • Platforms supported
    • Guests running on a Linux Host
    NOTE: Guests running on a Windows Hosts are not supported at the moment due to lack of sar Windows port
  • Measures performance of a storage adapter/disk in following scenarios:
    • Sequential read
    • Sequential write
    • Randomized read
    • Randomized write
  • Performs tests for different transfer lengths from 512 to 65536 bytes
  • For each test measures data transfer speed and CPU utilization
  • Compare given results with other storage adapters

External Tools used

StorMeter script adjustments

IOMeter installation path

my $iometer_path_name = "C:\\Program Files (x86)\\Iometer.org\\Iometer 2006.07.27\\Iometer.exe";

Read/Write test configuration

my %ReadPercentages = ("R" => 100, "W" => 0);

The numerical value specifies % Read - the percentage of accesses that are reads rather than writes. For more detailed information, see IOMeter Documentation

Buffer sizes to be tested (bytes)

my @BufferSizes = ( 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 );

Randomness Percentage

my %RandomnessPercentages = ( "Rand" => 100, "Seq" => 0 );

The numerical value specifies % Random - the percentage of accesses that are random-access rather than sequential. For more detailed information, see IOMeter Documentation

Test Duration (hours, minutes, seconds)

my $RunTimeH = 0; my $RunTimeM = 0; my $RunTimeS = 30;

Time before the measurements start (seconds)

my $RampUpTimeS = 10;

Size of file to be tested (MBytes)

my $TestFileSizeMb = 512;

Measurement approach

  • Measurements are performed separately for each device
  • For each measurement session system is configured to work with same physical raw disk image on host file system
  • IO load and bandwidth measurements performed using StorMeter.pl script
  • CPU load measurements are performed by sar application running on the Host
  • No additional activities are allowed on the Host
  • No other Guests should be running on the same Host

Measurement on Windows Guest systems

  • Install Active Perl Community Edition
  • Run StorMeter.pl script on guest OS:
    StorMeter.pl <disk>: <results file>
  • Run sar on Host OS" (per second CPU utilization sampling):
    sar -u 1 | tee <results file>
  • Upon StorMeter.pl process completion stop sar manually

Measurement on Linux Guest systems

On Linux system distributed semi-automatic scheme is used. IoMeter GUI runs on a helper Windows machine, IoMeter server component (so called dynamo) runs on guest Linux system

  • Download IoMeter sources and compile dynamo server for Linux
  • Run StorMeter.pl script on the helper Windows machine:
    StorMeter.pl <target device name> <results file>
  • Run compiled dynamo server as root with following options
    dynamo -i <IP of machine running IoMeter GUI> -m <Local machine IP visible from GUI machine>
  • In IoMeter GUI choose appropriate guest Linux machine from managers list and select appropriate device from targets list
  • Press Start Tests button (the one with flag icon)
  • Run sar on Host OS (per second CPU utilization sampling):
    sar -u 1 | tee <results file>
  • Upon IoMeter tests completion close IoMeter GUI manually
  • Upon StorMeter.pl process completion stop sar manually