首页 > 其他分享 >Azure中的磁盘性能与测试

Azure中的磁盘性能与测试

时间:2023-09-05 15:03:49浏览次数:43  
标签:存储 iostat 写入 IOPS 测试 Azure 磁盘 冗余

性能指标

IOPS:应用程序在一秒钟内发送到存储磁盘的请求数,包括Read和Write数(单位时间内的次数)

IOPS可细分为如下几个指标:

  • Toatal IOPS,混合读写和顺序随机I/O负载情况下的磁盘IOPS,这个与实际I/O情况最为相符,大多数应用关注此指标。
  • Random Read IOPS,100%随机读负载情况下的IOPS。
  • Random Write IOPS,100%随机写负载情况下的IOPS。
  • Sequential Read IOPS,100%顺序读负载情况下的IOPS。
  • Sequential Write IOPS,100%顺序写负载情况下的IOPS。

IO大小(IO Size):IO Size是取决于应用程序的设定,概念是应用程序单次请求磁盘读写的大小,比如数据库的IO大小一般是8KB,即每次读写8KB的数据。

吞吐量:应用程序在一段时间内发送到存储磁盘的数据量

吞吐量 = IOPS(应用程序一秒钟请求磁盘读写的次数) * IO Size(应用程序单次请求磁盘读写的大小)

延迟:接收单个请求、将其发送到存储磁盘并将响应发送到客户端所需的时间

同样来源数据量,吞吐量越大,延迟越低

计算下载时间:

eg:

For peak 4K write, the Unity with compression had sub-millisecond latency until just over 31K IOPS and peaked at 34K IOPS with 9.12ms latency. RAID5 made it to roughly 100K IOPS with latency under 1ms and peaked at 107,216 IOPS with 4.16ms latency. For RAID10, there was sub-millisecond latency until around 184.7K IOPS with a peak of 185,979 IOPS with 1.09ms latency.

4KB 100%写的情况下,Unity 450F的IOPS的100K IOPS,即每秒钟系统能处理100,000次IO请求

换算为吞吐量(带宽):

每秒100,000次4KB的数据写入,即100,000 * 4 = 400,000 KB/S,再将单位处理一下: 400,000/1024 = 390 MB/s -- 要再换算成GB/s也是可以的

那么1TB需要多久能写完呢?

1TB = 1*1024 * 1024=1,048,576 MB

1,048,576 / 390 = 2,688.6564 S秒 ; 2,688.6564/60=44.8109 Min分钟

一.磁盘类型

Ultra disks(超级磁盘):超级磁盘仅支持本地冗余存储 (LRS)
Premium SSD v2(高级SSD v2):仅支持本地冗余存储(LRS)配置
Premium SSDs (solid-state drives)  (高级SSD v1):支持本地冗余存储 (LRS) 和区域冗余存储 (ZRS) 选项
Standard SSDs   (标准SSD):支持本地冗余存储 (LRS) 和区域冗余存储 (ZRS) 选项
Standard HDDs (hard disk drives)  (标准硬盘HDD):标准 HDD 仅支持本地冗余存储 (LRS)

数据冗余方式

LRS和ZRS

本地冗余存储 (LRS) 磁盘:提供至少 99.999999999%(11 个 9)的持续性,原理一份数据三个副本,在同一个区域,对于写入请求,会同步到三个副本中才算成功

区域冗余存储 (ZRS) 磁盘: 提供至少 99.9999999999%(12 个 9)的持续性,原理一份数据三个副本,在三个区域,其他区域同步主区域的写请求,将数据同步写入到其他可用区域才算成功

只有高级 SSD 和标准 SSD 托管磁盘支持托管磁盘的 ZRS,高级 SSD v2 托管磁盘不支持托管磁盘的 ZRS。

Azure中的磁盘性能与测试_应用程序

二.对磁盘进行基准测试

两个工具:

diskspd和fio

1.diskspd


-c200G:创建(或重新创建)测试中使用的示例文件。它可以以字节、KiB、MiB、GiB 或块为单位设置。在这种情况下,使用 200 GiB 目标文件的大文件来最小化内存缓存。

-w100:指定写请求的操作百分比(-w0相当于100%读)。

