美文网首页finacing量化交易QUANTAXIS
QUANTAXIS查询优化: 如何提升一倍的全市场查询速度

QUANTAXIS查询优化: 如何提升一倍的全市场查询速度

作者: yutiansut | 来源:发表于2018-04-23 10:48 被阅读53次

    前排先打广告:
    QUANTAXIS量化金融策略框架,是一个面向中小型策略团队的量化分析解决方案. 我们通过高度解耦的模块化以及标准化协议,可以快速的实现面向场景的定制化解决方案.QUANTAXIS是一个渐进式的开放式框架,你可以根据自己的需要,引入自己的数据,分析方案,可视化过程等,也可以通过RESTful接口,快速实现多人局域网/广域网内的协作

    QUANTAXIS-small.png

    这段时间在进行全市场选股策略,通过对于mongo的监测, 认为查询速度远远没有达到硬件瓶颈, 于是开始思考如何优化:

    在1.0.24版本以前, QUANTAXIS是这样对于全市场进行查询的:

    1. 对于单个股票写查询语句
    2. for循环进行多个股票代码的遍历
      3.返回结果
    查询的时候的数据库监控

    这是查询的时候的数据库监控

    通过对于net out 这一项的观察, 我们发现数据的传输速度只有10 mb/s 这个是非常糟糕的, 毕竟我这个网卡是Killer千兆网卡,socket内循环速度不应该只有10mb/s

    考虑以下两种优化办法:

    1. 进行异步操作, 对于mongodb 可用的库有motor 但是还没有完全摸透

    2. 减少查询次数,让mongodb自行优化查询语句:

    所以就有了这个最偷懒的做法:

        cursor = collections.find({
            'code': {'$in': code}, "time_stamp": {
                "$gte": QA_util_time_stamp(start),
                "$lte": QA_util_time_stamp(end)
            }, 'type': frequence
        })
    
    

    让我们来看一下效果提升:


    优化后

    我们可以观察到 优化过后,查询的传输速度达到了30mb/s左右

    再看一下任务管理器:


    任务管理器

    mongo向外的传输速度确实达到了34mb/s左右

    以上就是1.0.24 对于QUANTAXIS的优化, 虽然很简单的改进,但是确实优化的全市场查询的速度

    更多关于QUNATAXIS 可以访问 QUANTAXIS

    yutiansut
    2018/4/23

    相关文章

      网友评论

        本文标题:QUANTAXIS查询优化: 如何提升一倍的全市场查询速度

        本文链接:https://www.haomeiwen.com/subject/zhuklftx.html