You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

1 实验环境

1.1 测试条件

  • 500个measurement

  • 每个measurement 10000row

1.2 测试用例

  • Read All Vector Chunk

    • 读一串连续的measurement,横坐标表示读取一个vector下连续的chunk的数量(从1开始)

    • select s001,s002,s003,..,s100 from root.sg_2.d1.vector

  • Read Bad Vector Chunk

    • 读两个measurement,横坐标表示读取一个vector下的首尾chunk的间隔

    • select s001,s500 from root.sg_2.d1.vector

2 windows环境

2.1 Read All Vector Chunk

  • 在cli端进行测时,10次去极值取平均

image-20211006161842423

分析:

  • 时间基本上是线性增长,符合预期

  • 添加cache后基本没有优化,不符合预期


3 Linux环境

使用Linux环境测试,主要是为了借助vmtouch工具验证OS缓存的影响。

https://hoytech.com/vmtouch/

3.1 lock

使用vmtouch工具,强制使tsfile驻留在OS缓存中。

在cli端进行测时,4次实验去极值取平均

实验前:

image-20211006172649729

image-20211006163609789


image-20211006201207519

分析:

  • Read All Vector Chunk 的情况下,都不涉及磁盘IO,效率没有差别。

  • Read Bad Vector Chunk 的情况下,读的measurement间隔越大,性能差异越大。我认为原因可能是

    • 开cache时需要开一个较大的ByteBuffer

    • 内存IO传输大小

    image-20211006201744701

3.2 evict

使用vmtouch工具,每次读文件前都强制将tsfile从OS缓存中移除,即真对磁盘进行IO

4次实验去极值取平均

image-20211006191948400

image-20211006192736005

分析:

  • Read All Vector Chunk 的情况下,符合理想预期,但是由于跑一次测试时间比较久,起伏比较大。

  • Read Bad Vector Chunk 的情况下,符合理想预期,读的measurement间隔较小时cache好,读的measurement间隔大时non-cache好

    • non-cache情况下,进行四次磁盘IO,不浪费传输。

    • cache情况下,进行两次磁盘IO,间隔越大传输浪费越大。




  • No labels