我在一台不错的硬件(2 个 SATA HDD 作为 RAID1、12GB RAM、i7 CPU)上运行 PVE 2.0,但虚拟机(Ubuntu 11.10 Server)内的 I/O 性能非常差。将同一台虚拟机复制到另一台仅运行带有 KVM 的 Ubuntu Server 的服务器上,I/O 性能更好。
HDD 在 Guest 中的显示方式如下:
ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
ata1.00: ATA-8: ST3000DM001-9YN166, CC49, max UDMA/133
ata1.00: 5860533168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
ata1.00: configured for UDMA/133
scsi 0:0:0:0: Direct-Access ATA ST3000DM001-9YN1 CC49 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB)
sd 0:0:0:0: [sda] 4096-byte physical blocks
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
我使用 DD 进行了测试:
$ dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 19.2222 s, 7.0 MB/s
在主机上,相同测试的平均速度为 156 MB/s。
PS:我正在使用 VirtIO,在 dmesg 中没有看到任何错误。
答案1
尝试将 virtio 和 ide 驱动器添加到同一个 VM 并比较其速度。
然后,您使用针对桌面(主要是单线程)使用优化的 7200RPM 磁盘,它可能会影响您的数字(事实上,Proxmox 与 VM 同时使用相同的磁盘)。您使用哪种 RAID 硬件控制器?顺便说一句,现在大多数控制器都配备了 256 或 512 Mb 的缓存内存,而 134 Mb 的测试文件可能太小而无法获得清晰的结果(如果您比较 VM 与原始硬件的结果)。
接下来,尝试升级固件对于驱动器来说,很有可能此后它会表现得更好。