Các loại ảo hóa
Như tiêu đề thì bạn biết sẽ có 2 loại ảo hóa là Hypervisor Type 1 và Hypervisor Type 2. Khác biệt lớn nhất nhất giữa hai loại này là là ở khả năng truy xuất trực tiếp vào phần cứng của máy ảo:
- Type 1 (bare-metal Hypervisor): máy ảo chạy trực tiếp trên phần cứng vật lý, không bị quản lý bởi Host OS. VD: Hyper-V, VMWare ESX, Citrix XenServer, KVM.
- Type 2 (hosted Hypervisor): máy ảo chạy trên nền một phần mềm hypervisor được cài đặt trên Host OS. VD: VirtualBox, VMware Workstation, Parallels Desktop.
Tham khảo: Ảo hoá phần cứng: Hyper-V, KVM, VMware vSphere, Xen và Ảo hoá hệ điều hành: LXC và Docker.
Nhờ khả năng truy xuất trực tiếp vào phần cứng vật lý nên máy ảo Hypervisor Type 1 sẽ mang hiệu năng vượt trội so với máy ảo Hypervisor Type 2. Bài viết này mình sẽ thử kiểm tra Benchmark giữa máy ảo Hyper-V và máy ảo VirtualBox để so sánh hiệu suất hoạt động.
Thông số phần cứng
Dưới đây là thông số phần cứng của máy tính để bàn mình đang sử dụng để vừa chơi game vừa nghiên cứu:
- CPU: Intel Core i3-9100F
- RAM: Corsair 16GB DDR4
- SSD: 860 EVO 500GB
- OS: Windows 10 Pro
Thông số máy ảo (cài đặt giống nhau trên VirtualBox và Hyper-V)
- CPU: 1 Core
- RAM: 2GB
- SSD: 20GB
- OS: Ubuntu Server 20.04
Benchmark SSD
Mình sử dụng script benchmark của tocdo.net để kiểm tra tổng quát thông số của máy ảo.
# Test Tốc độ & Share kết quả
curl -Lso- tocdo.net/share | bash
Hyper-V:
System Info
----------------------------------------------------------------------
CPU model : Intel(R) Core(TM) i3-9100F CPU @ 3.60GHz
Number of cores : 1
CPU frequency : 3599.997 MHz
Total size of Disk : 42.9 GB (24.5 GB Used)
Total amount of Mem : 1940 MB (541 MB Used)
Total amount of Swap : 2912 MB (5 MB Used)
System uptime : 0 days, 0 hour 2 min
Load average : 0.51, 0.41, 0.17
OS : Ubuntu 20.04.2 LTS
Arch : x86_64 (64 Bit)
Kernel : 5.4.0-81-generic
Virt : hyperv
Date : Sat 14 Aug 2021 08:41:53 AM UTC
Disk Speed
----------------------------------------------------------------------
dd Test
I/O (1st run) : 220 MB/s
I/O (2nd run) : 233 MB/s
I/O (3rd run) : 293 MB/s
Average : 248.7 MB/s
-----------------------------------
Fio Test
Read performance : 128MB/s
Read IOPS : 31.2k
Write performance : 42.7MB/s
Write IOPS : 10.4k
Speedtest
----------------------------------------------------------------------
Node Name IPv4 address Download Speed
CacheFly 205.234.175.175 17.7MB/s
Vultr, Los Angeles, CA 108.61.219.200 13.6MB/s
Vultr, Seattle, WA 108.61.194.105 9.29MB/s
Linode, Tokyo, JP 139.162.65.37 6.82MB/s
Linode, Singapore, SG 139.162.23.4 10.6MB/s
Softlayer, HongKong, CN 119.81.130.170 10.7MB/s
VNPT, Ha Noi, VN 113.164.24.102 12.5MB/s
VNPT, Da Nang, VN 113.164.16.66 14.0MB/s
VNPT, Ho Chi Minh, VN 113.164.8.250 20.7MB/s
Viettel Network, Ha Noi, VN 27.68.226.129 17.2MB/s
Viettel Network, Da Nang, VN 27.68.201.1 15.9MB/s
Viettel Network, Ho Chi Minh, VN 27.68.239.33 19.4MB/s
FPT Telecom, Ha Noi, VN 118.70.115.12
FPT Telecom, Ho Chi Minh, VN 1.55.119.18 19.6MB/s
Virtualbox:
System Info
----------------------------------------------------------------------
CPU model : Intel(R) Core(TM) i3-9100F CPU @ 3.60GHz
Number of cores : 1
CPU frequency : 3599.996 MHz
Total size of Disk : 17.8 GB (12.6 GB Used)
Total amount of Mem : 1987 MB (429 MB Used)
Total amount of Swap : 2047 MB (4 MB Used)
System uptime : 0 days, 8 hour 45 min
Load average : 0.35, 0.11, 0.05
OS : Ubuntu 20.04.2 LTS
Arch : x86_64 (64 Bit)
Kernel : 5.4.0-77-generic
Virt : virtualbox
kvm
Date : Sat 14 Aug 2021 08:45:26 AM UTC
Disk Speed
----------------------------------------------------------------------
dd Test
I/O (1st run) : 242 MB/s
I/O (2nd run) : 217 MB/s
I/O (3rd run) : 241 MB/s
Average : 233.3 MB/s
-----------------------------------
Fio Test
Read performance : 9114kB/s
Read IOPS : 2225
Write performance : 3026kB/s
Write IOPS : 738
Speedtest
----------------------------------------------------------------------
Node Name IPv4 address Download Speed
CacheFly 205.234.175.175 17.9MB/s
Vultr, Los Angeles, CA 108.61.219.200 11.0MB/s
Vultr, Seattle, WA 108.61.194.105 10.7MB/s
Linode, Tokyo, JP 139.162.65.37 12.2MB/s
Linode, Singapore, SG 139.162.23.4 10.7MB/s
Softlayer, HongKong, CN 119.81.130.170 14.0MB/s
VNPT, Ha Noi, VN 113.164.24.102 11.4MB/s
VNPT, Da Nang, VN 113.164.16.66 12.2MB/s
VNPT, Ho Chi Minh, VN 113.164.8.250 19.6MB/s
Viettel Network, Ha Noi, VN 27.68.226.129 18.4MB/s
Viettel Network, Da Nang, VN 27.68.201.1 12.7MB/s
Viettel Network, Ho Chi Minh, VN 27.68.239.33 19.3MB/s
FPT Telecom, Ha Noi, VN 118.70.115.12
FPT Telecom, Ho Chi Minh, VN 1.55.119.18 19.5MB/s
Thông số cần chú ý là ở phần Fio Test: Máy ảo Hyper-V có tốc độ truy xuất ổ cứng vượt trội so với máy ảo VirtualBox.
- Read IOPS: 31.200 (Hyper-V) so với 2225 (VirtualBox)
- Write IOPS: 10.400 (Hyper-V) so với 738 (VirtualBox)
Qua đó có thể thấy máy ảo Hypervisor 1 (Hyper-V) với khả năng truy xuất trực tiếp vào SSD cho hiệu năng khác biệt rất lớn so với máy ảo Hypervisor 2 (VirtualBox).
Benchmark CPU
Phần này mình dùng Sysbench để kiểm tra hiệu năng CPU
Cài đặt Sysbench
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh | sudo bash
sudo apt -y install sysbench
Sử dụng lệnh sau để benchmark CPU
sysbench --test=cpu --cpu-max-prime=20000 run
Hyper-V:
CPU speed:
events per second: 505.56
General statistics:
total time: 10.0015s
total number of events: 5057
Latency (ms):
min: 1.80
avg: 1.98
max: 8.99
95th percentile: 2.30
sum: 9992.08
Threads fairness:
events (avg/stddev): 5057.0000/0.00
execution time (avg/stddev): 9.9921/0.00
VirtualBox:
CPU speed:
events per second: 453.92
General statistics:
total time: 10.0026s
total number of events: 4541
Latency (ms):
min: 1.80
avg: 2.20
max: 27.96
95th percentile: 3.62
sum: 9991.39
Threads fairness:
events (avg/stddev): 4541.0000/0.00
execution time (avg/stddev): 9.9914/0.00
Máy ảo Hyper-V cho tốc độ xử lý CPU nhanh hơn chút so với máy ảo VirtualBox. Tuy nhiên khác biệt là không đáng kể.
Benchmark RAM
Sử dụng tiếp Sysbench để benchmark RAM với lệnh sau
sysbench --test=memory --memory-block-size=1M --memory-total-size=100G --num-threads=1 run
Hyper-V:
Total operations: 102400 (18306.80 per second)
102400.00 MiB transferred (18306.80 MiB/sec)
General statistics:
total time: 5.5922s
total number of events: 102400
Latency (ms):
min: 0.05
avg: 0.05
max: 3.52
95th percentile: 0.07
sum: 5555.12
Threads fairness:
events (avg/stddev): 102400.0000/0.00
execution time (avg/stddev): 5.5551/0.00
VirtualBox:
Total operations: 102400 (16111.80 per second)
102400.00 MiB transferred (16111.80 MiB/sec)
General statistics:
total time: 6.3543s
total number of events: 102400
Latency (ms):
min: 0.05
avg: 0.06
max: 8.26
95th percentile: 0.08
sum: 6307.85
Threads fairness:
events (avg/stddev): 102400.0000/0.00
execution time (avg/stddev): 6.3078/0.00
Máy ảo VirtualBox tiếp tục thua kém về Benchmark RAM so với máy ảo Hyper-V. Tốc độ khác biệt hơn nhau 10%.
Tổng kết
Hyper-V quá ngon, quá xịn! Nếu bạn đang sử dụng Hypervisor Type 2 trên nền Windows 10, hãy chuyển qua dùng Hypervisor Type 1 với Hyper-V ngay và luôn. Còn nếu bạn đang tìm hiểu học hỏi về cách tạo máy ảo, Hyper-V thẳng tiến.
Xem thêm: So sánh 3 công nghệ ảo hóa VirtualBox, VMWare và Hyper-V