軌跡系列10——記某真實項目中軌跡展示查詢效率優化方案三(匯總實驗)


文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

1.    方案整體描述

1.1存儲

  a.使用redis存儲當天所有人員的軌跡,在當天深夜進行redis中軌跡遷移。

  b.軌跡存儲分為軌跡日志文件和歷史軌跡表兩部分。

  c.日志文件的存儲規則為每天以日期命名新建一個文件夾,文件夾中分別建立以人員ID命名的存放該人員當天所有軌跡的文件。

  d.手機端每一次數據批量上傳時,修改監督員狀態表中的實時軌跡數據。

1.2遷移

       a.redis中的數據每晚進行同步至日志文件和軌跡表中的步驟,然后清空。

       b.軌跡日志文件定期遷移(建議三個月)。

       c.歷史軌跡表定期備份遷移。

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/

                                                                            如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                                                                                                             


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM