flashcache可能的优化点

来源:互联网 发布:rainmeter 知乎 编辑:程序博客网 时间:2024/06/03 16:00

(1)元数据的组织和管理

         当前,元数据的更新采用同步更新和批量更新,即SSD上某元数据扇区的某个元数据被更新后,同步更新内存中对应的元数据;更新完成后,检查此元数据扇区在此元数据更新期间是否有新的更新来到(可能有多个),如果有,则对这些地数据执行批量更新。其中,当前元数据更新和等待过程中的元数据更新由每个元数据扇区对应的一个“链表头“表示,其又包含了两个队列,md_io_inprog和queued_updates,来记录当前元数据更新和等待的元数据更新。

(2)checksum机制引入的问题

         有两方面问题:增加元数据更新,即使是DIRTY到DIRTY;增大了内存消耗,由24bytes到32bytes,增加了33.3%的开销。

(3)SSD的数据布局。associate set机制是否适合?

         把bio打散,在一个逻辑的set内进行寻址和存储,没有利用到SSD整体处理的优势。默认情况下,bio由DM层处理,是否可考虑让DM层只转发,不切分,由flashcache自己做处理,这样,可以对大块的顺序IO做过滤,使其不经过flashcache,从而在某种程度上减小SSD的消耗,因为磁盘处理顺序IO的能力并不差。

(4)小写问题(这里,指在flashcche逻辑块大小为4K时,小于4K的块),不会被缓存

         是否可考虑在SSD负载较轻时,缓存一定数量的小,从而做到负载均衡。使性能更平衡,使在小些较多的情况下,性能也不会太差。

(5)锁的粒度

         整个dmc只有一把锁,严重影响了读写性能。应该考虑适当增加set容量,为每个set使用一把锁,从而提高flashcache性能

原创粉丝点击