m (moved SIGs/PowerManagementBaseOS/Testcase VirtualBox 32bit vs 64bit to SIGs/PowerManagementBaseOS/Testcase Virtualized 32bit vs 64bit: misleading name (links to this page doesn't exist yet)) |
(add KVM results and comparison) |
||
Line 3: | Line 3: | ||
== System configuration == | == System configuration == | ||
We used '''VirtualBox OSE''' to perform this test. | We used '''VirtualBox OSE''' and '''KVM''' to perform this test. All virtual machines run on the same physical machine (not simultaneously) in the same configuration. | ||
* The host configuration: | * The host configuration: | ||
** Intel Core 2 Duo E8400 3GHz | ** Intel Core 2 Duo E8400 3GHz | ||
** 4 GB of memory | ** 4 GB of memory | ||
** Fedora 11 | ** Fedora 11 (2.6.30.5-43.fc11.x86_64) | ||
** VirtualBox 3.0.4_OSE r50677 | ** VirtualBox 3.0.4_OSE r50677 | ||
** libvirt 0.6.2-17.fc11, qemu 2:0.10.6-4.fc11 | |||
*The guest configuration: | * The guest configuration in VirtualBox: | ||
** 1 CPU | ** 1 CPU (32bit or 64bit) | ||
** 1024 MB of memory | ** 1024 MB of memory | ||
** ACPI: enabled, PAE/NX: enabled, VT-x: enabled, Nested paging: enabled | |||
** ACPI: enabled | |||
** Fedora Rawhide (2009-09-16), i686 or x86_64 | ** Fedora Rawhide (2009-09-16), i686 or x86_64 | ||
** VirtualBox Guest Additions | ** VirtualBox Guest Additions | ||
* The guest configuration in KVM | |||
especially when running 64-bit guest. | ** 1 CPU (i686 or x86_64) | ||
to install Guest Additions before. | ** 1024 MB or memory | ||
** Fedora Rawhide (2009-09-16), i686 or x86_64 | |||
** virtio disk | |||
{{admon/note|Virtual disks conversion|The tests were run on VirtualBox machines at first. After that, the virtual disks were converted to QEMU format (qcow2) and used in KVM - to have the same installation.}} | |||
{{admon/important|Guest Additions for VirtualBox|Absence of Guest Additions has great influence on guest system performance especially when running 64-bit guest. If you are going to verify this test or create similar, don't forget to install Guest Additions before.}} | |||
== Test description == | == Test description == | ||
Line 32: | Line 35: | ||
The test run 10 times in sequence. Clean caches, dentries and inodes were dropped before each run (<code>echo 3 > /proc/sys/vm/drop_caches</code>). | The test run 10 times in sequence. Clean caches, dentries and inodes were dropped before each run (<code>echo 3 > /proc/sys/vm/drop_caches</code>). | ||
The measured task was building <code>squid</code> RPM package from | The measured task was building <code>squid</code> RPM package from src.rpm: | ||
./scomes.stp -c "rpmbuild --rebuild squid-3.1.0.13-3.fc12.src.rpm" 0 | ./scomes.stp -c "rpmbuild --rebuild squid-3.1.0.13-3.fc12.src.rpm" 0 | ||
== Uprocessed results == | == Uprocessed results == | ||
=== 32-bit guest === | === VirtualBox 32-bit guest === | ||
{| | {| | ||
! | ! !! syscalls !! kernel ticks !! userspace ticks !! read bytes !! written bytes | ||
|- | |- | ||
| 1 || 176379 || 9169 || 5860 || 19815353 || 19496541 | | 1 || 176379 || 9169 || 5860 || 19815353 || 19496541 | ||
Line 65: | Line 67: | ||
|} | |} | ||
=== 64-bit guest === | === VirtualBox 64-bit guest === | ||
{| | {| | ||
! | ! !! syscalls !! kernel ticks !! userspace ticks !! read bytes !! written bytes | ||
|- | |- | ||
| 1 || 175694 || 14905 || 8232 || 21770053 || 19564938 | | 1 || 175694 || 14905 || 8232 || 21770053 || 19564938 | ||
Line 89: | Line 91: | ||
|- | |- | ||
| 10 || 177906 || 10395 || 4798 || 19360721 || 19529566 | | 10 || 177906 || 10395 || 4798 || 19360721 || 19529566 | ||
|} | |||
=== KVM 32-bit guest === | |||
{| | |||
! !! syscalls !! kernel ticks !! userspace ticks !! read bytes !! written bytes | |||
|- | |||
| 1 || 174540 || 8151 || 2571 || 19280444 || 19486683 | |||
|- | |||
| 2 || 174399 || 7673 || 2181 || 18968357 || 19495090 | |||
|- | |||
| 3 || 186836 || 7546 || 2224 || 30935608 || 20265990 | |||
|- | |||
| 4 || 174674 || 7487 || 2218 || 19028456 || 19494972 | |||
|- | |||
| 5 || 174393 || 7456 || 2193 || 18782550 || 19490383 | |||
|- | |||
| 6 || 174520 || 7380 || 2213 || 18857743 || 19487497 | |||
|- | |||
| 7 || 186927 || 7637 || 2216 || 30870324 || 20263823 | |||
|- | |||
| 8 || 174531 || 7415 || 2235 || 18720100 || 19490277 | |||
|- | |||
| 9 || 171019 || 7261 || 2073 || 15000148 || 19468860 | |||
|- | |||
| 10 || 187081 || 7662 || 2256 || 30930304 || 20265406 | |||
|} | |||
=== KVM 64-bit guest === | |||
{| | |||
! !! syscalls !! kernel ticks !! userspace ticks !! read bytes !! written bytes | |||
|- | |||
| 1 || 173268 || 8092 || 1959 || 19782678 || 19532133 | |||
|- | |||
| 2 || 179307 || 8181 || 1979 || 19696304 || 19535759 | |||
|- | |||
| 3 || 179870 || 8234 || 1980 || 20019461 || 19549543 | |||
|- | |||
| 4 || 178176 || 8674 || 2130 || 19169793 || 19529757 | |||
|- | |||
| 5 || 176884 || 7736 || 2087 || 18466457 || 19518977 | |||
|- | |||
| 6 || 177183 || 6532 || 1975 || 18316321 || 19521145 | |||
|- | |||
| 7 || 177831 || 6413 || 1985 || 18794279 || 19521145 | |||
|- | |||
| 8 || 177022 || 6346 || 1864 || 18241975 || 19519216 | |||
|- | |||
| 9 || 177116 || 6447 || 1920 || 18445540 || 19523166 | |||
|- | |||
| 10 || 177891 || 6342 || 1905 || 18695531 || 19523532 | |||
|} | |} | ||
Line 96: | Line 150: | ||
{| | {| | ||
! !! | ! !! VBox 32bit !! VBox 64bit !! KVM 32bit !! KVM 64bit !! VBox 32→64 increase || KVM 32→64 increase | ||
|- | |- | ||
| average || 178237.6 || 177699.1 || -0.30% | | average || 178237.6 || 177699.1 || 177892 || 177454.8 || -0.30% || -0.25% | ||
|- | |- | ||
| median || 175646.5 || 177886.5 || 1.28% | | median || 175646.5 || 177886.5 || 174535.5 || 177507 || 1.28% || 1.70% | ||
|- | |- | ||
| min || 174503 || 175694 || 0.68% | | min || 174503 || 175694 || 171019 || 173268 || 0.68% || 1.32% | ||
|- | |- | ||
| max || 189830 || | | max || 189830 || 179318 || 187081 || 179870 || -5.54% || -3.85% | ||
|} | |} | ||
Line 112: | Line 166: | ||
{| | {| | ||
! !! | ! !! VBox 32bit !! VBox 64bit !! KVM 32bit !! KVM 64bit !! VBox 32→64 increase || KVM 32→64 increase | ||
|- | |- | ||
| average || 11443.4 || 11496 || 0.46% | | average || 11443.4 || 11496 || 7566.8 || 7299.7 || 0.46% || -3.53% | ||
|- | |- | ||
| median || 9217 || 10251 || 11.22% | | median || 9217 || 10251 || 7516.5 || 7134 || 11.22% || -5.09% | ||
|- | |- | ||
| min || 8979 || 9826 || 9.43% | | min || 8979 || 9826 || 7261 || 6342 || 9.43% || -12.66% | ||
|- | |- | ||
| max || 21269 || 15268 || -28.21% | | max || 21269 || 15268 || 8151 || 8674 || -28.21% || 6.42% | ||
|} | |} | ||
Line 126: | Line 180: | ||
{| | {| | ||
! !! | ! !! VBox 32bit !! VBox 64bit !! KVM 32bit !! KVM 64bit !! VBox 32→64 increase || KVM 32→64 increase | ||
|- | |- | ||
| average || 5512.1 || 5767.5 || 4.64% | | average || 5512.1 || 5767.5 || 5512.1 || 1978.4 || 4.63% || -64.11% | ||
|- | |- | ||
| median || 5547.5 || 4828.5 || -12.96% | | median || 5547.5 || 4828.5 || 5547.5 || 1977 || -12.96% || -64.36% | ||
|- | |- | ||
| min || 4881 || 4724 || -3.22% | | min || 4881 || 4724 || 4881 || 1864 || -3.22% || -61.81% | ||
|- | |- | ||
| max || 6057 || 8232 || 35.91% | | max || 6057 || 8232 || 6057 || 2130 || 35.91% || -64.83% | ||
|} | |} | ||
Line 140: | Line 194: | ||
{| | {| | ||
! !! | ! !! VBox 32bit !! VBox 64bit !! KVM 32bit !! KVM 64bit !! VBox 32→64 increase || KVM 32→64 increase | ||
|- | |- | ||
| average || | | average || 16955.5 || 17263.5 || 13078.9 || 9278.1 || 1.82% || -29.06% | ||
|- | |- | ||
| median || 14961.5 || 15058.5 || 0.65% | | median || 14961.5 || 15058.5 || 13040.5 || 9165 || 0.65% || -29.72% | ||
|- | |- | ||
| min || 14386 || 14614 || 1.58% | | min || 14386 || 14614 || 12336 || 8210 || 1.58% || -33.45% | ||
|- | |- | ||
| max || 26190 || 23137 || -11.66% | | max || 26190 || 23137 || 14011 || 10804 || -11.66% || -22.89% | ||
|} | |} | ||
Line 156: | Line 210: | ||
{| | {| | ||
! !! | ! !! VBox 32bit !! VBox 64bit !! KVM 32bit !! KVM 64bit !! VBox 32→64 increase || KVM 32→64 increase | ||
|- | |- | ||
| average || 21649607.9 || 19638947.2 || -9.29% | | average || 21649607.9 || 19638947.2 || 22137403.4 || 18962833.9 || -9.29% || -14.34% | ||
|- | |- | ||
| median || 19124941.5 || | | median || 19124941.5 || 19337681 || 18998406.5 || 18744905 || 1.11% || -1.33% | ||
|- | |- | ||
| min || 18517294 || 18802447 || 1.54% | | min || 18517294 || 18802447 || 15000148 || 18241975 || 1.54% || 21,61% | ||
|- | |- | ||
| max || 32850019 || 21770053 || -33.73% | | max || 32850019 || 21770053 || 30935608 || 20019461 || -33.73% || -35.29% | ||
|} | |} | ||
Line 170: | Line 224: | ||
{| | {| | ||
! !! | ! !! VBox 32bit !! VBox 64bit !! KVM 32bit !! KVM 64bit !! VBox 32→64 increase || KVM 32→64 increase | ||
|- | |- | ||
| average || 19646114.7 || 19535027 || -0.57% | | average || 19646114.7 || 19535027 || 19720898.1 || 19527437.3 || -0.57% || -0.98% | ||
|- | |- | ||
| median || 19496262.5 || 19529531.5 || 0.17% | | median || 19496262.5 || 19529531.5 || 19492677.5 || 19523349 || 0.17% || 0.16% | ||
|- | |- | ||
| min || 19489876 || 19523128 || 0.17% | | min || 19489876 || 19523128 || 19468860 || 19518977 || 0.17% || 0.26% | ||
|- | |- | ||
| max || 20263640 || 19564938 || -3.45% | | max || 20263640 || 19564938 || 20265990 || 19549543 || -3.45% || -3.54% | ||
|} | |} | ||
Line 184: | Line 238: | ||
{| | {| | ||
! !! | ! !! VBox 32bit !! VBox 64bit !! KVM 32bit !! KVM 64bit !! VBox 32→64 increase || KVM 32→64 increase | ||
|- | |- | ||
| average || 41295722.6 || 39173974.2 || -5.14% | | average || 41295722.6 || 39173974.2 || 41858301.5 || 38490271.2 || -5.14% || -8.05% | ||
|- | |- | ||
| median || 38623998.5 || 38867170.5 || 0.63% | | median || 38623998.5 || 38867170.5 || 38493437.5 || 38267243.5 || 0.63% || -0.59% | ||
|- | |- | ||
| min || 38007170 || 38325642 || 0.84% | | min || 38007170 || 38325642 || 34469008 || 37761191 || 0.84% || 9.55% | ||
|- | |- | ||
| max || 53082906 || 41334991 || -22.13% | | max || 53082906 || 41334991 || 51201598 || 39569004 || -22.13% || -22.72% | ||
|} | |} | ||
=== Conclusion === | === Conclusion === | ||
If we consider the average results to be predicative, it seems that there is almost no difference in syscall count between the architectures. | If we consider the average results to be predicative, it seems that there is almost no difference in syscall count between the architectures and virtualization tools. | ||
As for the ticks: The 64-bit system under VirtualBox produced totally a bit more ticks than 32-bit system (mostly in userspace). In KVM the difference is much bigger, 64-bit system needs a bit more kernel ticks but far fewer user ticks, which makes totally approximately 30% ticks less than 32-bit system. | |||
The difference in read/written bytes on both virtualization tools is not wide (as we expected). There is only i difference between 32-bit and 64-bit system. It seems that the second one is a bit better in read byte count. |
Revision as of 15:24, 21 September 2009
The main aim of this test was comparison of syscall count, tick count, read/written bytes when performing the same task on virtual 32-bit and 64-bit machine.
System configuration
We used VirtualBox OSE and KVM to perform this test. All virtual machines run on the same physical machine (not simultaneously) in the same configuration.
- The host configuration:
- Intel Core 2 Duo E8400 3GHz
- 4 GB of memory
- Fedora 11 (2.6.30.5-43.fc11.x86_64)
- VirtualBox 3.0.4_OSE r50677
- libvirt 0.6.2-17.fc11, qemu 2:0.10.6-4.fc11
- The guest configuration in VirtualBox:
- 1 CPU (32bit or 64bit)
- 1024 MB of memory
- ACPI: enabled, PAE/NX: enabled, VT-x: enabled, Nested paging: enabled
- Fedora Rawhide (2009-09-16), i686 or x86_64
- VirtualBox Guest Additions
- The guest configuration in KVM
- 1 CPU (i686 or x86_64)
- 1024 MB or memory
- Fedora Rawhide (2009-09-16), i686 or x86_64
- virtio disk
Test description
The results were measured using scomes
(SystemTap script) which can be found in tuned-utils
package. However we used the newest GIT version.
The test run 10 times in sequence. Clean caches, dentries and inodes were dropped before each run (echo 3 > /proc/sys/vm/drop_caches
).
The measured task was building squid
RPM package from src.rpm:
./scomes.stp -c "rpmbuild --rebuild squid-3.1.0.13-3.fc12.src.rpm" 0
Uprocessed results
VirtualBox 32-bit guest
syscalls | kernel ticks | userspace ticks | read bytes | written bytes | |
---|---|---|---|---|---|
1 | 176379 | 9169 | 5860 | 19815353 | 19496541 |
2 | 175957 | 9410 | 6057 | 19434866 | 19502130 |
3 | 175336 | 9341 | 5553 | 18696381 | 19489876 |
4 | 175072 | 9063 | 5522 | 18815017 | 19495984 |
5 | 175316 | 9186 | 5542 | 18788471 | 19495878 |
6 | 176232 | 9033 | 5353 | 19460705 | 19501778 |
7 | 174503 | 8979 | 5621 | 18517294 | 19489876 |
8 | 188483 | 21269 | 4921 | 31460765 | 20263640 |
9 | 189830 | 9248 | 5811 | 32850019 | 20232887 |
10 | 175268 | 19736 | 4881 | 18657208 | 19492557 |
VirtualBox 64-bit guest
syscalls | kernel ticks | userspace ticks | read bytes | written bytes | |
---|---|---|---|---|---|
1 | 175694 | 14905 | 8232 | 21770053 | 19564938 |
2 | 177300 | 14098 | 8037 | 19354317 | 19529482 |
3 | 179318 | 15268 | 7757 | 20555112 | 19549143 |
4 | 177070 | 9890 | 4724 | 18915315 | 19523128 |
5 | 177867 | 9826 | 4824 | 19321045 | 19529497 |
6 | 177306 | 10282 | 4792 | 18802447 | 19523195 |
7 | 178227 | 10220 | 4823 | 19181444 | 19531070 |
8 | 178271 | 9927 | 4855 | 19824862 | 19540823 |
9 | 178032 | 10149 | 4833 | 19304156 | 19529428 |
10 | 177906 | 10395 | 4798 | 19360721 | 19529566 |
KVM 32-bit guest
syscalls | kernel ticks | userspace ticks | read bytes | written bytes | |
---|---|---|---|---|---|
1 | 174540 | 8151 | 2571 | 19280444 | 19486683 |
2 | 174399 | 7673 | 2181 | 18968357 | 19495090 |
3 | 186836 | 7546 | 2224 | 30935608 | 20265990 |
4 | 174674 | 7487 | 2218 | 19028456 | 19494972 |
5 | 174393 | 7456 | 2193 | 18782550 | 19490383 |
6 | 174520 | 7380 | 2213 | 18857743 | 19487497 |
7 | 186927 | 7637 | 2216 | 30870324 | 20263823 |
8 | 174531 | 7415 | 2235 | 18720100 | 19490277 |
9 | 171019 | 7261 | 2073 | 15000148 | 19468860 |
10 | 187081 | 7662 | 2256 | 30930304 | 20265406 |
KVM 64-bit guest
syscalls | kernel ticks | userspace ticks | read bytes | written bytes | |
---|---|---|---|---|---|
1 | 173268 | 8092 | 1959 | 19782678 | 19532133 |
2 | 179307 | 8181 | 1979 | 19696304 | 19535759 |
3 | 179870 | 8234 | 1980 | 20019461 | 19549543 |
4 | 178176 | 8674 | 2130 | 19169793 | 19529757 |
5 | 176884 | 7736 | 2087 | 18466457 | 19518977 |
6 | 177183 | 6532 | 1975 | 18316321 | 19521145 |
7 | 177831 | 6413 | 1985 | 18794279 | 19521145 |
8 | 177022 | 6346 | 1864 | 18241975 | 19519216 |
9 | 177116 | 6447 | 1920 | 18445540 | 19523166 |
10 | 177891 | 6342 | 1905 | 18695531 | 19523532 |
Results
syscalls count
VBox 32bit | VBox 64bit | KVM 32bit | KVM 64bit | VBox 32→64 increase | KVM 32→64 increase | |
---|---|---|---|---|---|---|
average | 178237.6 | 177699.1 | 177892 | 177454.8 | -0.30% | -0.25% |
median | 175646.5 | 177886.5 | 174535.5 | 177507 | 1.28% | 1.70% |
min | 174503 | 175694 | 171019 | 173268 | 0.68% | 1.32% |
max | 189830 | 179318 | 187081 | 179870 | -5.54% | -3.85% |
ticks count
kernel
VBox 32bit | VBox 64bit | KVM 32bit | KVM 64bit | VBox 32→64 increase | KVM 32→64 increase | |
---|---|---|---|---|---|---|
average | 11443.4 | 11496 | 7566.8 | 7299.7 | 0.46% | -3.53% |
median | 9217 | 10251 | 7516.5 | 7134 | 11.22% | -5.09% |
min | 8979 | 9826 | 7261 | 6342 | 9.43% | -12.66% |
max | 21269 | 15268 | 8151 | 8674 | -28.21% | 6.42% |
userspace
VBox 32bit | VBox 64bit | KVM 32bit | KVM 64bit | VBox 32→64 increase | KVM 32→64 increase | |
---|---|---|---|---|---|---|
average | 5512.1 | 5767.5 | 5512.1 | 1978.4 | 4.63% | -64.11% |
median | 5547.5 | 4828.5 | 5547.5 | 1977 | -12.96% | -64.36% |
min | 4881 | 4724 | 4881 | 1864 | -3.22% | -61.81% |
max | 6057 | 8232 | 6057 | 2130 | 35.91% | -64.83% |
total
VBox 32bit | VBox 64bit | KVM 32bit | KVM 64bit | VBox 32→64 increase | KVM 32→64 increase | |
---|---|---|---|---|---|---|
average | 16955.5 | 17263.5 | 13078.9 | 9278.1 | 1.82% | -29.06% |
median | 14961.5 | 15058.5 | 13040.5 | 9165 | 0.65% | -29.72% |
min | 14386 | 14614 | 12336 | 8210 | 1.58% | -33.45% |
max | 26190 | 23137 | 14011 | 10804 | -11.66% | -22.89% |
read/written bytes
read
VBox 32bit | VBox 64bit | KVM 32bit | KVM 64bit | VBox 32→64 increase | KVM 32→64 increase | |
---|---|---|---|---|---|---|
average | 21649607.9 | 19638947.2 | 22137403.4 | 18962833.9 | -9.29% | -14.34% |
median | 19124941.5 | 19337681 | 18998406.5 | 18744905 | 1.11% | -1.33% |
min | 18517294 | 18802447 | 15000148 | 18241975 | 1.54% | 21,61% |
max | 32850019 | 21770053 | 30935608 | 20019461 | -33.73% | -35.29% |
written
VBox 32bit | VBox 64bit | KVM 32bit | KVM 64bit | VBox 32→64 increase | KVM 32→64 increase | |
---|---|---|---|---|---|---|
average | 19646114.7 | 19535027 | 19720898.1 | 19527437.3 | -0.57% | -0.98% |
median | 19496262.5 | 19529531.5 | 19492677.5 | 19523349 | 0.17% | 0.16% |
min | 19489876 | 19523128 | 19468860 | 19518977 | 0.17% | 0.26% |
max | 20263640 | 19564938 | 20265990 | 19549543 | -3.45% | -3.54% |
total
VBox 32bit | VBox 64bit | KVM 32bit | KVM 64bit | VBox 32→64 increase | KVM 32→64 increase | |
---|---|---|---|---|---|---|
average | 41295722.6 | 39173974.2 | 41858301.5 | 38490271.2 | -5.14% | -8.05% |
median | 38623998.5 | 38867170.5 | 38493437.5 | 38267243.5 | 0.63% | -0.59% |
min | 38007170 | 38325642 | 34469008 | 37761191 | 0.84% | 9.55% |
max | 53082906 | 41334991 | 51201598 | 39569004 | -22.13% | -22.72% |
Conclusion
If we consider the average results to be predicative, it seems that there is almost no difference in syscall count between the architectures and virtualization tools.
As for the ticks: The 64-bit system under VirtualBox produced totally a bit more ticks than 32-bit system (mostly in userspace). In KVM the difference is much bigger, 64-bit system needs a bit more kernel ticks but far fewer user ticks, which makes totally approximately 30% ticks less than 32-bit system.
The difference in read/written bytes on both virtualization tools is not wide (as we expected). There is only i difference between 32-bit and 64-bit system. It seems that the second one is a bit better in read byte count.