-b4K:表示块大小,以字节、KiB、MiB 或 GiB 为单位。在本例中,使用 4K 块大小来模拟随机 I/O 测试。

-F4:设置总共四个线程。

-r:表示随机I/O测试(覆盖-s参数)。

-o128:指示每个线程每个目标的未完成 I/O 请求数。这也称为队列深度。在本例中,使用 128 来对 CPU 施加压力。

-W7200:指定测量开始前的预热时间。

-d30:指定测试的持续时间,不包括预热。

-Sh:禁用软件和硬件写入缓存(相当于-Suw)。

最大写入 IOPS

我们使用 128 的高队列深度、8 KB 的小块大小和四个工作线程来驱动写入操作。写入工作线程正在驱动“NoCacheWrites”卷上的流量,该卷具有三个磁盘,缓存设置为“None”

diskspd -c200G -w100 -b8K -F4 -r -o128 -W30 -d30 -Sh testfile.dat

Azure中的磁盘性能与测试_ios_02

最大读取IOPS

我们使用 128 的高队列深度、4 KB 的小块大小和四个工作线程来驱动读取操作。读取工作人员正在驱动“CacheReads”卷上的流量,该卷有一个磁盘的缓存设置为“ReadOnly”。


运行以下命令进行两个小时的预热和 30 秒的测量:


diskspd -c200G -b4K -F4 -r -o128 -W7200 -d30 -Sh testfile.dat

Azure中的磁盘性能与测试_ios_03

结果显示,Standard_D8ds_v4 VM 提供了 77,000 的最大读取 IOPS 限制。

2.fio工具

A.最大写入 IOPS

[global]

size=30g

direct=1

iodepth=256

ioengine=libaio

bs=4k

numjobs=4

[writer1]

rw=randwrite

directory=/mnt/nocache

创建具有以下规格的作业文件以获得最大写入 IOPS。将其命名为“fiowrite.ini”。


高队列深度为 256。

4 KB 的小块大小。

多个线程执行随机写入。

运行以下命令启动 FIO 测试 30 秒,

sudo fio --runtime 30 fiowrite.ini

Azure中的磁盘性能与测试_Standard_04

测试运行时,您可以看到 VM 和 Premium 磁盘提供的写入 IOPS 数量。如下例所示,Standard_D8ds_v4 VM 提供的最大写入 IOPS 限制为 12,800 IOPS。

B.最大读取IOPS

创建具有以下规格的作业文件以获得最大读取 IOPS。将其命名为“fioread.ini”。

[global]

size=30g

direct=1

iodepth=256

ioengine=libaio

bs=4k

numjobs=4

[reader1]

rw=randread

directory=/mnt/readcache

请注意以下关键事项,这些事项符合前面部分讨论的设计指南。这些规格对于驱动最大 IOPS 至关重要,


高队列深度为 256。

4 KB 的小块大小。

多个线程执行随机写入。


运行以下命令启动 FIO 测试 30 秒,

sudo fio --runtime 30 fioread.ini

测试运行时,您可以看到 VM 和 Premium 磁盘提供的读取 IOPS 数。如下例所示,Standard_D8ds_v4 VM 提供超过 77,000 次读取 IOPS。这是磁盘和缓存性能的组合。

Azure中的磁盘性能与测试_ios_05

三.应用程序所需的性能指标

Azure中的磁盘性能与测试_ios_06


四.程序性能测试工具

Windows: PerfMon

Linux: iostat



A.PerfMon展示图(cmd中使用perfmon会出现性能计数器)

Azure中的磁盘性能与测试_Standard_07

B.iostat用法

示例:查看cpu状态


iostat -c 1 1


示例:查看磁盘使用率和响应时间


# -d 显示磁盘使用情况,-x 显示详细信息

iostat -d -x -k 1 1


其他示例


# 间隔1秒,总共显示5次

iostat 1 5


# 每隔2秒,显示一次设备统计信息

iostat -d 2


# 每隔2秒,显示一次设备统计信息,总共输出3次

iostat -d 2 3


# 每隔2秒显示一次sda, sdb两个设备的扩展统计信息,共输出3次

iostat -x sda sdb 2 3


# 每隔2秒显示一次sda及上面所有分区的统计信息,共输出3次

