999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數值預報產品多線程下載軟件的設計與實現

2017-10-12 07:50:06向筱銘徐曉莉蔣麗娟
中低緯山地氣象 2017年4期
關鍵詞:產品

向筱銘,徐曉莉,蔣麗娟

(1.四川省氣象探測數據中心,四川 成都 610072;2.高原與盆地旱澇災害四川省重點實驗室,四川 成都 610072)

數值預報產品多線程下載軟件的設計與實現

向筱銘1,2,徐曉莉1,2,蔣麗娟1,2

(1.四川省氣象探測數據中心,四川 成都 610072;2.高原與盆地旱澇災害四川省重點實驗室,四川 成都 610072)

針對數值預報產品數據量較大以及傳統業務中使用FTP下載數據耗時較長、時效性較低等問題,研究并實現了基于FTP協議的數值預報產品多線程下載軟件。軟件基于Linux操作系統,通過對任務隊列的管理實現數據的及時下載,通過多線程的方式提高數據的下載速度,縮短下載時間。此外,軟件還具有數據緩沖區管理功能和斷點續傳功能。實驗結果表明,使用該軟件可有效減少數值預報產品在傳輸環節所花費的時間,提高資料的時效性。

數值預報;FTP;多線程;任務隊列

Abstract:This paper introduces a multi-thread download software for numerical forecasting products based on FTP protocol,which is based on the long time and low timeliness of downloading large amount of data of numerical forecasting products by traditional FTP command.The software is developed under Linux operating system,and improves the download speed through the task queue management and multi-threaded way.In addition,the software also incorporates a data buffer management and breakpoint resume functions.The experimental results show that the software can effectively reduce the time it takes for the numerical forecast products to be transmitted and improve the timeliness of the data.

Keywords:numerical forecast products;FTP;multi-thread;task queue

1 引言

隨著氣象業務的快速發展和預報技術手段的逐漸豐富,數值預報作為一種通過高性能計算機進行數值計算來預測未來一定時段的大氣運動狀態和天氣現象的方法[1],已經表現出客觀定量預報的巨大潛力,成為目前預報業務領域最具影響力的方法[2-5]。目前在業務中使用的數值預報產品主要包括T639全球中期天氣數值預報系統模式產品、GRAPES區域中尺度數值預報系統模式產品、歐洲中心天氣模式產品、日本天氣模式產品、德國天氣模式產品以及部分省份研發的區域數值模式產品等。數值模式產品一般表現為較大的數據量,以歐洲中心集合預報產品為例,該產品每時次文件大小超過20GB。

目前,常規數值模式產品主要通過CMACast衛星通信系統下發,但受限于系統容量,下發的產品種類有限,大多依賴于用戶的主動調取,省級主要使用國內氣象通信系統向國家級調取各類數值模式產品,并將傳統FTP調取作為一種并行或備用手段;而各市州氣象局或縣氣象局則根據所在省級數據共享方式采取相應措施,如基于省級提供的數據共享目錄獲取,或通過傳統FTP調取。

傳統FTP下載是通過Linux操作系統提供的FTP客戶端和Shell腳本實現。在Shell腳本中依次調用ftp、user、prompt、passive、mget和quit等命令進行下載,下載方式為單線程方式,為避免將服務器上未完成接收的文件下載到本地以及重復下載等問題,下載任務的開始時間設定為服務器上完成數據接收之后的某個時間。傳統FTP方式進行數據下載,主要表現為以下幾個問題:

1.1 帶寬利用率不高

數值預報產品文件較大,以業務中常用的集合預報產品為例,日本00Z(世界時)時次數值預報產品的文件大小約為1.2 GB,12 Z(世界時)時次數值預報產品的文件約為2.1 GB。歐洲數值預報產品每天獲取兩時次的數據,每次20.2 GB。將傳統FTP下載模式用于數值預報產品下載時,下載的速度約為1.1 MB/s,而經過實際測試,該類業務最高帶寬可達1.4 MB/s,因此,采用傳統FTP方式下載,帶寬利用率不高。

