Highlighted
minicom2012
2 Iron

能否阐述下从应用发起的一个I/O开始到最后的数据写入后端磁盘的过程?

也就是说,客户应用系统发起的一个I/O请求,到最后运算结束的数据写入后端磁盘阵列,要经历的哪些过程?

这些过程中,和应用系统性能有关关,或是对性能有较大影响的又是哪些?

标记 (2)
0 项奖励
3 条回复3
zhouzengchao
3 Cadmium

Re: 能否阐述下从应用发起的一个I/O开始到最后的数据写入后端磁盘的过程?

(1)i/o路径基本如下:app i/o -> host HBA -> 存储前端端口 -> 存储写缓存 -> 后端总线 -> 后端磁盘

(2)写缓存对写性能的影响是一个大头,如果写缓存被禁用,性能会有很大影响。除非是那种大块连续I/O,且其大小已经超过了存储系统的“偏旁写(write aside)”值,这类I/O直接写后端磁盘,不经过写缓存。

minicom2012
2 Iron

Re: 能否阐述下从应用发起的一个I/O开始到最后的数据写入后端磁盘的过程?

1、主机内存(缓存)和后端存储处理器的不参与IO运算吗?

2、通常对后端存储的性能调优,针对哪些方面呢?

0 项奖励
zhouzengchao
3 Cadmium

Re: 能否阐述下从应用发起的一个I/O开始到最后的数据写入后端磁盘的过程?

1. CPU 必然参与i/o处理,把存储看成一个大黑盒子的话,主要就是以上这些部件,所以我没有把CPU列入。如果你要把主机端的细节也算进来的话,那么内存/CPU也是必然在路径之内的。主机端的OS一般都实现了cache/buffer(内存区域),用意就是在于增加性能。有些大型App,比如SQL SERVER, Exchange等实现了自己的Buffer机制,这些App会控制Buffer的使用。

2. 调优可以针对:缓存高/低水线、缓存大小、缓存页面大小(一般不动)、磁盘类型、RAID类型、磁盘数量、使用FAST CACHE之类的cache tier、避免磁盘竞争、调整前端/后端端口速率等等....

0 项奖励