iostat -p sda 2 3


# 以M为单位显示所有信息

iostat -m

标签:存储,iostat,写入,IOPS,测试,Azure,磁盘,冗余
From: https://blog.51cto.com/u_9237101/7372650

相关文章

  • 五、进程调度/页面置换/磁盘调度
    小林coding《图解系统:调度算法》笔记参考:geeksforgeeks: CPUSchedulinginOperatingSystemsuic:CPUScheduling 进程调度TIP我知道很多人会问,线程不是操作系统的调度单位吗?为什么这里参与调度的是进程?先提前说明,这里的进程指只有主线程的进程,所以调度主线程就等于调......
  • asm disk被加入到另外一个磁盘组故障恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:asmdisk被加入到另外一个磁盘组故障恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]有朋友在aix环境对其中一个rac的asm磁盘组进行扩容之后另外一套rac的磁盘组直接dismount......
  • YOLOV5 训练好模型测试时出现问题:AttributeError: ‘Upsample‘ object has no attrib
    在使用YOLOV5训练好模型测试时出现问题:AttributeError:‘Upsample’objecthasnoattribute'recompute_scale_factor’的快速解决方法。解决方法一:有些博主说降低torchhe和torchvision版本,比如上图所示我的torch版本1.11.0torchvision版本0.10.2,torch版本降低到版本1.9.1,torc......
  • 干货|API接口测试技巧汇总
    1API接口介绍1.1RPC(远程过程调用)远程过程调用(英语:RemoteProcedureCall,缩写为RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用......
  • 反伪造发件人邮箱地址发送邮件-SPF测试工具.zip
    反伪造发件人邮箱地址发送邮件-SPF测试工具说明:本软件是由邮箱资料站旗下邮箱反垃圾邮件过滤产品技术部独家研制开发,可伪造任意的邮箱发送邮件,对市面上的所有的邮箱都有显著的效果,当然也会有个别的邮箱的拦截系统比较完善,不可避免的可能会进入到垃圾箱里,研究此产品的目的主要是希......
  • 使用parted快速对新硬盘/磁盘进行分区
    1.前言由于MBR分区表只能识别2TB的硬盘(原因可以看MBR分区表为什么最大只能识别2TB硬盘容量),因此随着现在的硬盘空间越来越大,需要使用其他的分区表,如GPT。2.使用parted进行磁盘分区首先安装好磁盘之后,需要使用fdisk命令识别你的磁盘信息(普通用户使用sudo提权,下面同理):fdisk-l......
  • 标题测试内容
    ZeroTier-简单快捷组建虚拟局域网最近公司搬了新地址,开发和测试的服务器原来就在办公室放着,现在需要搬到机房,但是新的办公室和机房不在一起,网络不通。在网上找了一圈,发现了个叫ZeroTier的工具,组建局域网比较方便。官网宣传说:在任何地方安全地连接任何设备:Securelyconnec......
  • 软件测试|Django 入门:构建Python Web应用的全面指南
    引言Django是一个强大的PythonWeb框架,它以快速开发和高度可扩展性而闻名。本文将带您深入了解Django的基本概念和核心功能,帮助您从零开始构建一个简单的Web应用。什么是Django?Django是一个基于MVC(模型-视图-控制器)设计模式的Web框架,旨在简化Web应用程序的开发过程。它由Django软......
  • 软件测试|快速、可靠的JavaScript依赖管理工具——yarn
    简介Yarn是一个由Facebook于2016年推出的JavaScript软件包管理器。它的目标是解决npm(Node.js的默认软件包管理器)在性能和可靠性方面的一些问题。Yarn旨在提供更快、更安全、更稳定的依赖项安装过程,使JavaScript开发人员能够更轻松地管理和构建项目。本文将详细介绍Yarn的特点、优势......
  • 解决命令行提示“cannot create temp file for here-document: No space left on devi
    问题如题,出现“cannotcreatetempfileforhere-document:Nospaceleftondevice”,且部分应用出现故障,比如重启后Docker容器无法启动先使用df-h检查磁盘使用率,显示使用率50%还不到继续排查,使用lsof|grepdeleted 或lsof-w|grepdeleted检查是否存在未释放的已......