《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > GPS車輛監控系統服務器性能優化與實現
GPS車輛監控系統服務器性能優化與實現
來源:微型機與應用2013年第24期
薛 津,葉少珍
(福州大學 數學與計算機科學學院,福建 福州350108)
摘要: 在C/S模式下,車載終端的并發接入量是檢驗GPS車輛監控系統服務器性能的重要因素。為了滿足大量終端的并發連接請求并快速響應用戶操作,首先采用三層體系結構設計服務器,增強系統的可擴展性,實現模塊間高內聚低耦合。其次對服務器接入模塊部分應用IOCP模型進行優化,針對實際應用中信息定位、多類型終端接入、資源優化管理、數據正確性等問題,分別采取緩沖鏈表、內存池以及分包策略等方法進行有效解決。最后在實際應用項目中進行測試,實驗結果均表明優化后的服務器性能和穩定性具有明顯的改善。
Abstract:
Key words :

摘  要: 在C/S模式下,車載終端的并發接入量是檢驗GPS車輛監控系統服務器性能的重要因素。為了滿足大量終端的并發連接請求并快速響應用戶操作,首先采用三層體系結構設計服務器,增強系統的可擴展性,實現模塊間高內聚低耦合。其次對服務器接入模塊部分應用IOCP模型進行優化,針對實際應用中信息定位、多類型終端接入、資源優化管理、數據正確性等問題,分別采取緩沖鏈表、內存池以及分包策略等方法進行有效解決。最后在實際應用項目中進行測試,實驗結果均表明優化后的服務器性能和穩定性具有明顯的改善。
關鍵詞: GPS車輛監控;IOCP;線程池;內存池

    近年隨著社會經濟的快速發展,城市交通緊張的狀況不斷地加劇,為了實現有效的、科學的車輛信息管理,GPS車輛監控系統應運而生。GPS車輛監控系統通過無線網絡,根據需要將車載終端GPS數據包括當前車輛的運行狀況、位置信息和速度等接入服務器,并通過客戶端向用戶提供監控服務[1]。該監控系統主要由服務器、客戶端和GPS車載終端三部分組成[2]。
    其中,服務器部分是整個車輛監控系統的核心,主要完成車輛GPS車載終端定位信息和報警信息的采集、處理、轉發,對客戶端軟件的指令快速響應與處理以及實現平臺數據的管理,并且需要滿足7×24小時為大規模的GPS車載終端提供接入服務。然而由于終端連接數目龐大,使服務器程序負載量大,無法快速地響應并處理海量終端的連接請求,造成系統不穩定。本文設計了一種性能和穩定性良好的服務器軟件平臺,采用三層體系結構實現模塊高內聚低耦合,并結合IOCP網絡通信模型來優化服務端,快速響應并處理海量車載終端的并發接入請求,在此基礎上改善系統資源的優化管理,從而有效提高系統的性能和穩定性。
1 服務器設計
1.1 服務器體系結構

    本文設計的服務器采用三層體系結構,如圖1所示,分為數據接入層、處理分析層和業務服務層,目的是實現交通信息接入規范化、功能模塊化、系統可擴展性強和模塊間高內聚低耦合化等特點;并且在不影響業務正常運行情況下,各個模塊可獨立升級,符合定位業務不斷發展的需求。

    數據接入層通過各種數據接入與轉換手段,實現數據的統一接入,具體通過Socket接口由車載終端連接到設備接入服務,實現雙向數據通信,并在接入服務中實現數據的轉換與統一,數據最后在網關進行匯總。
    處理分析層實現模塊化的統一處理,便于系統的擴展。不同類型的終端信息在經過數據接入層的處理后,由處理分析程序進行加工,實現業務功能。同時處理分析層也處理從用戶端發送的業務請求,并將其通過終端操作完成后返回。
    業務服務層基于處理分析層的數據處理結果,以及數據接入層采集并保存在數據庫中的原始數據,向用戶提供顯示的平臺業務功能。服務器體系結構如圖1所示。
1.2 總體邏輯結構設計
  服務器部分主要由設備接入服務、數據轉發、GPS信息服務、命令服務、業務信息服務和數據處理應用、網絡監控等模塊共同組成。其邏輯結構圖如圖2 所示。

2 設備接入服務模塊
    在服務器設計過程中,設備接入服務模塊需要快速響應和處理高并發終端的連接請求,設備接入服務模塊設計的優劣直接影響到整個系統的穩定性和性能。為了進一步提高系統的性能,本節針對該模塊的網絡通信模型進行了優化,通過完成端口(IOCP)通信模型設計并實現海量終端的連接請求,并通過優化系統資源管理使性能得到提高。
2.1 IOCP機理
    IOCP(Input Output Completion Port)也稱完成端口,是微軟提供的一種高效異步I/O通信模型。它摒棄了普通通信模型在接收到一個客戶端連接請求時就對應地創建一個線程來應答,而是通過創建一定數量的工作線程,對重疊I/O操作完成處理[3-6]。
    實際上,將完成端口看作系統維護的一個消息隊列,系統將所有用戶的I/O請求都放入該消息隊列中,并且從起先創建好的一定數量的工作線程中喚醒某一個線程來從I/O完成隊列中取出消息,完成數據的處理。