1.2 資料時效性較差

傳統下載方式需等待服務器端該時次所有文件到達后再開始下載,而服務器端數值預報產品的到達時間較產品的發布時間具有一定的延時,且到達過程也具有一定的時延,待服務器端文件全部到達后再下載,會使得資料的時效性更差,因此需考慮一種新的下載機制,待服務器到達一個文件時,軟件再開始下載,從而提高其時效性。

1.3 缺乏斷點續傳功能

傳統的下載方式不具有斷點續傳的功能,當文件下載失敗時,只能重新下載,效率不高,需要增加斷點續傳的功能,以減少資料下載所用的時間。

針對以上問題,遵循氣象信息化的設計思路[6],設計并實現了基于FTP協議的數值預報產品下載軟件,并以目前業務中使用的日本和歐洲集合預報產品為例,對軟件的性能進行了分析。軟件采用隊列方式對下載任務進行管理,確保數據能夠被及時下載。使用多線程下載數據,并支持斷點續傳和緩沖區管理等功能。

2 軟件設計與實現

主要包括體系結構、下載任務管理、多線程下載和斷點續傳、緩沖區管理和軟件界面等幾方面的內容。

2.1 體系結構

為了更好適應業務體系的發展,降低軟件的維護開銷,提供較高的擴展性,數值預報產品下載軟件設計為多層框架結構體系,軟件開發語言為C語言,通過NetBeans及SSH協議實現集成化的軟件開發環境,軟件的體系結構如圖1所示。

圖1 體系結構Fig.1 System architecture

應用層:該層主要提供任務下載功能,在用戶界面上,基于命令行模式,通過循環輸出的字符界面,顯示當前下載任務的進度、各線程下載速度、進度等詳細信息。用戶通過crontab命令配置任務的運行周期,即可實現任務的自動執行。軟件的執行參數如表1所示,其中t參數對應字符串代表任務配置文件,包含下載文件的服務器路徑、本地保存路徑、文件名稱、文件大小以及文件名的變化規則等。

表1 參數列表Tab.1 The parameter list

業務邏輯層:業務邏輯層由提供基本功能的基礎模塊和提供功能邏輯模塊的業務組件組成。基礎模塊不完成具體業務,為業務組件提供操作系統級接口的封裝,便于業務組件調用,包括TCP通信的封裝和FTP協議的封裝。業務組件完成文件下載過程中各步驟的具體實現,包括下載任務管理組件、配置文件管理組件、日志管理組件和連接管理組件。其中下載任務管理組件實現對任務狀態的動態管理,提高下載文件的時效性;配置文件管理組件主要用于實現對配置的文件的讀取;日志管理組件實現日志的文件級輸出;連接管理組件實現對FTP會話連接的管理。采用上述設計的原因是在于提高模塊的內聚性和降低模塊間的耦合性,當系統邏輯變化或者需進行改進時,只需對相應業務組件進行修改即可,從而提高軟件的可擴展性。

底層平臺:底層平臺主要由異構硬件平臺和Linux操作系統組成。軟件的功能很多依賴于GNU C LIB,因此也將其作為底層平臺的一部分。

2.2 下載任務管理

為實現任務的高效下載,提高任務的時效性,任務管理的機制顯得尤為重要。國家氣象信息中心資料共享平臺每天從日本和歐洲獲取數據,服務器端的文件是逐個達到的,且整個過程持續一定時間。根據服務器端文件達到的特點,數值預報產品下載軟件采用雙隊列分級管理的機制對下載任務進行管理,如圖2所示。

圖2 任務管理流程Fig.2 Task management plan

任務管理的機制如下:

①軟件根據配置文件中所列出的下載文件列表,將任務分別存放于兩個隊列中,一個為未就緒任務隊列,一個為已就緒任務隊列,未就緒任務隊列中存放當前服務器尚未完成達到的文件列表,已就緒任務隊列中存放著服務器端已經到達,但尚未下載到本地的文件列表。

②軟件運行時首先對服務器文件列表進行掃描,并將匹配的文件放入已就緒任務隊列,然后逐個對已就緒任務隊列的文件進行下載。當已就緒任務隊列為空時,將對服務器文件列表進行掃描,并將匹配的文件放入已就緒文件隊列,然后進行下載。

③為避免將正在發生更改的文件下載到本地,對于大小固定的文件,軟件會將服務器端文件大小和期望文件大小(配置文件所配置的文件大小)進行匹配,只有大小匹配后,才將該任務放入已就緒隊列中。而對于大小不固定的文件,軟件會間隔一段時間進行兩次掃描,并將其大小進行對比,兩次大小一樣,才將其放入已就緒任務隊列中。

④為降低對服務器資源的占用,兩次服務器列表掃描時間的間隔的初始值配置為1 min,并隨著對服務器掃描次數的增加而逐漸增大至上限值。

2.3 多線程下載和斷點續傳

多線程下載是提高任務下載速度的有效手段,而斷點續傳則可以在任務由于意外情況停止的情況下,繼續下載未完成的部分。在實現時,它們具有緊密的聯系,因此將其合并進行介紹。

要基于FTP協議實現斷點續傳,需要服務器支持REST指令,該指令并非標準FTP服務器必須支持的指令,因此需要在下載前,通過REST 指令進行測試,如果服務器正常執行該命令,則服務器支持該指令,REST后的數字即表示文件的偏移位置。

為了支持多線程下載,需要根據文件的大小和線程的數量進行分塊,從而使得各線程的下載可同時進行,加快下載速度。同時,為支持斷點續傳,尤其是在重新啟動下載任務后線程數量改變的情況,特設計了如圖3的結構來記錄線程所對應的分散數據塊。

圖3 文件分塊下載結構Fig.3 The structure of file block

線程使用動態數組管理,其中包含一個指向待下載數據塊結構體的指針,數據塊結構體中記錄著相對于文件起始位置的偏移量、數據塊的大小、占用標志和指向下一個數據塊的指針,當新建立一個任務時,將文件大小按照線程數量進行平分。當任務暫停時,數據塊信息將和線程信息一起寫入文件中,待任務重新啟動時,若線程數量不變,則讀取各個線程的信息和數據塊信息,繼續進行下載,如果線程數量改變,將按照現有線程數量進行數據塊的重新分配,實現任務的平均分配[7]。

2.4 緩沖區管理

由于文件被分塊下載,每接收一次數據就進行一次數據寫入的機制將導致反復多次的磁頭啟動和寫硬盤,帶來較大的磁盤開銷,因此需設置緩沖區,待接收的數據達到一定數量時,再一次性寫入磁盤。軟件使用基于鏈表實現的隊列進行緩沖區管理,如圖4所示。

圖4 緩沖區管理Fig.4 Buffer management

每個線程接收到一定量的數據后,并不立刻寫入硬盤,而是將其掛靠在隊列中,并更新隊列所管理的緩沖區大小,待緩沖區數據大小達到所設置的緩沖區大小時,軟件開啟一個新的緩沖區隊列頭,然后將放滿的緩沖區數據寫入硬盤,并釋放對應的內存塊。

2.5 軟件界面

軟件界面主要用于軟件與使用者之間進行信息交互,由于該軟件的應用場景是在后臺定期運行,根據任務列表下載相應的數值預報產品文件,因此其界面顯示是在Linux終端中,通過程序輸出的字符界面來呈現。界面主要包括歷次下載的詳情,當前正在下載文件的文件名、文件大小,下載進度,下載速度以及各個下載線程的下載進度。使用者可以通過該界面獲取當前下載的詳細情況。

3 試驗與分析

測試工作在四川省氣象探測數據中心機房進行,通過從國家級下載日本和歐洲數值模式產品,獲取測試下載的平均速度、耗時和資源占用情況,并對測試數據加以分析。

