开始新对话

未解决

此帖子已超过 5 年

6176

2013年8月22日 19:00

咨询Clarrion 和VNX的调优?

​大家早上好!​

​ 做EMC存储已经几年了,感觉存储调优真的是一门大学问,很难学习和把控。。。。​

​有没有系统的文档来覆盖我现在遇到的问题,文档最好是中文的,真的没有中文的,英文的也行,先谢谢各位!​

​现把遇到的问题简单列下:​

​1:关于硬盘吞吐量:比如说:15KB硬盘32MB/s,10KB 24MB/s,还有3.5寸盘和2.5寸盘,如果都是相同的转速,是不是大盘每秒读写的扇区要大,也就是说大盘的吞吐能力要比小盘强些?如果想算下RAID5(3块盘)吞吐量,是不是15KB可以计算成(32MB/S)*3???​

​2:客户关心的是最终存储的吞吐能力,怎么才能更准确计算出来?当然测试出来的数据是最准确的,但是测试出来的吞吐能力不一定是最优的。​

​3:存储的吞吐能力其实就是机头(SPE)和后面机柜(DAE),而且还有硬盘性能的处理能力的综合因素​

​4:有没有合适的主机(windows,linux,unix等)测试工具来算出来客户要求的存储吞吐能力,来推荐合适的存储​

2 Intern

 • 

4K 消息

2013年8月23日 00:00

1. 一般都是大盘吞吐量性能好,主要是因为相同角速度下,半径越大线速度越大,所以外圈(半径大的磁道)速度比内圈(半径小的磁道)速度要快。但实际应用起来问题就复杂了,最终主机用的是基于RAID group的LUN,而RAID group的性能很大程度上又取决于RAID中的数据盘数量。2.5" DAE可以支持更多的2.5"硬盘,因此在计算性能的时候还要同时考虑对容量的要求。

2. 吞吐量计算主要分两块,衡量小I/O的是IOPS,衡量大I/O的是Bandwidth。建议先参考下这些帖子:

如何计算IOPS?

新人求助 throughput,bandwidth,IOPS的区别和计算方法

有没有计算存储系统吞吐量 Throughput 的公式

专家问答(翻译稿):VNX/CLARiiON性能计算(已结束)

不过再怎么计算都是理论值,因为I/O类型的不同和缓存层的介入,总是会有偏差。

3. 我同意,还要再加上存储和主机之间的connectivity option (1G/10G iSCSI、4G/8G FC、10G FCoE等等)

4. 看前面的帖子,再结合这篇:

如何计算CLARiiON实际可用容量

至于文档的话,EMC有不少针对性能调优的best practice:

EMC VNX Unified Best Practices for Performance

EMC CLARiiON Best Practices for Performance and Availability

EMC VPLEX: Elements of Performance and Testing Best Practices Defined

EMC Performance for Oracle

Applied Best Practices Guide: EMC Solutions for Microsoft SQL Server with EMC VNX Series

可以去support.emc.com找到更多..

事实上为了获取最好的性能,但优化存储是不够的。主机操作系统和应用厂商也会发布各自的最佳性能文档,也建议去他们的网站看看。

2 Intern

 • 

1.2K 消息

2013年8月22日 22:00

David, 我帮你把这个帖子移动到了 中文支持论坛 里的 存储系统 版块中。这里才是讨论具体技术的地方。你原先创建帖子的那个叫ECN Help Forum的地方只是用来询问论坛平台如何使用。

2 Intern

 • 

362 消息

2013年8月22日 23:00

问题很多,建议多开几个帖子。

调优的过程需要看客户环境,没有绝对的适合,都有实际环境为前提的。

关于速率的吞吐可以采用IO METER来测试硬盘的速率。

15kb和10kb这个好说,因为容量一样不是SATA 和 SAS的区别。当然15K好

2.5是将来的趋势,但是参数一样的话和3.5性能差不多

2 Intern

 • 

1.1K 消息

2013年8月23日 03:00

吞吐量,也就是每秒I/O操作的次数,通常用来描述顺序的和大块的I/O的性能。

一定要结合每次I/O的大小来看,也就是应用程序执行单次I/O的大小,即logical block size,例如:windows、UNIX上一般文件系统是4K,Oracle数据库是8K。

带宽一般是硬盘、SP端口和交换机端口上面的传输通道决定的,例如:1/2/4/8 Gb FC/SAS,1/10/100 GbE。

关系就是:throughput(IOPS)=bandwidth / logical block size

tb.png

如图展示了他们的关系,其中红线是带宽,绿线是吞吐量。在计算之前先确定block size

我没有听说过15KB硬盘32MB/s,10KB 24MB/s,我猜你指的应该是15rpm和10rpm吧。这里的rpm代表的是硬盘主轴的转速,例如:15K的盘主轴转一圈要4ms,而10K要6ms。通常在已知block size的情况下,他们有30%左右的吞吐量差异,如下图RAID5示例:

