xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* DomU vs Dom0 performance.
@ 2013-09-29 23:22 sushrut shirole
  2013-09-30 14:36 ` Konrad Rzeszutek Wilk
  2013-09-30 14:50 ` Stefano Stabellini
  0 siblings, 2 replies; 10+ messages in thread
From: sushrut shirole @ 2013-09-29 23:22 UTC (permalink / raw)
  To: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 4214 bytes --]

Hi,

I have been doing some diskIO bench-marking of dom0 and domU (HVM). I ran
into an issue where domU
performed better than dom0.  So I ran few experiments to check if it is
just diskIO performance.

I have an archlinux (kernel 3.5.0) + xen 4.2.2) installed on a Intel Core
i7 Q720 machine. I have also installed
archlinux (kernel 3.5.0) in domU running on this machine. The domU runs
with 8 vcpus. I have alloted both dom0
and domu 4096M ram.

I performed following experiments to compare the performance of domU vs
dom0.

experiment 1]

1. Created a file.img of 5G
2. Mounted the file with ext2 filesystem.
3. Ran sysbench with following command.

sysbench --num-threads=8 --test=fileio --file-total-size=1G
--max-requests=1000000 prepare

4. Read files into memory

script to read files

<snip>
for i in `ls test_file.*`
do
   sudo dd if=./$i of=/dev/zero
done
</snip>

5. Ran sysbench.

sysbench --num-threads=8 --test=fileio --file-total-size=1G
--max-requests=5000000 --file-test-mode=rndrd run

the output i got on dom0 is

<output>
Number of threads: 8

Extra file open flags: 0
128 files, 8Mb each
1Gb total file size
Block size 16Kb
Number of random requests for random IO: 5000000
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random read test

Operations performed:  5130322 Read, 0 Write, 0 Other = 5130322 Total
Read 78.283Gb  Written 0b  Total transferred 78.283Gb  (4.3971Gb/sec)
*288165.68 Requests/sec executed*

Test execution summary:
    total time:                          17.8034s
    total number of events:              5130322
    total time taken by event execution: 125.3102
    per-request statistics:
         min:                                  0.01ms
         avg:                                  0.02ms
         max:                                 55.55ms
         approx.  95 percentile:               0.02ms

Threads fairness:
    events (avg/stddev):           641290.2500/10057.89
    execution time (avg/stddev):   15.6638/0.02
</output>

6. Performed same experiment on domU and result I got is

<output>
Number of threads: 8

Extra file open flags: 0
128 files, 8Mb each
1Gb total file size
Block size 16Kb
Number of random requests for random IO: 5000000
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random read test

Operations performed:  5221490 Read, 0 Write, 0 Other = 5221490 Total
Read 79.674Gb  Written 0b  Total transferred 79.674Gb  (5.9889Gb/sec)
*392489.34 Requests/sec executed*

Test execution summary:
    total time:                          13.3035s
    total number of events:              5221490
    total time taken by event execution: 98.7121
    per-request statistics:
         min:                                  0.01ms
         avg:                                  0.02ms
         max:                                 49.75ms
         approx.  95 percentile:               0.02ms

Threads fairness:
    events (avg/stddev):           652686.2500/1494.93
    execution time (avg/stddev):   12.3390/0.02

</output>

I was expecting dom0 to performa better than domU, so to debug more into it
I ram lm_bench microbenchmarks.

Experiment 2] bw_mem benchmark

1. ./bw_mem 1000m wr

dom0 output:

1048.58 3640.60

domU output:

1048.58 4719.32

2. ./bw_mem 1000m rd

dom0 output:
1048.58 5780.56

domU output:

1048.58 6258.32


Experiment 3] lat_syscall benchmark

1.  ./lat_syscall write

dom0 output:
Simple write: 1.9659 microseconds

domU output :
Simple write: 0.4256 microseconds

2. ./lat_syscall read

dom0 output:
Simple read: 1.9399 microseconds

domU output :
Simple read: 0.3764 microseconds

3. ./lat_syscall stat

dom0 output:
Simple stat:3.9667 microseconds

domU output :
Simple stat: 1.2711 microseconds

I am not able to understand why domU has performed better than domU, when
obvious guess is that dom0
should perform better than domU. I would really appreciate an help if
anyone knows the reason behind this
issue.

Thank you,
Sushrut.

[-- Attachment #1.2: Type: text/html, Size: 6243 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-10-04 13:24 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-29 23:22 DomU vs Dom0 performance sushrut shirole
2013-09-30 14:36 ` Konrad Rzeszutek Wilk
2013-09-30 15:46   ` sushrut shirole
2013-10-01 10:05     ` Felipe Franciosi
2013-10-01 12:55       ` sushrut shirole
2013-10-01 14:24         ` Konrad Rzeszutek Wilk
2013-10-03 18:50           ` sushrut shirole
2013-10-04 13:24             ` Konrad Rzeszutek Wilk
2013-09-30 14:50 ` Stefano Stabellini
2013-09-30 15:45   ` sushrut shirole

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).