2.2 線程管理
    由于數據收發的處理對系統資源和處理器時間的消耗極為巨大,而本文所采用的完成端口通過使用線程池技術對所創建的線程進行有效的管理,從而較好地解決并發用戶連接的請求以及并發處理數據。一般系統線程池中工作線程可以歸納為3種狀態:運行中的狀態、被掛起的狀態以及在完成端口上等待的狀態[7]。
    默認情況下,線程池中的所創建的線程數目等于CPU的數目,但是一旦線程處于被掛起狀態,CPU就會處于空閑的狀態。因此定義線程數目對系統效率也有很大的影響。然而過多數目的線程不一定換來系統的高處理能力,因為如果過多的線程并行運行在操作系統中,那么任何一個線程都有可能獲得時間運行分片,使得CPU疲于線程之間的上下文切換,造成CPU時間浪費,從而降低系統的處理能力。而根據實際應用的效果,可以得出合理的工作線程的數目=CPU的個數×2+2。
2.3 GPS車載終端接入管理
2.3.1 監聽優化管理

    對于終端接入的管理,主要采用緩沖鏈表策略處理。當終端連接上系統,先將其插入到緩沖鏈表中,然后對此鏈表中終端進行2 min的判斷。若2 min內終端連接并且發送數據,就將其從緩沖鏈表中刪除;若終端連接卻不發送數據,就將其連接斷開,目的是用來防止長時間連接的Socket不發數據卻一直霸占著系統資源,造成資源浪費。
2.3.2 多類型車載終端的接入管理
    由于各地GPS車載終端廠商不一樣,導致設備終端的生產設計標準各異。在實際應用中,需要在設備接入模塊中考慮解決多類型的車載終端接入問題,本文在設計接入模塊時,為每一種類型的終端建立一個對應的協議類,并且為每一類型的終端建立單獨的監聽端口。在監聽之前事先根據端口進行注冊協議,即將協議與監聽端口相綁定,當終端接入時,根據Socket所連接的端口映射到對應的協議解析類中進行解析。如果有新類型的GPS車載終端,就對應的構造一個對應的協議解析類,這樣不僅增加了系統的可擴展性,也解決了車載終端設備多樣化的問題。
2.4 內存資源優化管理
    作為設備接入服務端的開發,合理地管理內存是一個極其重要的問題。在處理數據的過程中,必定不斷地進行內存申請和釋放的操作。由于系統的資源有限,如果頻繁對內存進行new和delete,勢必造成系統堆棧變得雜亂無序,產生很多內存碎片,造成系統不穩定,降低性能。在此本文采取內存池的方法來解決,首先根據實際應用需求,事先創建好一定數量的單IO操作數據塊,并將其一并放入到一個空閑鏈表中。當需要進行單IO操作數據空間的申請時,就從空閑鏈表檢查是否有滿足的空間,若滿足,則分出一部分內存空間進行使用;若不滿足,則繼續申請新的內存空間。當使用完這個單IO操作數據空間時,并非直接銷毀掉,而是將其保存到空閑鏈表中,供下次使用。這樣就會消除因為頻繁申請和釋放內存帶來的碎片,減少了系統資源的浪費,使系統性能得到提高。
2.5 數據處理
    在開發接入模塊時,傳輸層通信的協議采用TCP協議。由于TCP字節流的特性以及網絡狀況,在進行數據傳輸時可能出現TCP粘包現象。假設接收端接收數據時,可能出現圖3所示的4種情況,白色表示Package1,黑色表示Package2。

    第一種情況是所需要的。而后3種情況屬于TCP粘包現象,需要對數據進行拆包,拆成如第一種情況一樣的獨立的數據包。
    針對以上現象給出分包算法。假設接收到的數據長度為N,首先將數據轉換成自定義的結構體形式,并獲取結構體中數據長度字段的值L進行對比判斷。
    (1)如果L<N,則說明所接收到的數據是多包數據,按照長度字段的值截取L字節數據進行數據處理,而后繼續按照如此做法截取,直至結束;
    (2)如果L=N,則說明所接收到的數據是一個完整的數據包大小,直接進行數據處理;
    (3)如果L>N,則說明所接收到的數據不足一個數據包大小,存進臨時緩沖區中,等待接收下一個數據包進行合并后再進行判斷。
    通過分包算法能很好地解決TCP粘包的現象,并正確執行數據處理。
3 實驗結果與分析
    針對設備接入服務模塊的性能測試,本文主要從最大可支持終端的連接數目、車載終端饑餓數目(在指定時間內無法得到設備接入服務模塊響應的終端數目)、系統CPU和內存使用情況等4個方面來測試。為了更好地驗證本文應用IOCP模型對終端響應進行優化的效果,在測試階段實現了基于線程模型的性能對比測試。
