• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種新的數(shù)字集群通信系統(tǒng)網(wǎng)關(guān)內(nèi)存測試方法

      2015-03-21 12:49董昕
      現(xiàn)代電子技術(shù) 2015年7期
      關(guān)鍵詞:測試方法進(jìn)程內(nèi)存

      董昕

      (摩托羅拉(解決方案)中國有限公司成都分公司,四川成都611731)

      一種新的數(shù)字集群通信系統(tǒng)網(wǎng)關(guān)內(nèi)存測試方法

      董昕

      (摩托羅拉(解決方案)中國有限公司成都分公司,四川成都611731)

      DIMETRA IP系統(tǒng)是一種在廣泛的地理區(qū)域?yàn)闊o線用戶提供語音和數(shù)據(jù)服務(wù)的公共安全的數(shù)字集群通信系統(tǒng)。摩托羅拉電話互連網(wǎng)關(guān)(MTIG)提供DIMETRA IP系統(tǒng)與外部程控交換機(jī)(PABX)之間的語音編碼轉(zhuǎn)換,支持對講機(jī)與固定電話或移動電話的通信。這里介紹了進(jìn)行MTIG內(nèi)存性能測試的一種創(chuàng)造性的方法,該方法不僅能進(jìn)行系統(tǒng)級和進(jìn)程級的內(nèi)存檢測而且支持超長時間的內(nèi)存測試。測試實(shí)踐證明,該方法可以提高測試效率,是可行的有益的,值得推廣和部署。

      數(shù)字集群通信;電話互連網(wǎng)關(guān);性能測試;內(nèi)存泄漏

      0 引言

      MTIG作為實(shí)現(xiàn)對講機(jī)與電話互聯(lián)互通的網(wǎng)關(guān),提供DIMETRA IP系統(tǒng)(見圖1)與外部PABX之間的語音編碼,支持DIMETRA系統(tǒng)內(nèi)的對講機(jī)與外部電話之間通信。

      內(nèi)存是計(jì)算機(jī)/服務(wù)器的重要部件之一,它是與CPU進(jìn)行溝通的橋梁。計(jì)算機(jī)中所有程序的運(yùn)行都是在內(nèi)存中進(jìn)行的。內(nèi)存的運(yùn)行也決定了計(jì)算機(jī)的穩(wěn)定運(yùn)行,因此內(nèi)存的性能對計(jì)算機(jī)的影響非常大。

      內(nèi)存包括物理內(nèi)存和虛擬內(nèi)存。物理內(nèi)存是指存儲區(qū)映射到實(shí)際的存儲芯片,提供最快的訪問速度。虛擬內(nèi)存是指操作系統(tǒng)可以使用外部存儲器(硬盤等)來存儲數(shù)據(jù)[1]。

      內(nèi)存性能測試主要是通過測試判斷程序有無內(nèi)存泄漏現(xiàn)象。內(nèi)存泄漏是指用動態(tài)存儲分配函數(shù)動態(tài)開辟的空間,在使用完畢后未釋放,結(jié)果導(dǎo)致一直占據(jù)該內(nèi)存單元,直到程序結(jié)束。內(nèi)存泄漏形象的比喻是“操作系統(tǒng)可提供給所有進(jìn)程的存儲空間正在被某個進(jìn)程榨干”,最終結(jié)果是程序運(yùn)行時間越長,占用存儲空間越來越多,最終用盡全部存儲空間,導(dǎo)致整個系統(tǒng)崩潰[2]。可見內(nèi)存泄漏的后果相當(dāng)嚴(yán)重,因此通過內(nèi)存測試來檢測內(nèi)存泄露十分重要。

      在數(shù)字集群通信系統(tǒng)中最常見的是隱式內(nèi)存泄漏:程序在運(yùn)行過程中不停地分配內(nèi)存,但是直到結(jié)束的時候才釋放內(nèi)存。嚴(yán)格的說這里并沒有發(fā)生內(nèi)存泄漏,因?yàn)樽罱K程序釋放了所有申請的內(nèi)存[3]。但是對于一個服務(wù)器程序,需要運(yùn)行幾天、幾周甚至幾個月,不及時釋放內(nèi)存也可能導(dǎo)致最終耗盡系統(tǒng)的所有內(nèi)存。所以,這類內(nèi)存泄漏稱為隱式內(nèi)存泄漏。

      隱式內(nèi)存泄漏危害在于內(nèi)存泄漏的堆積,這會最終消耗盡系統(tǒng)所有的內(nèi)存。從這個角度來說,一次性內(nèi)存泄漏并沒有什么危害,因?yàn)樗粫逊e,而隱式內(nèi)存泄漏危害性則非常大,因?yàn)樗y被檢測到。所以測試環(huán)境和測試方法對檢測內(nèi)存泄漏至關(guān)重要[4]。

      圖1 DIMETRA IP系統(tǒng)概述

      本文主要介紹數(shù)字集群通信系統(tǒng)電話互聯(lián)網(wǎng)關(guān)MTIG檢測的內(nèi)存泄漏的一種新的方法。

      1 現(xiàn)有測試方法

      1.1 EPO工具

      EPO(Enhanced Performance Optimized)是一種由C,Perl和UNIX shell開發(fā)的工具,它能捕捉內(nèi)核性能統(tǒng)計(jì)數(shù)據(jù)并存儲在一個圓羅賓數(shù)據(jù)庫(RRDtool)中。該方法適用于Linux及SunOS/Solaris系統(tǒng)[5]。

      一旦數(shù)據(jù)被EPO工具獲取,該工具就能利用數(shù)據(jù)畫出內(nèi)存消耗圖。這種方式能容易地獲得一個清晰的實(shí)時的內(nèi)存使用情況。

      EPO的主要功能包括:

      (1)如果分析過程的一個子函數(shù)失敗,告知用戶;

      (2)ANOVA(方差分析);

      (3)貝葉斯分析;

      (4)找到硬件的限制:如存儲限制等;

      (5)創(chuàng)建一個內(nèi)存使用圖。

      EPO工具的數(shù)據(jù)流如圖2所示。

      (1)所有數(shù)據(jù)由epo_se服務(wù)從內(nèi)核提取并存儲于XML文件;

      (2)epo_se2rrd導(dǎo)入數(shù)據(jù)到epo.rrd文件。所有的統(tǒng)計(jì)都基于在epo.rrd文件中的數(shù)據(jù)。

      1.2 GetMem工具

      EPO工具的缺點(diǎn)是它只能表明系統(tǒng)級的內(nèi)存消耗,如何定位到是哪個進(jìn)程發(fā)生了內(nèi)存泄漏是個問題。

      圖2 EPO數(shù)據(jù)流

      由此引入了一個新的工具GetMem,該工具可以顯示應(yīng)用或進(jìn)程級的內(nèi)存消耗。GetMem工具是由Perl腳本分析Linux PMAP數(shù)據(jù)文件pmap.out從而得出內(nèi)存使用情況[6]。Linux PMAP命令可由進(jìn)程號得到這個進(jìn)程號對應(yīng)進(jìn)程的內(nèi)存映射。下面是GetMem部分腳本:

      1.3 vSpherePM工具

      前面兩種工具能支持系統(tǒng)級和進(jìn)程級內(nèi)存測試,但不能很好地支持超長時間的內(nèi)存測試。如果進(jìn)行超長時間的內(nèi)存測試就需要引入其他工具。作者將介紹內(nèi)存消耗監(jiān)視應(yīng)用程序vSpherePM,該程序可以實(shí)現(xiàn)超過48天的長期測試。作為全新的性能監(jiān)測工具,vSpherePM只需安裝到一臺Linux的服務(wù)器上,就能實(shí)現(xiàn)同時對多個系統(tǒng)中多臺VMware ESXi服務(wù)器進(jìn)行長時間的監(jiān)控,將收集到的性能數(shù)據(jù)進(jìn)行分析,生成相應(yīng)的圖表和錯誤報告,同時將錯誤報告以警報的方式發(fā)送給錯誤管理器,以便系統(tǒng)管理員實(shí)時監(jiān)控系統(tǒng)中每臺服務(wù)器的性能狀態(tài),及時采取必要措施[7]。

      vSpherePM原理圖如圖3所示,此工具可用于跟蹤和記錄遠(yuǎn)程UNIX,Linux,SunOS等的性能變化。它的主要用途如下:

      (1)監(jiān)控服務(wù)器的內(nèi)存狀態(tài);

      (2)總體的物理/虛擬內(nèi)存狀態(tài);

      (3)關(guān)鍵過程的物理/虛擬內(nèi)存狀態(tài);

      (4)根據(jù)測試報告中的實(shí)時數(shù)據(jù)生成圖表。

      圖3 vSpherePM原理圖

      1.4 三種工具小結(jié)

      以上三種工具的特性比較,如表1所示。

      表1 三種工具的特征比較

      每一個工具都可以重復(fù)進(jìn)行回歸測試。然而,單一工具都有其局限性,在某些特定情況下不能及時發(fā)現(xiàn)內(nèi)存的異常消耗。為了提高測試效率,軟件測試工程師可以根據(jù)實(shí)際情況將這些工具靈活使用[8]。

      2 一種新的測試方法

      基于以上三種工具的特性,作者提出了一種新的內(nèi)存測試方法。測試開始用EPO工具獲得系統(tǒng)級內(nèi)存信息。如果發(fā)現(xiàn)系統(tǒng)級內(nèi)存泄漏,通過GetMem檢測重點(diǎn)懷疑的某些線程的內(nèi)存信息。

      如果發(fā)現(xiàn)某線程內(nèi)存泄漏,定位引發(fā)該問題的代碼并解決問題。

      如果前面的測試都沒發(fā)現(xiàn)內(nèi)存泄漏,可以通過超長時間測試工具vSpherePM發(fā)現(xiàn)隱藏的細(xì)微的內(nèi)存泄漏。

      這個方法基于三種工具的優(yōu)缺點(diǎn)取長補(bǔ)短,進(jìn)行了優(yōu)化和創(chuàng)新,是一種切實(shí)可行的方法。新方法流程圖如圖4所示。

      圖4 新方法流程圖

      這個新方法的創(chuàng)新與價值在于:

      (1)超長時間連續(xù)的性能監(jiān)控

      即使被監(jiān)控的服務(wù)器重啟、關(guān)機(jī)甚至重裝,都不影響該方法對其狀態(tài)的監(jiān)控,一旦服務(wù)器正常運(yùn)行,就會繼續(xù)獲取性能數(shù)據(jù),無需重啟;

      支持超過48天的長時間測試。

      (2)覆蓋范圍廣

      可以同時對多達(dá)70臺的VMware ESXi服務(wù)器,超過400臺的虛擬機(jī)進(jìn)行監(jiān)測;

      不僅僅局限于摩托羅拉數(shù)字集群通信系統(tǒng),可以對所有基于VMware ESXi的服務(wù)器進(jìn)行監(jiān)測。

      (3)幫助測試人員快速發(fā)現(xiàn)系統(tǒng)問題,定位問題原因。

      (4)數(shù)據(jù)智能分析

      發(fā)現(xiàn)潛在的系統(tǒng)問題,并向錯誤管理器發(fā)送報警信息。

      在下面的測試實(shí)例中,作者通過觀察總體的和關(guān)鍵進(jìn)程的內(nèi)存數(shù)據(jù)來判斷是否存在內(nèi)存泄漏問題。如果內(nèi)存使用大小在測試過程中隨時間增長,那么系統(tǒng)極有可能隱藏著內(nèi)存泄漏問題。

      為了模擬DIMETRA IP系統(tǒng)的真實(shí)應(yīng)用場景,測試步驟如下:

      (1)同時撥打60路對講機(jī)與電話通話,采集系統(tǒng)內(nèi)存信息;

      (2)每個通話將持續(xù)1 min;

      (3)取消所有的通話;

      (4)重復(fù)以上步驟多次;

      (5)比較這個過程中系統(tǒng)內(nèi)存使用情況。

      首先EPO工具繪制結(jié)果如圖5所示,顯示了系統(tǒng)級的內(nèi)存消耗。可以發(fā)現(xiàn)系統(tǒng)的內(nèi)存消耗持續(xù)增加,系統(tǒng)出現(xiàn)了明顯的內(nèi)存泄漏。

      圖5 系統(tǒng)級測試結(jié)果

      在呼叫期間作為系統(tǒng)的電話互聯(lián)網(wǎng)關(guān),MTIG成為測試重點(diǎn)。而作為其中的媒體網(wǎng)關(guān)MG會經(jīng)歷分配/釋放大量內(nèi)存的過程,作者將測試重點(diǎn)進(jìn)一步鎖定為MG(Mediagateway)。作者重復(fù)之前的測試步驟,通過Get?Mem工具采集進(jìn)程內(nèi)存信息,比較這個過程中媒體網(wǎng)關(guān)MG的內(nèi)存使用情況。

      圖6所示圖像顯示在約40 h內(nèi)MG物理內(nèi)存的變化。從圖6中可以看到MG的物理內(nèi)存持續(xù)增長,發(fā)生了明顯的內(nèi)存泄漏。

      圖6 進(jìn)程級測試結(jié)果

      經(jīng)過測試發(fā)現(xiàn)MG這個進(jìn)程不僅在通話結(jié)束后并不返回到原來的內(nèi)存使用量,而且隨著時間推移仍然不斷增長。

      如果進(jìn)行較長時間的性能測試,就可能檢測到微小的內(nèi)存泄漏。通過這個新方法可以監(jiān)控所有進(jìn)程中潛在的內(nèi)存泄漏風(fēng)險。在另一個測試實(shí)例中通過這個新方法經(jīng)過長達(dá)12天的連續(xù)測試,發(fā)現(xiàn)系統(tǒng)虛擬內(nèi)存存在持續(xù)微小增長。進(jìn)而經(jīng)過長達(dá)48天的超長時間連續(xù)測試定位到是MTIG中CMA進(jìn)程存在內(nèi)存泄漏,如圖7所示。

      由此可見用該方法進(jìn)行內(nèi)存性能測試很有效。適當(dāng)?shù)臏y試場景和工具能大大地提高測試效率。

      檢測到內(nèi)存泄漏之后,可以選擇通過使用Val?grind,Mtrace或Klockwork等工具來幫助定位引起內(nèi)存泄漏的代碼段并解決該問題[9]。圖8是內(nèi)存泄漏問題解決后1個月內(nèi)存使用情況,可以看出內(nèi)存保持穩(wěn)定。

      圖7 長期測試結(jié)果

      3 結(jié)論

      本文測試實(shí)踐表明,根據(jù)具體的測試目的和環(huán)境,可以靈活地選擇測試方法進(jìn)行內(nèi)存性能測試。

      測試人員可為新功能設(shè)計(jì)并執(zhí)行專用的性能測試來發(fā)現(xiàn)潛在的內(nèi)存泄漏問題。并且在負(fù)載較大情況下運(yùn)行長期試驗(yàn)以查看是否有任何明顯的或者是細(xì)微的內(nèi)存泄漏[10]。

      總之,該新方法在測試工作中已被證明是可行的和非常有益的。測試人員可以根據(jù)自身情況使用和部署。

      [1]HU Yue,WANG Yue?dong.Process?level virtual machine em?bedded chain mode memory management method[C]//2011 In?ternational Conference on Computer Science and Network Tech?nology(ICCSNT).[S.l.]:[s.n.],2011,1:302?305.

      [2]WUYTACK S,DA SILVA J L,Jr.,CATTHOOR F,et al. Memory management for embedded network applications[J]. IEEE Transactions on Computer?Aided Design of Integrated Cir?cuits and Systems,1999,18(5):533?544.

      [3]CHENG Xiao?hui,GONG You?min,WANG Xin?zheng.Study of embedded operating system memory management[C]//ETCS′09First International Workshop on Education Technology and Computer Science.[S.l.]:IEEE,2009,3:962?965.

      [4]SHAHRIAR H,NORTH S,MAWANGI E.Testing of memory leak in android applications[C]//2014 IEEE 15th International Symposium on High?Assurance Systems Engineering(HASE). [S.l.]:IEEE,2014:176?183.

      [5]NI Qin?qin,SUN Wei?zhen,MA Sen.Memory leak detection in sun solaris OS[C]//ISCSCT′08.International Symposium on Computer Science and Computational Technology.[S.l.]:IEEE,2008,2:703?707.

      [6]CARROZZA G,COTRONEO D,NATELLA R,et al.An ex?periment in memory leak analysis with a mission?critical mid?dleware for air traffic control[C]//IEEE International Confer?ence on Software Reliability Engineering Workshops.[S.l.]:IEEE,2008:1?6.

      [7]MORAES R L O,DURAES J,BARBOSA R,et al.Experi?mental risk assessment and comparison using software fault in?jection[C]//Proceedings of the 37th International Conference on Dependable Systems and Networks(DSN).[S.l.]:[s.n.],2007:111?120.

      [8]CHEREM S,PRINCEHOUSE L,RUGINA R.Practical memo?ry leak detection using guarded value?flow analysis[C]//Pro?ceedings of the 2007 ACM SIGPLAN Conference on Program?ming Language Design and Implementation(PLDI).[S.l.]:ACM,2007:22?28.

      [9]XU G,ROUNTEV A.Precise memory leak detection for Java software using container profiling[C]//Proceedings of the 30th International Conference on Software Engineering(ICSE).[S. l.]:[s.n.],2008:123?129.

      [10]MAJI A,ARSHAD F,BAGCHI S,et al.An empirical study of the robustness of inter?component communication in An?droid[C]//Proceedings of the 42nd Annual IEEE International Conference on Dependable Systems and Networks(DSN).[S.l.]:IEEE,2012:1?12.

      A new gateway memory testing method for digital trunking telecommunication system

      DONG Xin
      (Motorola Solutions Chengdu Design Center,Chengdu 611731,China)

      The DIMETRA IP system is a public security digital trunking communications system that provides radio users with voice and data services over a very wide geographical area.The Motorola telephone interconnect gateway(MTIG)acts as a gateway in the telephone interconnect architecture and provides voice trans?coding between the external PABX and the DIME?TRA IP system.As its vital role in connecting customer′s telephone system and digital radio system,it is important to investi?gate and verify suitable and sustainable memory consumption of MTIG.This paper introduces an original method to support sys?tem level,process level and longevity test to detect MTIG memory leakage.Test practices prove that this measure can save testing efforts and improve productivity.It is innovative to expedite and ease MTIG memory performance testing.Also it has been proven to be workable and very beneficial,and deserves the promotion and deployment.

      digital trunking communication;telephone interconnect gateway;performance test;memory leak

      TN911?34

      A

      1004?373X(2015)07?0034?05

      董昕(1979—),女,江蘇宿遷人,工程師,碩士。主要研究方向?yàn)榍度胧较到y(tǒng)開發(fā)及測試。

      2014?10?13

      猜你喜歡
      測試方法進(jìn)程內(nèi)存
      基于泊松對相關(guān)的偽隨機(jī)數(shù)發(fā)生器的統(tǒng)計(jì)測試方法
      外部高速緩存與非易失內(nèi)存結(jié)合的混合內(nèi)存體系結(jié)構(gòu)特性評測
      債券市場對外開放的進(jìn)程與展望
      基于云計(jì)算的軟件自動化測試方法
      DLD-100C型雷達(dá)測試方法和應(yīng)用
      “春夏秋冬”的內(nèi)存
      對改良的三種最小抑菌濃度測試方法的探討
      社會進(jìn)程中的新聞學(xué)探尋
      基于內(nèi)存的地理信息訪問技術(shù)
      我國高等教育改革進(jìn)程與反思
      文昌市| 新乐市| 章丘市| 磐石市| 南涧| 依兰县| 伊宁县| 瓮安县| 牡丹江市| 东丽区| 常熟市| 宕昌县| 将乐县| 虎林市| 合水县| 泗洪县| 锦屏县| 洪雅县| 南开区| 甘泉县| 呼和浩特市| 定安县| 静海县| 乌审旗| 民乐县| 财经| 饶河县| 南丹县| 绥阳县| 绥芬河市| 平果县| 宜阳县| 铜鼓县| 辽中县| 竹北市| 五指山市| 江达县| 边坝县| 富宁县| 浦东新区| 饶平县|