轨迹系列10——记某真实项目中轨迹展现查询效率优化方案三(汇总实验)

文章版权由做者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/redis

1.    方案总体描述

1.1存储

  a.使用redis存储当天全部人员的轨迹,在当天深夜进行redis中轨迹迁移。缓存

  b.轨迹存储分为轨迹日志文件和历史轨迹表两部分。服务器

  c.日志文件的存储规则为天天以日期命名新建一个文件夹,文件夹中分别创建以人员ID命名的存放该人员当天全部轨迹的文件。微信

  d.手机端每一次数据批量上传时,修改监督员状态表中的实时轨迹数据。性能

1.2迁移

       a.redis中的数据每晚进行同步至日志文件和轨迹表中的步骤,而后清空。测试

       b.轨迹日志文件按期迁移(建议三个月)。优化

       c.历史轨迹表按期备份迁移。spa

1.3采集

       手机端GPS采集上,经过对监督员运动场景分析调控GPS采集频率,减小冗余、无效GPS点,已在重庆多个项目中验证能够减小40%(或更多)的GPS数据量。   线程

1.4读取

       a.读取当天轨迹时,在redis中获取。日志

       b.读取历史轨迹时,在轨迹日志文件中获取。

2.核心性能点测试

2.1Redis缓存一天轨迹点性能测试

       假设1000个监督员,每隔10S上报一个GPS点,一天工做8小时,那么一天有2880个GPS点,这里,咱们用整数2000个点来表示。那么一天全部人员将产生200W个GPS数据。

       根据真实项目中的考察,杭州一天大概是150W个GPS点,宁波一天大概是100W个GPS点。因此,咱们测试的200W个GPS点是能够涵盖绝大部分项目场景的。

如今,咱们测试若是存储一天的全部轨迹(200W个),轨迹信息只包含人员ID、X、Y、time,一共将占用多少内存空间。

  

       实验测得,一共占用了233M的内存空间。针对如今的服务器内存空间,是能够接受的。

2.2Redis数据迁移至文本中的IO测试

       这里,将Redis中的数据分别迁移至1000我的员对应的各类轨迹日志中所需的时间进行了测试:

  

                                

       单线程写入1000个日志文件只耗时37S。1000个日志文件(200W个GPS点)所占用的存储空间是109M。

       针对这个测试,数据转移至文件是没有IO瓶颈的,轨迹日志文件一个月大概占用3G存储空间,三个月是9G,能够接受。

2.3实验总结

       Redis存储一天全部轨迹数据,轨迹数据写入轨迹日志,均没有明显的性能和存储瓶颈,是能够采用的。

       而且以上咱们采用的是200W个轨迹点作的测试,若是将GPS采集优化利用上,GPS数据量能够减小至100W个,那么以上全部测试效果会更好。 而目前轨迹量最大的杭州项目,利用GPS采集优化,150W的轨迹量也能够减小至100W个如下。

 

                        -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                            若是您以为本文确实帮助了您,能够微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                                                                                                             

相关文章
相关标签/搜索