> 虚拟化 Virtualization > Proxmox >

虚拟机类型和磁盘参考

参考:https://help.aliyun.com/document_detail/25382.html?spm=5176.ecsbuyv3.system-disk.1.55033675vtea0P


虚拟机类型参考

虚拟磁盘参考

HDD存储池

  • 单盘容量范围(GiB):20~32768 GiB
  • 最大IOPS:5000
  • 最大吞吐量(MB/s):140
  • 单盘IOPS性能计算公式:min{1800+8*容量, 5000}
  • 单盘吞吐量性能计算公式(MB/s):min{100+0.15*容量, 140}
  • 应用场景:
    • 开发与测试业务
    • 系统盘

SSD存储池

  • 单盘容量范围(GiB):20~32768 GiB
  • 最大IOPS:25000
  • 最大吞吐量(MB/s):300
  • 单盘IOPS性能计算公式:min{1800+30*容量, 25000}
  • 单盘吞吐量性能计算公式(MB/s):min{120+0.5*容量, 300}
  • 应用场景:
    • I/O密集型应用
    • 中小型关系数据库
    • NoSQL数据库

SSD云盘的性能因数据块大小而异,数据块越小,吞吐量越小,IOPS越高,如下表所示。

单盘性能计算公式说明:

  • 以单块SSD云盘最大IOPS计算公式为例说明:起步1800,每GiB增加30,上限为25000。
  • 以单块SSD云盘最大吞吐量计算公式为例说明:起步120 MB/s,每GiB增加0.5 MB/s,上限为300 MB/s。

测试块存储性能:Linux实例和Windows实例都推荐使用FIO工具测试块存储性能。

参考:https://help.aliyun.com/document_detail/147897.htm?spm=a2c4g.11186623.0.0.7b42e2bd2z8Dc4#task-2363356

操作步骤

  • 查询块存储设备是否已经4KiB对齐。
sudo fdisk -lu

返回的结果中,Start值能被8整除即是4KiB对齐。否则,请完成4KiB对齐后再继续性能测试。

Device     Boot Start      End  Sectors Size Id Type
/dev/vda1  *     2048 83886046 83883999  40G 83 Linux

*依次运行以下命令安装libaio和FIO。

sudo yum install libaio -y
sudo yum install libaio-devel -y
sudo yum install fio -y

云盘性能测试命令

说明:本示例中,使用的设备名为/dev/your_device,请您根据实际情况替换。例如需要测试的云盘为/dev/vdb,则将以下示例命令中的/dev/your_device替换为/dev/vdb。

  • 随机写IOPS:
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=Rand_Write_Testing
  • 随机读IOPS:
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=Rand_Read_Testing
  • 顺序写吞吐量:
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=Write_PPS_Testing
  • 顺序读吞吐量:
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=Read_PPS_Testing
  • 随机写时延:
fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/dev/your_device -name=Rand_Write_Latency_Testing
  • 随机读时延:
fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/dev/your_device -name=Rand_Read_Latency_Testing

本地盘性能测试命令

以下测试命令适用于NVMe SSD本地盘和SATA HDD本地盘。

说明:本示例中,使用的设备名为/dev/your_device,请您根据实际情况替换。例如需要测试的本地盘为/dev/vdb,则将以下示例命令中的/dev/your_device替换为/dev/vdb。

  • 随机写IOPS:
fio -direct=1 -iodepth=32 -rw=randwrite -ioengine=libaio -bs=4k -numjobs=4 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test
  • 随机读IOPS:
fio -direct=1 -iodepth=32 -rw=randread -ioengine=libaio -bs=4k -numjobs=4 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test
  • 顺序写吞吐量:
fio -direct=1 -iodepth=128 -rw=write -ioengine=libaio -bs=128k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test
  • 顺序读吞吐量:
fio -direct=1 -iodepth=128 -rw=read -ioengine=libaio -bs=128k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test
  • 随机写延迟:
fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test
  • 随机读延迟:
fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test
  • 顺序写延迟:
fio -direct=1 -iodepth=1 -rw=write -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test
  • 顺序读延迟:
fio -direct=1 -iodepth=1 -rw=read -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test

FIO参数取值说明

下表以测试云盘随机写IOPS(randwrite)的命令为例,说明各种参数的含义。


(责任编辑:IT)