為了檢測隨著線程數量變化對系統下載速度和資源占用的影響,對不同數量線程情況下從國家級下載集合預報產品下載速度和CPU占用率進行測試,最終結果如圖5所示。

從圖中可以看出,隨著線程的增加,下載速度有所增加,但是當線程數為3及其以上時,速度基本不變,由此可推測該速度已經達到了該類業務在QoS[7]下的最高速度。另外,從CPU占用率的曲線可以看出,隨著線程數量的增加,系統開銷也會相應增大。綜合考慮業務對時效性的要求,將下載線程數設置為2,此時可達到最高下載速度,且資源占用相對較少。

圖5 資源占用測試Fig.5 The test of resources occupancy

將下載線程數設置為2之后,分別使用傳統FTP方式和數值預報產品下載軟件對所需的日本和歐洲集合預報產品進行了下載,統計每天下載的結果,并計算相關數據平均值,最終結果如表2所示。其中“平均啟動延時”指服務器上出現該時次資料的時間和本地開始下載該時次資料時間的差值。

從表中可以看出,相對于傳統FTP的單線程下載方式,數值預報產品下載軟件不僅通過使用多線程方式提高了資料的下載速度,還從任務管理的角度入手,在設置的間隔時間內訪問服務器,以獲取最新資料的到達情況,一旦發現有到達的文件,即立即啟動下載,相對于傳統方式需等待文件全部到達完成再下載的模式,在很大程度上降低了任務的啟動延時,從而進一步提高了資料的時效性。

表2 數值預報產品下載測試結果Tab.2 The test results of numerical forecast products download

各時次資料使用兩種下載手段的延時對比結果如圖6所示,該延時是指從服務器上具有該時次資料文件開始,到本地服務器下載完成該時次資料為止,兩個時間的時間差。從圖從可以看出,數值預報產品下載軟件降低了資料的延時。若某時次資料的數據量越大,則使用數值預報產品下載軟件提高資料時效性的作用越明顯。

圖6 資料延時對比結果Fig.6 The comparison result of data delay

4 結語

軟件基于FTP協議,設計了擴展性較強的系統架構,使用雙隊列分級管理機制對任務進行管理,提高了下載效率。引入多線程下載方式,縮短任務的下載時間,并支持斷點續傳。使用緩沖區對下載數據進行管理,降低磁盤的讀寫開銷。軟件作為四川省氣象探測數據中心數值模式產品調取的并行方案,已經投入到業務運行中,取得良好效果。可通過修改配置文件,作為市州級或縣級調取數值模式產品的下載軟件。在擴展研究方面,由于對服務器的訪問頻率有所增加,會增加服務器端的開銷,需要對服務器的訪問機制進行進一步的優化研究。

[1] 馮芝祥,朱同生,曹書濤,等.數值天氣預報在風電場發電量預報中的應用[J].風能,2010(04):56-59.

[2] 王強,張驍,王起喚.基于EC細網格產品對懷化地區日最高氣溫的預報及訂正分析[J].貴州氣象,2016,40(5):32-37.

[3] 朱文達,萬雪麗,彭芳,等.2015年5—8月貴州區域中尺度WRF模式降水檢驗[J].貴州氣象,2016,40(3):24-30.

[4] 白慧,段瑩,王興菊,等.基于DERF2.0模式產品對單站旬、月極端降水日數的預測[J].貴州氣象,2016,40(1):1-6.

[5] 王紅麗,廖留峰.WRF模式對西南地區干旱事件的模擬研究[J].貴州氣象,2015,39(6):1-5.

[6] 田蘭.對貴州氣象信息化工作的理解和思考[J].貴州氣象,2016,40(6):1-4.

[7] 董元元,鄧浩江,倪宏,等.多業務網絡中支持QoS保證的最優定價機制[J].北京郵電大學學報,2011(01):116-120.

DesignandImplementationofMulti-threadDownloadSoftwareforNumericalForecastProducts

XIANG Xiaoming1,2,XU Xiaoli1,2,JIANG Lijuan1,2

