国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

小研究 - J2EE 應用服務器的軟件老化測試研究

這篇具有很好參考價值的文章主要介紹了小研究 - J2EE 應用服務器的軟件老化測試研究。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

軟件老化現(xiàn)象是影響軟件可靠性的重要因素,長期運行的軟件系統(tǒng)存在軟件老化現(xiàn)象,這將影響整個業(yè)務系統(tǒng)的正常運行,給企事業(yè)單位帶來無可估量的經(jīng)濟損失。軟件老化出現(xiàn)的主要原因是操作系統(tǒng)資源消耗殆盡,導致應用系統(tǒng)的性能下降甚至崩潰或宕機。文中監(jiān)測J2EE 應用服務器系統(tǒng)資源的使用情況,考慮外界的負載變化,檢測系統(tǒng)中軟件老化現(xiàn)象,分析系統(tǒng)資源消耗何時達到臨界值,從而幫助軟件工程人員及時采取預維護手段,預防運行時系中重大故障的發(fā)生。

目錄

1? 引 言

2? J2EE 應用服務器老化測試和分析

2.1? 實驗環(huán)境

2.2? J2EE 應用服務器的老化測試

3? 結(jié)束語


1? 引 言

大型軟件系統(tǒng)在持續(xù)平穩(wěn)運行一段時間之后,系統(tǒng)資源大量消耗,服務性能和質(zhì)量下降甚至掛起或宕機,稱為軟件老化現(xiàn)象。軟件老化可能造成安全關(guān)鍵系統(tǒng)的重大損失,甚至人員傷亡。引起軟件老化的原因有內(nèi)存泄漏、各種類型的邏輯錯誤、致命的安全缺陷、死鎖、狀態(tài)沖突等。

目前,很多計算系統(tǒng)中已經(jīng)檢測到軟件老化現(xiàn)象。文件系統(tǒng)中存在軟件老化現(xiàn)象,發(fā)現(xiàn)存儲空間碎片較多的文件系統(tǒng)存取吞吐量較正常情況下降低 40%。文獻中,第一次提出了基于測量方法估測軟件老化情況,首先監(jiān)測導致系統(tǒng)低效或宕機的資源,如內(nèi)存使用、交換區(qū)使用、CPU 占用率、空閑通信通道等,然后用統(tǒng)計學模型估算和驗證軟件老化,根據(jù)不同的策略決定是否及何時進行軟件維護。文獻中,采用統(tǒng)計模式識別方法,檢測在線事務處理服務器系統(tǒng)中的軟件老化現(xiàn)象。文中,以響應時間和響應率為系統(tǒng)性能的衡量依據(jù),考慮負載變化因素,提出 Web 服務器系統(tǒng)中軟件老化的檢測方法。文獻中,通過收集 Apache Web 服務器中對換區(qū)數(shù)據(jù)、內(nèi)存使用量以及響應時間等信息,利用非參數(shù)統(tǒng)計學方法進行老化預測。通過收集 Web 服務器中的資源使用參數(shù),發(fā)現(xiàn)系統(tǒng)性能逐步下降,然后計算系統(tǒng)平均負載時間序列的最大李亞普諾夫指數(shù),證明系統(tǒng)的老化現(xiàn)象具有混沌性。針對 SunHotSpot Java 虛擬機系統(tǒng),考察系統(tǒng)負載對老化的影響以及系統(tǒng)內(nèi)存資源和吞吐量的變化,采用統(tǒng)計分析的方法評估系統(tǒng)的老化趨勢。一種基于AOP(Aspect - Oriented Programming)技術(shù)的系統(tǒng)性能監(jiān)測機制,通過監(jiān)測服務器系統(tǒng)中每個組件的資源使用情況,從而分析判定引起軟件老化的組件。文獻分析并研究云計算系統(tǒng)中存在軟件老化現(xiàn)象的影響因素,通過監(jiān)測系統(tǒng)虛擬內(nèi)存和物理內(nèi)存的使用情況,發(fā)現(xiàn)系統(tǒng)內(nèi)存資源逐漸消耗、CPU 占有量逐步增加,并且系統(tǒng)響應時間隨之增長。此外,常用軟件如Netscape 和 XRN 中也存在軟件老化現(xiàn)象。

2 J2EE 架構(gòu)的應用服務器系統(tǒng)