r5.png

至于RAID的吞吐量怎么计算,如下公式,还是要先确定应用程序的block size:

rt.png

总的来看,凡事计算之前一定要判断是什么应用程序读写数据I/O size是多少?否则谈啥都没意义。

631 消息

2013年8月28日 00:00

15KB硬盘32MB/s,10KB 24MB/s  一般来说硬盘都有一个IOPS的极限值

这个是不是所谓的硬盘的物理带宽极限啊

631 消息

2013年8月28日 00:00

哦,吞吐量我一直以为就是带宽的另外一种说法,原来是IOPS啊,汗~

2 Intern

 • 

3.2K 消息

2013年8月28日 01:00

前辈,有的时候管理员可能知道存储与备份的架构但不一定知道I/0的类型呀。例如,我怎么知道已经运行的系统大概有多少比例的radomn I/O或者多少比例的Large I/O呢?这个不仅对于存储管理员来说很重要对于DBA们也很重要,但是这种情况下这个看似透明的系统不就是个“黑盒”了吗? 这方面的估算有没有啥经验模型呢?

106 消息

2013年8月28日 08:00

具体应用的读写比例及随机IO和连续IO, 大数据小数据的比例分配, 是要用工具去测的. clariion和vnx提供了性能参数收集的工具是analyzer,

这个问题要计算太复杂了, 很久以前的存储给过最优的IOPS数值,但客户环境太复杂, 用户会以为是个固定值, 达不到这个数值就来找EMC, 争议非常多, 后来就不提供官方的数字了.

所以还要看客户的需要实测比较好, 在一个范围内, 应用可以接受就可以了.

对IOPS有影响的非常多的因素:

磁盘数量

磁盘型号(SAS, SATA, FC, Flash, 2.5', 3.5')

磁盘转速

磁盘容量大小

后端磁盘分布(bus数量,每bus磁盘数等等)

RAID类型

RAID配置

数据读,写比例

大数据小数据比例

磁盘的utilization

SP压力

主机HBA卡数量, 驱动, firmware版本, 型号

交换机配置

存储连接主机的拓朴结构

主机链路管理软件类型

主机链路负载均衡策略及算法

存储Cache配置

Fast Cache配置

有无其他复制软件

上面的还不是全部, 做性能调优的人必须有各方面的知识和丰富的经验. analyzer只是收集性能参数的工具, 具体分析还要工程师根据具体的应用去分析.

631 消息

2013年8月28日 17:00

嗯,analyzer是个好主意,谢谢Celia。

2 Intern

 • 

3.2K 消息

2013年8月28日 17:00

真是太感谢啦

2013年8月28日 19:00

谢啦

2013年8月28日 19:00

谢谢

2 Intern

 • 

1.1K 消息

2013年8月28日 23:00

我想https://community.emc.com/people/liulei_it%40yahoo.com.cn想要了解random/small I/O和sequential/large I/O的分布比例吧,分享下我的经验。

首先,看应用层:

借用下这个OS上的iostat,如下:

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

sdb              0.00    57.00   71.00  106.00     1.36     0.43    20.66     4.51   25.73   5.61  99.30

sdc              0.00  5106.00   0.00  124.00     0.00    21.54  355.81     2.13   17.31   7.75  96.10

sdd              0.00     0.00  158.00    0.00    20.48     0.00  265.42     1.08    9.88   4.06  64.10

fd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

dm-2              0.00     0.00  158.00    0.00    20.48     0.00   265.42     1.08    9.87   4.06  64.10

dm-3              0.00     0.00    0.00 5467.00     0.00    21.22     7.95   226.83   41.69   0.18  96.20

dm-4              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

sdb上每秒写=0.43M=440.32K,每秒读=1.36M=1392.64K

sdb上每秒写次数=106次,每秒读次数=71次

sdb上每次写440.32/106=4.15K,每次读=1392.64/71=19.61K

同理可得:

sdc上每次写177.88K,每次读=0K

sdd上每次写0K,每次读=132.73K

一般而言,2-8K属于random/small I/O,64K以上属于sequential/large I/O。

看得出来,sdb主要进行的是random I/O,而sdc和sdd主要进行的是large I/O。

当然这个是从应用层上看到的逻辑I/O,那么真正对应到阵列的物理I/O呢?

Analyzer上针对RG/LUN/disk有一项统计叫做:average seek distance

它的含义是表示disk head移动的距离,数值越接近0表示越多sequential I/O,数值越大表示越多random I/O

2 Intern

 • 

3.2K 消息

2013年8月29日 01:00

这个太有用了,谢谢。

631 消息

2013年9月1日 02:00

Kevin的这个分析够经典,学习之。

找不到事件!

Top