详解:如何做好系统性能评估?

在项目实战中,要根据业务真实诉求给出切合实际的性能配置,还需要针对业务模型进行最佳实践分析和洞察,从主机端口、存储系统、后端磁盘等端到端进行分析和评估,在本文中把常见的性能评估过程中的难点依次罗列,希望对大家有所帮助 。
IO聚合成满分条写优化写惩罚
IO聚合成满分条大小的情况下,无需做预读操作,不会触发RAID写惩罚,RAID写惩罚在不是满分条写的时候,才会触发预读的流程 。以RAID5-5小写为例,写一个数据位,需要预读两次,写校验位一次 。可以认为是一个IO被放大成了四个IO 。

详解:如何做好系统性能评估?

文章插图
而满分条写的时候,同时写四个数据位,不需要预读,只需要额外写一次校验位,可以认为是四个IO被放大成了五个IO。对比非满分条写,效率大大提高 。
详解:如何做好系统性能评估?

文章插图
存储的IO合并能力对于数据库业务是否各家都能做到IO合并呢?一般存储针对不同类型的IO有不同的合并能力;数据库业务主要是随机IO,各厂商都做不到完全满分条IO合并 。存储收到的IO是否能够合并,主要取决于两个方面 。
1、主机侧发下来的业务IO模型:IO是否顺序,是否连续,与主机业务软件本身、主机侧块设备、卷管理策略、HBA卡拆分策略等相关 。主机下发的IO越顺序、越连续,到达阵列后的合并效果越好 。
2、存储侧对IO的合并能力:IO路径上的Cache、存储块设备、硬盘等模块都会对IO进行排序与合并的操作,试图尽可能将小IO合成大IO下盘 。
对于顺序小IO而言,基本上能够实现将IO都合并成满分条后下盘 。而对于IO随机程度较高的数据库业务,各厂商都无法确保所有IO都能够合并,只能尽量通过排序和合并,将相邻地址的小IO合成大IO,但合并程度由于算法实现和内存大小等因素可能会有所差异 。
OLTP、OLAP、VDI和SPC-1业务模型
OLTP、OLAP、VDI和SPC-1是当前性能评估中常见的三类业务场景 。SPC-1是业界通用的随机IOPS型的IO模型,在不清楚实际业务类型的条件下,常用此模型来进行性能评估 。四种模型的简单IO特征如下表所示 。
详解:如何做好系统性能评估?

文章插图
下面将分别介绍四种模型的业务特性与IO特征:
一、OLTP业务模型和特征:
1、业务特征:每个事务的读,写,更改涉及的数据量非常小,同时有很多用户连接到数据库,使用数据库,要求数据库有很快的响应时间,通常一个事务在几秒内完成,时延要求一般在10-20ms 。
2、IO特征:针对DATA LUN,随机小IO,IO大小主要为8KB(IO大小与数据库的Block块大小一致),读写比约为3:2,读全随机,写有一定合并 。针对LOG LUN,多路顺序小IO,大小不定,几乎都是写IO 。
二、OLAP业务模型和特征:
1、业务特征:一般很少有数据修改,除非在批量加载数据时;系统调用非常复杂的查询语句,同时扫描非常多的行;一个查询将花费数小时,甚至数天;主要取决于查询语句的复杂程度;查询的输出通常是一个统计值,由group by与order by得出;当读取操作进行时,发生的写操作通常在临时表空间内;平常对在线日志写入很少,除非在批量加载数据时;分析型业务,一般对时延没有要求 。
2、IO特征:针对DATA LUN,多路顺序大IO(可以近似认为是随机大IO),IO大小与主机侧设置的分条大小有关(如512KB),90%以上为读业务,混合间断读写 。针对TMP LUN,随机IO,读写混合(先写后读,计算时写,读临时表时读,大部分是写,占整个业务中很少部分的IO),IO大小基本为200KB以上大IO 。

推荐阅读