3.1 實驗環境
    使用5臺處于同一個局域網的臺式機,其中接入模塊所在的主機配置為:Intel I3 雙核處理器,主頻2.66 GHz,2 GB內存。另外4臺客戶機配置為:Intel Pentium雙核處理器,主頻2.20 GHz,1 GB內存。每臺客戶機上運行一個模擬車載終端程序,能創建5 000個Socket連接模擬實際GPS車載終端的連接情況。
3.2 實驗結果分析
    通過實驗驗證,可以得出基于IOCP模型的設備接入服務模塊最大可支持終端的連接數目可達20 000個。從圖4(a)可以明顯看出,隨著終端數目的增加,即隨著Socket連接數的增多,基于線程模型的服務端饑餓的終端數量也隨之增多,而基于IOCP模型的服務端沒有出現終端連接請求得不到響應的情況。
    圖4(b)、圖4(c)為基于IOCP模型接入模塊的系統資源消耗情況。可以看出,雖然剛啟動程序,內存資源就消耗了100 MB,但隨著終端數目的增加,CPU和內存的消耗情況并沒有隨之而快速增長,而是緩慢地增長,因此可以得出基于IOCP模型的設備接入服務模塊具有良好的伸縮性能。

 

 

    基于上述設備接入服務模塊實現了GPS車輛監控系統,該系統已在福州某出租車公司接近500輛車在線運營監控管理應用。在實際運行過程中,系統都能快速、及時地響應GPS車載終端的接入請求,并且呈現出良好的穩定性和性能。
    針對需要快速響應并處理高并發量的GPS車載終端的連接請求,本文對GPS車輛監控系統的服務器進行優化。一方面本文優化服務器架構設計,將服務器結構劃分成三個層次,避免單個服務器程序壓力太大,實現高內聚低耦合。另一方面結合IOCP通信模型對設備接入服務模塊進行性能優化。通過采用線程池、內存池等方法較好地解決海量終端并發接入請求、信息定位和資源浪費等問題。其次,采用緩沖鏈表對終端接入進行監聽優化,避免惡意連接消耗系統資源。對多類型的終端協議進行統一管理,解決多類型終端接入問題。最后,為了確保數據的正確性,在報文數據處理部分結合分包策略使得TCP粘包現象得到有效解決。另外,經過實際項目的應用,表明該服務器具有較好的性能和穩定性。
參考文獻
[1] Liu Dan,Liang Zongwen,Li Yichao,et al.Research and  design of a high performance GPS vehicle monitoring  system[C].2010 International Conference on Future Information Technology and Management Engineering,2010.
[2] 齊躍,劉瀏.GPS車載監控系統并發服務器的設計策略[J]. 武漢理工大學學報(信息與管理工程版),2012,34(4):471-473.
[3] Wang Xinyu.A method using IOCP model to improve the performence of network equipment management systems[J].  Journal of Guangxi Academy of Sciences,2012(1):9.
[4] Zhang Weiguo,Shi Donghui,Li Lifeng.The design of the underlying network communication module based on IOCP[M]. Communications and Information Processing.Springer Berlin Heidelberg,2012:17-24.
[5] 廖宏建,楊玉寶,唐連章.完成端口實現高性能服務端通信層的關鍵問題[J].計算機應用,2012,32(3):812-815.
[6] GAO W,WU H,ZHANG Q,et al.An agricultural information transmission system based on smart display terminal  and IOCP[J].Intelligent Automation and Soft Computing,2010,16(6):935-943.
[7] 陳懷松,陳家琪.IOCP寫服務程序時的關鍵問題研究[J]. 計算機工程與設計,2010,31(17):3793-3796.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 超级色的网站观看在线 | 男人操女人在线观看 | 免费黄色网址在线播放 | 日本久色 | aa毛片免费全部播放完整 | 福利网站在线 | 婷婷丁香色| 特级淫片aaaa毛片aa视频 | 日韩午夜影院 | 欧美日韩中文国产一区二区三区 | 韩国久久 | 成人毛片免费观看视频 | 成人看片在线观看免费 | 国产成人精品精品欧美 | 九九成人免费视频 | 亚洲成人中文字幕 | 欧美日韩免费在线 | 欧美日韩精品高清一区二区 | 国产中文久久精品 | 日韩三级| 在线精品国精品国产不卡 | sis人成在线视频 | 麻豆xfplay国产在线观看 | 一个人看的手机视频www | 道日本一本草久 | 丝袜制服第一页 | 黄网站免费看 | 无码中文字幕日韩专区 | free性欧美高清另类 | 国产视频福利 | 美国十次综合 | 国产精品亚洲一区二区三区正片 | 男人天堂网2021 | 九九视频热 | 一一本大道香蕉大 | 国产成人v片视频在线观看 国产成人v视频在线观看 | 狠狠色狠狠色综合日日五 | 三级伦理片高清在线观看播放 | 一个人看的在线www片高清 | 日韩综合在线视频 | 天天干天天色综合 |