應用服務器是中間件最大的一個分支,其基于組件的中間層集成框架,為組件的運行提供運行時環(huán)境、基礎服務和管理等功能。應用服務器位于企業(yè)應用與操作系統(tǒng)之間,屏蔽底層操作系統(tǒng)、網(wǎng)絡以及數(shù)據(jù)庫的異構(gòu)性和復雜性,通過組件容器方式提供應用部署、運行平臺。圖 1 是一個基于 J2EE 平臺的應用服務器結(jié)構(gòu)示意圖??蛻舳讼驊梅掌鞫颂峤环照埱?,負載分配器根據(jù)服務請求的類型分配到合適的 HTTP 服務器上,然后將服務請求轉(zhuǎn)交給應用服務器上,該應用服務器查詢數(shù)據(jù)庫,分析處理服務請求后將結(jié)果返回給客戶端。J2EE 架構(gòu)的應用服務器建立在 JVM(Java虛擬機)之上,JVM 的內(nèi)存泄露是導致應用服務器老化的一個重要原因,因此需要對 JVM 的內(nèi)存管理與內(nèi)存泄漏進行分析。

小研究 - J2EE 應用服務器的軟件老化測試研究,# 小研報,hadoop,大數(shù)據(jù),分布式,應用服務器,軟件老化,軟件可靠性

JVM 內(nèi)存區(qū)域,也叫運行時數(shù)據(jù)區(qū),分為方法區(qū)、堆、棧、寄存器、本地碼棧,在 JVM 運行程序時,存儲字節(jié)碼、對象、參數(shù)、返回值局部變量以及中間結(jié)果等數(shù)據(jù)。內(nèi)存堆用來存放 Java 程序運行時創(chuàng)建的類實例或數(shù)組。每個虛擬機實例中只存在一個堆空間。JVM可以為新對象分配內(nèi)存,但釋放內(nèi)存的任務由垃圾回收機制完成。垃圾回收機制回收不再被引用的無用對象,即當一個對象不再被引用的時候,內(nèi)存回收它占用的空間,以便騰出空間被后來的新對象使用。但是有些可達的無用對象也可能成為不能回收的垃圾對象,如圖 2 所示,垃圾回收機制這種潛在的缺陷造成內(nèi)存泄漏的出現(xiàn)。

小研究 - J2EE 應用服務器的軟件老化測試研究,# 小研報,hadoop,大數(shù)據(jù),分布式,應用服務器,軟件老化,軟件可靠性

內(nèi)存泄漏問題如果不加解決,隨著時間的積累,造成 JVM 的內(nèi)存使用量的持續(xù)增加,當 JVM 內(nèi)存使用達到其最大堆棧大小時,JVM 自動的垃圾回收機制會進行垃圾收集。但每次執(zhí)行垃圾收集后,無用對象所占的內(nèi)存釋放的百分比相對較小,最終會導致 JVM 連續(xù)地進行垃圾回收,占用大量的 CPU 時間,即 CPU 使用率持續(xù)增加。而系統(tǒng)資源是有限的,JVM 內(nèi)存和 CPU使用率持續(xù)增加,最終將導致系統(tǒng)低效或宕機等老化現(xiàn)象。因此,需要專門的工具來實現(xiàn) JVM 內(nèi)存監(jiān)測,提取內(nèi)存相關(guān)信息,程序開發(fā)者能比較容易地判斷程序是否有內(nèi)存泄漏及其產(chǎn)生的原由,從而更好地進行軟件老化現(xiàn)象的分析。

2? J2EE 應用服務器老化測試和分析

2.1? 實驗環(huán)境

測試的實驗環(huán)境包括 J2EE 應用服務器和數(shù)據(jù)庫服務器,運行在同一個局域網(wǎng)內(nèi),通過 100 Mbps 局域網(wǎng)連接,每個機器的配置為 P4 2. 4 G Intel CPU,運行環(huán)境采用 Sun JDK Hotspot 1. 4. 1_02 - b06。測試時首先在 IBM 的應用服務器 Websphere Application Server5. 1 上部署測試用例 Petstore 1. 3. 1 - 02,同時模擬多用戶請求的應用客戶端遠程調(diào)用 EJB 模塊中業(yè)務邏輯方法,業(yè)務邏輯方法包括了對數(shù)據(jù)庫服務器中的數(shù)據(jù)的增加、刪除、更新等操作,數(shù)據(jù)庫系統(tǒng)是 IBM 的CloudScape4. 0??蛻舳素撦d發(fā)生器開始發(fā)送 SOAP/HTTP 服務請求時,在客戶端實時地記錄響應時間等系統(tǒng)性能參數(shù)信息,同時激活服務器端 Tivoli 性能查看器,記錄應用服務器動態(tài)參數(shù),基本的調(diào)用過程如圖3 所示。負載發(fā)生器盡量模擬用戶真實情況,采用一個星期為一個周期的形式,區(qū)分實際情況工作日和休息日的各個時段負載密度不同,模擬客戶在某個小時間段內(nèi)服從泊松分布,產(chǎn)生泊松序列的種子可自己設定。

