Pi vs UDOO MySQL performance test

Create test DB:

mysql -u root -p
mysql> create database test;
exit;

Prepare the database:

sysbench --test=oltp --oltp-table-size=100000 --mysql-db=test --mysql-user=root --mysql-password=mysqlpassword prepare

Run the test:

sysbench --test=oltp --oltp-table-size=100000 --mysql-db=test --mysql-user=root --mysql-password=mysqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

Pi Output:

OLTP test statistics:
    queries performed:
        read:                            28364
        write:                           0
        other:                           4052
        total:                           32416
    transactions:                        2026   (33.76 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 28364  (472.67 per sec.)
    other operations:                    4052   (67.52 per sec.)

Test execution summary:
    total time:                          60.0080s
    total number of events:              2026
    total time taken by event execution: 59.8767
    per-request statistics:
         min:                                 12.90ms
         avg:                                 29.55ms
         max:                                 76.67ms
         approx.  95 percentile:              50.34ms

Threads fairness:
    events (avg/stddev):           2026.0000/0.00
    execution time (avg/stddev):   59.8767/0.00

UDOO output:

OLTP test statistics:
    queries performed:
        read:                            287532
        write:                           0
        other:                           41076
        total:                           328608
    transactions:                        20538  (342.19 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 287532 (4790.71 per sec.)
    other operations:                    41076  (684.39 per sec.)

Test execution summary:
    total time:                          60.0186s
    total number of events:              20538
    total time taken by event execution: 479.3667
    per-request statistics:
         min:                                  7.26ms
         avg:                                 23.34ms
         max:                                196.47ms
         approx.  95 percentile:              32.59ms

Threads fairness:
    events (avg/stddev):           2567.2500/50.73
    execution time (avg/stddev):   59.9208/0.01

the important bit is the transactions line:
UDOO: transactions: 20538 (342.19 per sec.)
PI: transactions: 2026 (33.76 per sec.)

Last step – drop the test database:

mysql -u root -p
mysql> drop database test;
exit;

 

Pi vs UDOO quick CPU performance test

First install the software

apt-get install sysbench

then run on PI:

 sysbench --test=cpu --cpu-max-prime=2000 run

on UDOO:

 sysbench --test=cpu --num-threads=4 --cpu-max-prime=2000 run

UDOO output:

Maximum prime number checked in CPU test: 2000
Test execution summary:
 total time: 20.8079s
 total number of events: 10000
 total time taken by event execution: 166.2889
 per-request statistics:
 min: 8.18ms
 avg: 16.63ms
 max: 90.20ms
 approx. 95 percentile: 28.23ms
Threads fairness:
 events (avg/stddev): 1250.0000/6.71
 execution time (avg/stddev): 20.7861/0.03

PI output:

Maximum prime number checked in CPU test: 2000

Test execution summary:
total time: 48.0722s
total number of events: 10000
total time taken by event execution: 192.0741
per-request statistics:
min: 4.68ms
avg: 19.21ms
max: 71.20ms
approx. 95 percentile: 44.05ms

Threads fairness:
events (avg/stddev): 2500.0000/0.71
execution time (avg/stddev): 48.0185/0.02

IOBlazer – VM tool to test disk performance

It can be downloaded from: http://labs.vmware.com/flings/ioblazer

Available commands:

Command Option Description Default setting
-a IO access pattern: sequential or random Random
-b Memory buffer size in MB 1MB
-B Buffered IOs (go thru FS buffer cache) 0
-c Computes pseudo-checksum on data 0
-d Device or File path D:TMP
-f File or Device size in MB 1 MB
-F Fill the test file before starting IOs 0
-g Inter-burst time in microseconds (Avg) 0 us
-G Inter-burst time pattern (fixed or uniform) f (fixed)
-h The help file
-i IO size in B (Avg) 8192 (bytes)
-I IO size pattern (fixed, uniform or bimodal) f (fixed)
-l Latency Alarm Threshold in ms 5000 ms
-o <#OIOs> Burst size [aka Otstanding IOs] (Avg) 32 IOs
-O Burst size (fixed or uniform) f (fixed)
-p Printout format: csv, free, csv no header f (free)
-P Playback VSCSI trace from ‘file’
-r Read ratio (1.0 = 100% read) 1.0 (100% read)
-R Raw Device Access
-t Test duration in seconds 180 seconds
-w Number of worker threads 1

Bellow you will find an extended version of the available commands.

Commandline Description
-a Controls the IO access pattern which can be either random or sequential.
-b Specifies the size of the memory buffer used as a source for writes and
as a target for reads.
-B Controls whether the IOs are buffered (i.e., go through the file system
buffer cache) or direct.
-c Computes a pseudo-checksum on data before writing them to disk or as
soon as they are read from disk. This is emulates the processing compo-
nent of a IO intensive workload. When the checksum option is specified
all data transits through the processor cache.
-d Specifies the device or test file path. The path has different formats
depending on the platform:
Windows:
+ :pathtofile for file access,
where is a letter in [d, z] (e.g., d:tmp)
+ : for raw device access,
where is a letter in [d, z] (e.g., d:)
Linux:
+ /path/to/file for file access,
where is a number in [0, 9] (e.g., /mnt/dsk0)
+ /dev/sd for raw disk access,
where is a letter in [b, z] (e.g., /dev/sdb)
OSX:
+ /path/to/file for file access,
where is a number in [0, 9] (e.g., /Volumes/disk0)
+ /dev/disk for raw disk access,
where is a number in [1, 9] (e.g., /dev/disk1)
-f Size of the test file or size of the portion of the raw device covered by the test.
-F Fill the test file with random data before initiating the IOs. By
default the test file is created if it does not exist, but it is not
filled.
-g Burst inter-arrival time in microseconds. This is a mean time if the
-G option specifies a uniform distribution.
-G Specifies whether the burst inter-arrival time is fixed or uniformly
distributed with a mean time specified by the -g option.
-i IO size in bytes. This is a mean size if the -I option specifies a
uniform distribution.
-I Specifies weather the IO size is fixed or uniformly distributed with a
mean size specified by the -i option, or it’s distributed according a
bi-modal distribution. In the latter case, the “small” size is 8 KB
irrespective of the IO type (read or write), while the “large” size is
128 KB for writes and 1 MB for reads. The probability of large IOs is
0.01. These values were derived by the observation of the MS SQL Server
IO behavior.
-l Specifies a threshold in milliseconds which causes an alert message to
be printed out if the latency of the last IO exceeded such threshold.
-o Burst size in number of IOs. This parameter is also known as Outstanding
IOs. The burst size is a mean value if the -O option specifies a uniform
distribution.
-O Specifies whether the burst size is a fixed value or uniformly
distributed with a mean value specified by the -o option.
-p Specifies the printout format:
Free format
Comma Separated Values (CSV), useful for post-processing in with
spreadsheet applications
CSV without header, useful for creating tables by appending results
of subsequent experiments to an existing CSV file
-P Playback a VSCSI trace captured using vscsiStats.
-r Read ratio, i.e., fraction of the read IOs over the total number of IOs
generated (1.0 = 100% read).
-R Specifies whether the IOs are performed directly to a device rather
than a file.
-t Read ratio, i.e., fraction of the read IOs over the total number of IOs
generated (1.0 = 100% read).
-w Number of worker threads instantiated. Each thread performs IOs
independently of the others on it’s own file/device.