I was going to just post the ESX IO benchmarks however thought to do the same tests with XenServer out of curiousity...and found some interesting results. I welcome any feedback or comments if you can explain why segment/block size does not affect performance of XenServer.
Server: IBM x3650, 2 x Intel x5450 3Ghz QC; 28Gb RAM
SAN: IBM DS3200 (SAS) with 6 x 750GB SATA in RAID10 (1Gb Cache however when upgraded from 512MB tests were not affected.. which was good)
Tests: Five tests were carried out whilst varying the SAN's logical drive segment (block) size from 32 through to 512 (max supported on DS3200). No block alignment was done or any other performance tuning with either environment.
Vmware ESX 3.5 U3
Results were as expected, larger the SAN block/segment size, better was the performance and higher the virtual machine's CPU load (as confirmed by vmware's buslogic vs lsi whitepaper).
Citrix XenServer Ent 5.0.0
This is where the unexpected results were seen, SAN's segment size made little difference, in fact Xen seemed to perform slightly better with 128/64k segment sizes as compared to VMWare's 512K.
Virtual machine that was used for IOMeter is Win2003 std server with SP2 and nothing else installed. To see if I can improve ESX's performance I even tried the following:
Change from Buslogic to LSI: LSI seemed to be ~3% less CPU intensive but throughput was almost the same.
Change VMFS block size: no difference at all
Cheers,
Max
VMWare ESX 3.5 Update 3 | Citrix XenServer Enterprise 5.0.0 |
SAN Cache | 512MB | SCSI Controller | Buslogic | SAN Cache | 512MB | |||||
Block (Segment) size | 512 | VMFS block size | 1MB | Block (Segment) size | 512 | |||||
Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | |
Max Throughput-100%Read | 2.1 | 20,146.7 | 629.6 | 88.5 | Max Throughput-100%Read | 4.3 | 14,202.2 | 443.8 | 20.4 | |
RealLife-60%Rand-65%Read | 81.9 | 681.8 | 5.3 | 22.7 | RealLife-60%Rand-65%Read | 81.3 | 691.8 | 5.4 | 19.7 | |
Max Throughput-50%Read | 8.9 | 6,605.4 | 206.4 | 38.3 | Max Throughput-50%Read | 8.5 | 6,999.9 | 218.7 | 13.9 | |
Random-8k-70%Read | 94.1 | 574.0 | 4.5 | 26.2 | Random-8k-70%Read | 92.5 | 588.7 | 4.6 | 23.1 | |
SAN Cache | 512MB | SCSI Controller | Buslogic | SAN Cache | 512MB | |||||
Block (Segment) size | 256 | VMFS block size | 1MB | Block (Segment) size | 256 | |||||
Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | |
Max Throughput-100%Read | 17.0 | 3,527.8 | 110.2 | 23.2 | Max Throughput-100%Read | 4.3 | 14,023.4 | 438.2 | 21.3 | |
RealLife-60%Rand-65%Read | 246.8 | 242.5 | 1.9 | 14.2 | RealLife-60%Rand-65%Read | 82.9 | 684.2 | 5.3 | 18.6 | |
Max Throughput-50%Read | 35.4 | 1,696.7 | 53.0 | 19.1 | Max Throughput-50%Read | 9.0 | 6,661.1 | 208.2 | 14.3 | |
Random-8k-70%Read | 331.5 | 180.7 | 1.4 | 14.1 | Random-8k-70%Read | 94.0 | 587.4 | 4.6 | 21.5 | |
SAN Cache | 512MB | SCSI Controller | Buslogic | SAN Cache | 512MB | |||||
Block (Segment) size | 128 | VMFS block size | 1MB | Block (Segment) size | 128 | |||||
Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | |
Max Throughput-100%Read | 17.4 | 3,443.4 | 107.6 | 24.2 | Max Throughput-100%Read | 3.9 | 15,616.5 | 488.0 | 20.8 | |
RealLife-60%Rand-65%Read | 253.9 | 236.1 | 1.8 | 14.1 | RealLife-60%Rand-65%Read | 85.9 | 660.0 | 5.2 | 18.2 | |
Max Throughput-50%Read | 35.6 | 842.2 | 52.5 | 19.7 | Max Throughput-50%Read | 8.8 | 6,802.0 | 212.6 | 14.2 | |
Random-8k-70%Read | 334.5 | 179.1 | 1.4 | 13.9 | Random-8k-70%Read | 93.5 | 579.6 | 4.5 | 24.5 | |
SAN Cache | 512MB | SCSI Controller | Buslogic | SAN Cache | 512MB | |||||
Block (Segment) size | 64 | VMFS block size | 1MB | Block (Segment) size | 64 | |||||
Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | |
Max Throughput-100%Read | 17.9 | 3,345.0 | 104.5 | 23.6 | Max Throughput-100%Read | 4.0 | 15,077.8 | 471.2 | 20.3 | |
RealLife-60%Rand-65%Read | 263.7 | 226.6 | 1.8 | 14.0 | RealLife-60%Rand-65%Read | 90.1 | 627.7 | 4.9 | 18.7 | |
Max Throughput-50%Read | 35.6 | 1,682.8 | 52.6 | 18.9 | Max Throughput-50%Read | 8.8 | 6,792.7 | 212.3 | 14.4 | |
Random-8k-70%Read | 339.2 | 176.0 | 1.4 | 13.8 | Random-8k-70%Read | 99.6 | 551.4 | 4.3 | 22.4 | |
SAN Cache | 512MB | SCSI Controller | Buslogic | SAN Cache | 512MB | |||||
Block (Segment) size | 32 | VMFS block size | 1MB | Block (Segment) size | 32 | |||||
Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | Test name | Avg Resp Time ms | Av IOs/sec | Av MB/sec | CPU Utilisation | |
Max Throughput-100%Read | 20.6 | 2,913.2 | 91.0 | 23.0 | Max Throughput-100%Read | 4.1 | 14,916.9 | 466.2 | 20.2 | |
RealLife-60%Rand-65%Read | 281.8 | 212.0 | 1.7 | 14.2 | RealLife-60%Rand-65%Read | 99.2 | 571.7 | 4.5 | 18.4 | |
Max Throughput-50%Read | 35.8 | 1,675.6 | 52.4 | 18.7 | Max Throughput-50%Read | 9.1 | 6,503.1 | 203.2 | 15.8 | |
Random-8k-70%Read | 353.7 | 169.6 | 1.3 | 13.3 | Random-8k-70%Read | 111.3 | 508.8 | 4.0 | 18.6 |