小研究 - J2EE 應用服務器的軟件老化測試研究,# 小研報,hadoop,大數(shù)據(jù),分布式,應用服務器,軟件老化,軟件可靠性

數(shù)據(jù)采集工具使用 WAS 自帶的 Tivoli 性能查看器(Tivoli Performance Viewer),它可以監(jiān)控系統(tǒng)資源的使用情況,也可以從 WAS 內(nèi)部獲取 J2EE 架構(gòu)的服務器中相關(guān)參數(shù)。采集的數(shù)據(jù)來自四個模塊:JVM 運行時模塊,提取 JVM 內(nèi)存的總大小和使用內(nèi)存的大小;系統(tǒng)數(shù)據(jù)模塊,提取 CPU 使用率和系統(tǒng)可用內(nèi)存;Web 線程模塊,提取創(chuàng)建的線程總數(shù)、破壞的線程總數(shù)、并發(fā)活動的線程數(shù)及線程池的大小;事務管理器,提取開始的全局事務、活動的全局事務、全局事務持續(xù)時間及全局事務回滾等。其中,JVM 運行時模塊和系統(tǒng)數(shù)據(jù)模塊是最為重要的兩個模塊。Tivoli 性能查看器和 WAS 同時運行在應用服務器上,占用系統(tǒng)部分資源,采用這種方法得到的老化預測模型實際上是數(shù)據(jù)采集軟件和 J2EE 應用服務器的老化現(xiàn)象疊加。由于Tivoli 性能查看器占用的系統(tǒng)資源很少,影響程度可以忽略,可把結(jié)果看作是 J2EE 應用服務器老化的結(jié)果。

2.2? J2EE 應用服務器的老化測試

為了測試 J2EE 應用服務器中是否存在軟件老化現(xiàn)象,分析導致應用服務器老化的原因,設計了不同強度的負載情況,監(jiān)測應用服務器的運行時參數(shù)情況,并進行老化分析。這里,單位時間發(fā)送請求的數(shù)量和平均服務持續(xù)時間是影響負載強度的兩個重要因素。應用服務器的負載峰值是指應用服務器在單位時間內(nèi)能夠響應的最大用戶數(shù)量。首先在較短周期內(nèi)向服務器發(fā)送等值強度的請求任務,同時在客戶端記錄響應時間等參數(shù)信息,若客戶端的請求全部得到響應,則增加負載強度,直到出現(xiàn)應用服務器無法響應所有請求時停止,此時的負載強度即為負載峰值。在老化測試時,根據(jù)服務器負載峰值設計發(fā)送請求的負載強度。

1)重負載測試。

重負載測試中,平均負載強度設定為負載峰值的30%,其中負載任務高峰期時的負載強度設定為負載峰值的 50%。JVM 內(nèi)存使用量的初始大小為 128 M,最大值為 256 M。如圖 4 所示,隨著系統(tǒng)運行時間的推移,應用服務器系統(tǒng)內(nèi)存使用量逐步增加,最終系統(tǒng)在運行 43 小時后,JVM 內(nèi)存使用量臨近 256 MB,導致JVM 內(nèi)存資源不足而出現(xiàn)宕機,此時系統(tǒng)無法響應客戶端請求。圖 4 中內(nèi)存使用量變化呈鋸齒狀,是 JVM垃圾回收機制作用的結(jié)果,當可用內(nèi)存出現(xiàn)暫時不足,不能滿足程序的內(nèi)存需求時,系統(tǒng)將自動調(diào)用垃圾回收機制,釋放更多的可用內(nèi)存空間。然而,隨著應用服務器的長期運行,其性能不斷下降,JVM 自動內(nèi)存管理機制所起的作用越來越小,最終導致系統(tǒng)宕機。

為驗證應用服務器是否存在老化現(xiàn)象,即系統(tǒng)性能是否隨時間的推移而緩慢下降,采用一元線性回歸方法,分析 JVM 內(nèi)存使用量 Y(單位:kB)和應用服務器運行時間 X(單位:min)的關(guān)系,得到式(1)描述的擬合直線方程。

Y = 25.852 7*X + 137 920 (1)

小研究 - J2EE 應用服務器的軟件老化測試研究,# 小研報,hadoop,大數(shù)據(jù),分布式,應用服務器,軟件老化,軟件可靠性