(1.Sichuan Meteorological Observation and Data Centre,Chengdu 610072,China;2.The Heavy Rain and Drought-Flood Disasters in Plateau and Basin Key Laboratory of Sichuan Province,Chengdu 610072.China)

TP311.52

B

1003-6598(2017)04-0072-05

2017-02-06

向筱銘(1985-),男,工程師,主要從事氣象信息系統研發工作,E-mail: micxiang@foxmail.com。

四川省氣象局“省級氣象數據支撐環境及應用系統建設創新團隊”資助。

猜你喜歡
產品
好產品,可持續
現代裝飾(2022年4期)2022-08-31 01:39:32
從靈感出發,邂逅好產品
現代裝飾(2022年3期)2022-07-05 05:55:06
新產品
“三無”產品
快樂語文(2021年36期)2022-01-18 05:48:46
OPPO:堅守本分,將產品做到極致
金橋(2021年4期)2021-05-21 08:19:22
”這些產品,我不打算回購。
中國化妝品(2018年6期)2018-07-09 03:12:40
拒絕平凡,如何讓你的產品變“有趣”?
中國化妝品(2018年6期)2018-07-09 03:12:32
2015產品LOOKBOOK直擊
Coco薇(2015年1期)2015-08-13 02:23:50
golo6可以聽的OBD產品
新產品
玩具(2009年10期)2009-11-04 02:33:14
主站蜘蛛池模板: 国产成人精品高清在线| 91无码视频在线观看| 午夜小视频在线| 手机在线免费不卡一区二| 亚洲视频三级| 在线日韩日本国产亚洲| 国产一级α片| 欧美在线精品一区二区三区| 亚洲色欲色欲www网| 福利国产在线| 欧美在线视频不卡第一页| 亚洲免费毛片| 久久综合伊人77777| 无码中文字幕加勒比高清| 日韩AV无码一区| 久久永久精品免费视频| 国产成人精品一区二区免费看京| 亚洲午夜天堂| 欧美日韩一区二区在线播放| 成人a免费α片在线视频网站| 2020国产在线视精品在| 久久国产高清视频| 最新国产网站| 一本一道波多野结衣一区二区| 色哟哟国产精品| 国产亚洲精品97在线观看| 91久久偷偷做嫩草影院精品| 亚洲欧美成人| 成人欧美日韩| 亚洲伊人久久精品影院| 国产精选自拍| 国产免费黄| 国产拍在线| 特黄日韩免费一区二区三区| 国产一级在线播放| 成年人久久黄色网站| 她的性爱视频| 久久久久久久久18禁秘| 久久久久国产精品熟女影院| 亚洲第一成年网| 亚洲av无码成人专区| 26uuu国产精品视频| 国模粉嫩小泬视频在线观看| 久久亚洲精少妇毛片午夜无码| 国产小视频免费| 国产综合精品日本亚洲777| 成人在线综合| 色AV色 综合网站| 91精品人妻互换| 久久免费视频播放| 欧美三级视频在线播放| 欧美色伊人| 亚洲欧美成aⅴ人在线观看| 欧美一级高清片欧美国产欧美| 亚洲人成日本在线观看| 色综合久久88| 九九视频免费在线观看| 亚洲精品无码抽插日韩| 亚洲美女视频一区| 欧美成人日韩| 精品久久香蕉国产线看观看gif| 成·人免费午夜无码视频在线观看| 在线免费亚洲无码视频| 亚洲国产日韩在线观看| 丁香婷婷激情综合激情| 一本久道久久综合多人| 欧美区一区| 综合成人国产| 无遮挡一级毛片呦女视频| 国产麻豆91网在线看| 亚洲国产成人无码AV在线影院L| 国产精品青青| 久久国产拍爱| 亚洲视频黄| 2021天堂在线亚洲精品专区| 日韩福利视频导航| 日韩在线欧美在线| 日本一本在线视频| 91九色国产在线| 国产情精品嫩草影院88av| 热伊人99re久久精品最新地| 亚洲狼网站狼狼鲁亚洲下载|