VMware Cloud Community
Marat_
Contributor
Contributor

SQLIO Results

Hi fellows!

I use several Windows 2003 virtual machines hosted on Esx.

We have SAN-FDDI-SCSI-RAID5 disk array

I am not an admin of this Esx infrastructure but it seems that there is a disk IO performance problem.

I run sqlio.exe -frandom -i1

on my Windows2003 comps

and got that results

C:\Program Files\SQLIO>"C:\Program Files\SQLIO\sqlio.exe" -frandom -i1

sqlio v1.5.SG

1 thread reading for 30 secs from file testfile.dat

using 2KB random IOs

using current size: 8 MB for file: testfile.dat

initialization done

CUMULATIVE DATA:

throughput metrics:

IOs/sec: 22.25

MBs/sec: 0.04

My sysadmin said that it is ok but I think it is not because on my real desktop computer I have much higher

If anybody used SQLIO on virtual Win2003, could you please send your result to compare.

Thank you in advance!

Reply
0 Kudos
13 Replies
taylorb
Hot Shot
Hot Shot

I'm getting

4600 IO/Sec

and 9 MB/Sec from my SAN with the same test.

.04 MB/sec is bad. That is like dial up modem speeds.

Reply
0 Kudos
Marat_
Contributor
Contributor

Thank you !

Did you run it with parameters?

>"C:\Program Files\SQLIO\sqlio.exe" -frandom -i1

MB/Sec is not very critical because SQLIO reads data with little 2K blocks

BUT IO/Sec = 22.05 is realy very slow - Every simple IDE disk can produce 100 IO per second I think

Reply
0 Kudos
sanderso
Contributor
Contributor

Here you go:

C:\Program Files\SQLIO>sqlio.exe -frandom -i1

sqlio v1.5.SG

1 thread reading for 30 secs from file testfile.dat

using 2KB random IOs

using current size: 8 MB for file: testfile.dat

initialization done

CUMULATIVE DATA:

throughput metrics:

IOs/sec: 5255.93

MBs/sec: 10.26

Reply
0 Kudos
siglert
Enthusiast
Enthusiast

My guess is that your Disk offsets are wrong and therefore your not getting the IO you should be.

Reply
0 Kudos
Marat_
Contributor
Contributor

Thank you very much!

I am not a specialist of Linux and ESX so Where can I read about

Disk offsets?

Is it parameter of virtual machine file system images?

Reply
0 Kudos
Anders_Gregerse
Hot Shot
Hot Shot

Diskalignment is on the host in your case. If you have used the Virtual Infrastructure Client to create your VMFS volumes they should be aligned automatically. VMFS uses default 1MB blocks

Diskalignment is simply to align your partition, so that it start in the beginning of a disk block. If a OS diskblock spans across two disksystem blocks it requires two I/Os to read one OS diskblock. Disksystems have different blocksizes and you will need to read the manual for the disksystem or talk with the vendor.

If you are using Windows 2003 you can use Diskpart to align with the "create partition primary align=", but that only makes sense in the physical world until we have detailed knowledge about how ESX I/O works.

Some examples. Equallogic uses 64K disk blocks, HP EVA 5000 uses 4K disk blocks. So If you both align to 64 and uses 64K blocks in your OS on an Equallogic box, you will have a very good tuned disksystem on those points. Keep in mind that there are a lot of other factors as well to tune, and that no matter how many drives you have in a SAN they are not any better that the controllers, cache and other components inbetween.

And you are on the right path, testing your equipment

Reply
0 Kudos
BUGCHK
Commander
Commander

HP EVA 5000 uses 4K disk blocks

An EVA chunk is 128KB. A disk block is 512 Bytes.

Reply
0 Kudos
Marat_
Contributor
Contributor

Dammit!

IOs/sec: 5255.93 against my 22.25 !!!!!

More than 100 times less!!!

It is very strange,

as I undestand bad partition alignment(offset) can slow down IOs maximum

by two times (becuase of additionanl IO per read).

It must be some kind of very bad config on ESX I think!

Thank you all for help

Reply
0 Kudos
Marat_
Contributor
Contributor

Another intresting behaviar I found!

When I run SQLIO with additional parameter -t256

"C:\Program Files\SQLIO\sqlio.exe" -frandom -i1 -t256

I've got

IOs/sec: 5253.23

MBs/sec: 10.26

Almost the same IO-throughput that Sanderso send in previouse post.

So if SQLIO executes 256 reads at a time in many threads ESX executes them in parallel.

So phisical SCSI-SAN disk performance is good.

But if SQLIO works in one thread making reads one-by-one it is very slow!

Now It seems to be problem of

LSI Login PCI-X Ultra320 SCSI Host Adapter

that is installed in guest Windows2003

Am I right?

Reply
0 Kudos
BUGCHK
Commander
Commander

Single random synchronous I/O is much slower than parallel random asynchronous I/Os. If that data is not already in the read cache, the program always has to wait for the disk read. In that case it does not even help if the data is striped across many disk drives, because only one disk is hit at a time.

Reply
0 Kudos
Anders_Gregerse
Hot Shot
Hot Shot

Weird. HP says to align diskblocks on a multiple of 4096 bytes.

Reply
0 Kudos
Marat_
Contributor
Contributor

In my case the data for SQLIO is already in the cache - because

SQLIO use 8Mb test file and our SCSI controller has 256Mb cache and

there is no other disk activities except mine (I did at night).

Reply
0 Kudos
BUGCHK
Commander
Commander

It sounds like we use a different terminology and/or talk about different things.

There was customer advisory for EVA3000/5000 which suggested to set the partition offset to 64 blocks (=32768 bytes) for native Windows disks to get away with a performance problem during massive sequential writes to VRAID-5 virtual disks.

There is also information which suggest the initialize disks used by the OpenVMS operating systems with a cluster size whose value I think it was 4 (=2 KBytes).

I have never head about suggestions for other operating systems. Of course that does not mean they don't exist - could you please tell me the source of the 4KB? Maybe there is some confusion with the default NTFS cluster size which happens to be 4KB, too?

Reply
0 Kudos