式(1)中回歸直線的斜率為正,表示 JVM 內(nèi)存使用量隨著應用服務器運行時間的推移而增加,應用服務器存在老化現(xiàn)象。

2)輕負載測試。

輕負載測試中,平均負載強度和負載任務高峰期時的負載強度都設定為重負載測試中的 20%。應用服務器 JVM 內(nèi)存使用情況如圖 5 所示。

小研究 - J2EE 應用服務器的軟件老化測試研究,# 小研報,hadoop,大數(shù)據(jù),分布式,應用服務器,軟件老化,軟件可靠性

圖 5 輕負載情況下應用服務器 JVM 內(nèi)存使用量從圖中可以看出,與重負載老化測試時情況相似,JVM 內(nèi)存使用占250 M 左右時,應用服務器宕機,無法響應客戶端請求,此時系統(tǒng)運行 140 小時。可得到內(nèi)存使用量與服務器運行時間的一元線性關(guān)系式:

Y =11.736 5 * X +139 380 (2)

式(2)中回歸直線的斜率為正,意味著內(nèi)存耗盡引起服務器系統(tǒng)出現(xiàn)軟件老化。此外,輕負載老化測試中負載強度減少,應用服務器運行時間增加三倍,可見負載強度是影響軟件老化的主要因素。

3)延長平均服務持續(xù)時間的老化測試。此次老化測試中,平均服務持續(xù)時間為原來的六倍,且單位時間內(nèi)發(fā)送請求的數(shù)量與輕負載測試中相同。應用服務器 JVM 內(nèi)存使用情況如圖 6 所示。

小研究 - J2EE 應用服務器的軟件老化測試研究,# 小研報,hadoop,大數(shù)據(jù),分布式,應用服務器,軟件老化,軟件可靠性

與前兩種老化測試情況相同,JVM 內(nèi)存使用量在250 M 左右時,應用服務器系統(tǒng)運行 8 小時后宕機,此時系統(tǒng)無法響應客戶端請求。JVM 內(nèi)存使用量與應用服務器運行時間的一元線性關(guān)系如式(3)。

Y =174.847 2 * X + 160 260 (3)

式(3)中回歸直線的斜率為正,且斜率較上述兩種情況增幅較大。這是因為延長服務持續(xù)時間,意味著應用服務器中 EJB 容器需為用戶較長時間保留系統(tǒng)資源,這將加速耗盡應用服務器的系統(tǒng)資源,從而加快軟件老化速度。

3? 結(jié)束語

文中監(jiān)測 J2EE 應用服務器系統(tǒng)中的資源使用情況,考慮外界負載變化,收集系統(tǒng)資源消耗的數(shù)據(jù),檢測系統(tǒng)的老化現(xiàn)象,分析系統(tǒng)資源消耗何時達到臨界值,以幫助軟件工程人員及時采取預維護手段,預防運行時系統(tǒng)中未來重大故障的發(fā)生。

下一步工作包括對系統(tǒng)老化機理和軟件再生隨機模型的研究。文章來源地址http://www.zghlxwxcb.cn/news/detail-676691.html

到了這里,關(guān)于小研究 - J2EE 應用服務器的軟件老化測試研究的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • J2EE&通用分頁02

    J2EE&通用分頁02

    目錄 一.重構(gòu)-提取公用方法???????? ? ?1.為了進行公共方法的抽取,需要找出上面實習中的可通用部分,和差異化部分 ? ? 2.公用方法封裝思路 ? ? ? 3.?具體實現(xiàn) 二.分頁標簽 2.1 準備一個Servlet ?3.2 結(jié)果展示頁面 三.?過濾器解決中文亂碼問題 四.加入分頁功能 四.封裝分

    2024年02月15日
    瀏覽(21)
  • J2EE&集合框架&Map

    J2EE&集合框架&Map

    目錄 一.Map特點 1.無序,鍵值對,鍵不能重復,值可以重復 2.鍵重復則覆蓋,沒有繼承Collection接口 二.遍歷方式 1.拿到key,再拿值2.拿到映射關(guān)系,鍵值都有??取出保存所有Entry的Set,再遍歷此Set即可 三.HashMap與Hashtable的區(qū)別 1.Hashtable更安全?2.JDK 1.8之前hashtable的key不能存放null

    2024年02月15日
    瀏覽(22)
  • J2EE&集合框架&set集合

    目錄 一.Set特點 特點:無序,不重復 思考:如果對List容器中的元素去重? 二.遍歷:foreach,迭代器 三.擴容: 初始容量16,負載因子0.75,擴容增量1倍 性能參數(shù):初始容量,負載因子 默認值: 初始容量16,負載因子0.75 示例:new HashSet(20, 0.5f); 四.HashSet 五.思考 1. 如何給Arra

    2024年02月13日
    瀏覽(31)
  • J2EE項目部署與發(fā)布(Windows版本)

    J2EE項目部署與發(fā)布(Windows版本)

    目錄 一、會議OA單體項目Windows部署 1.1 數(shù)據(jù)測試 1.2 項目部署 1.3 報錯解決 1.4 最終效果 二、spa前后端分離項目Windows部署 2.1 后端代碼測試 2.2 前端代碼測試 2.3 項目部署 2.3.1 數(shù)據(jù)導入 2.3.2 后端部署 2.3.3 前端部署 2.3.3.1 Node.js環(huán)境配置 2.3.4 端口問題解決 2.3.4.1 method1 2.3.4.2 meth

    2024年02月07日
    瀏覽(47)
  • J2EE項目部署與發(fā)布(Linux版本)

    J2EE項目部署與發(fā)布(Linux版本)

    目錄 一.jdktomcat安裝 1.jdk的安裝 ?1.2解壓對應的安裝包 1.3配置環(huán)境變量? 2.tomcat的安裝? 二.mysql的安裝 三.后端接口部署 ?后端部署 導入war包 修改端口? 開啟訪問 1.jdk的安裝 登錄VMware Workstation Pro 然后連接MobaXterm? ? ? 將 jdk tomcat mysql 導入到MobaXterm? ?1.2解壓對應的安裝包 ?

    2024年02月06日
    瀏覽(16)
  • J2EE自定義mvc【框架配置及功能】

    J2EE自定義mvc【框架配置及功能】

    目錄 一、配置步驟 二、配置框架前三步 導入相應的jar 導入相應的Class 導入xml文件 三、優(yōu)化基本操作(增刪改) 1、基礎優(yōu)化 編寫實體類 編寫B(tài)ookDao類 優(yōu)化BookDao JUnit測試 2、后臺優(yōu)化 3、前端優(yōu)化 將框架打成jar包,然后導入新工程,并且把框架的依賴jar包導入進去 將分頁標

    2024年02月12日
    瀏覽(23)
  • 虛擬機部署與發(fā)布J2EE項目(Linux版本)

    虛擬機部署與發(fā)布J2EE項目(Linux版本)

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 艷艷耶??:個人主頁 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 個人專欄 :《Spring與Mybatis集成整合》《Vue.js使用》 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 越努力 ,越幸

    2024年02月06日
    瀏覽(21)
  • J2EE,Java EE,Jakarta EE 命名之間的恩恩怨怨

    J2EE,Java EE,Jakarta EE 命名之間的恩恩怨怨

    ? 簡單來說,上面所有的名字指的都是一個東西 Java Platform, Enterprise Edition 上面的幾個名詞都是下面的內(nèi)容的簡寫: J2EE(Java 2 Platform, Enterprise Edition) Java EE (Java Platform, Enterprise Edition) Jakarta EE(Jakarta Enterprise Edition) 上面的排序是按照時間演進來進行排序。 ? 1998年12月,SUN公司發(fā)

    2023年04月26日
    瀏覽(24)
  • 14天學會:基于J2EE的JAVA WEB基礎

    14天學會:基于J2EE的JAVA WEB基礎

    手把手教你:基于Django的新聞文本分類可視化系統(tǒng)(文本分類由bert實現(xiàn)) 手把手教你:基于python的文本分類(sklearn-決策樹和隨機森林實現(xiàn)) 手把手教你:巖石樣本智能識別系統(tǒng) 本文通過一個14天的學習文檔教會大家學會 基于J2EE的JAVA WEB基礎 本次上傳的資源比較大,因此分

    2024年02月15日
    瀏覽(21)
  • 【Linux】虛擬機部署與發(fā)布J2EE項目(Windows版本)

    【Linux】虛擬機部署與發(fā)布J2EE項目(Windows版本)

    跨平臺性:Java虛擬機(JVM)提供了一個中間層,使得Java應用程序可以在不同的操作系統(tǒng)上運行,無需進行代碼修改。這意味著您可以使用一套Java代碼,在不同的硬件和操作系統(tǒng)上部署和運行應用程序。 安全性:Java虛擬機提供了安全管理機制,可以對Java應用程序的執(zhí)行過程

    2024年02月08日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包