苍井优一级毛片免费观看,成年网站在线观看,日本一二三不卡视频,日日天天人人夜夜九九

24小時(shí)論文定制熱線(xiàn)

熱門(mén)畢設:土木工程工程造價(jià)橋梁工程計算機javaasp機械機械手夾具單片機工廠(chǎng)供電采礦工程
您當前的位置:論文定制 > 畢業(yè)設計論文 >
快速導航
畢業(yè)論文定制
關(guān)于我們
我們是一家專(zhuān)業(yè)提供高質(zhì)量代做畢業(yè)設計的網(wǎng)站。2002年成立至今為眾多客戶(hù)提供大量畢業(yè)設計、論文定制等服務(wù),贏(yíng)得眾多客戶(hù)好評,因為專(zhuān)注,所以專(zhuān)業(yè)。寫(xiě)作老師大部分由全國211/958等高校的博士及碩士生設計,執筆,目前已為5000余位客戶(hù)解決了論文寫(xiě)作的難題。 秉承以用戶(hù)為中心,為用戶(hù)創(chuàng )造價(jià)值的理念,我站擁有無(wú)縫對接的售后服務(wù)體系,代做畢業(yè)設計完成后有專(zhuān)業(yè)的老師進(jìn)行一對一修改與完善,對有答辯需求的同學(xué)進(jìn)行一對一的輔導,為你順利畢業(yè)保駕護航
代做畢業(yè)設計
常見(jiàn)問(wèn)題

基于Web的Java應用性能監測系統

添加時(shí)間:2019/08/05 來(lái)源:南京大學(xué) 作者:陳婕妤
本項目是本人在eBay實(shí)習時(shí)期開(kāi)發(fā)為內部工作人員開(kāi)發(fā)的一款用于監測Java應用性能表現的工具。系統從實(shí)際需求出發(fā),測試和開(kāi)發(fā)人員需要遠程登錄到主機上使用命令行工具查看Java應用性能表現。
以下為本篇論文正文:

摘要

  隨著(zhù)互聯(lián)網(wǎng)時(shí)代的到來(lái),企業(yè)對于J2EE的應用越來(lái)越廣泛,同時(shí)用戶(hù)開(kāi)始意識到產(chǎn)品非功能性表現的重要性,應用的性能表現自然也受到了大家的關(guān)注,尤其是企業(yè)內部的產(chǎn)品開(kāi)發(fā)人員和測試人員。在eBay,為確保產(chǎn)品的各項指標運行正常,測試人員需要經(jīng)常登錄到遠程服務(wù)器上使用命令行工具去查看Java應用的當前性能表現,這是一件需要頻繁進(jìn)行又繁瑣的事情。因此,我們設計并實(shí)現了基于Web的Java應用性能監測系統。

  該系統使用程序來(lái)周期性代替用戶(hù)登錄到遠程主機上收集特定應用的性能數據,并將數據保存到數據庫,然后生成性能報表,最終以Web形式展示出來(lái)。

  本文對該系統進(jìn)行了設計與實(shí)現。系統分為控制臺子系統和監測子系統。控制臺子系統是負責為用戶(hù)提供界面的Web應用,用戶(hù)可yX在Web頁(yè)面上方便地對針對Java應用的性能監測任務(wù)進(jìn)行添加、刪除、修改、開(kāi)啟監測、停止監測等操作,同時(shí)還可以查看以圖表形式呈現出來(lái)的性能報表,子系統按照功能分為監測任務(wù)管理模塊和性能報表模塊。監測子系統是負責完成性能監測任務(wù)的Web服務(wù),對外提供監測任務(wù)管理RESTFUL API,按功能分為任務(wù)管理模塊、性能監測模塊、闊值告警模塊和郵件通知模塊,其中性能監測模塊是系統中的核屯、模塊,負責遠程性能數據的采集工作,并將結果存儲到數據庫中,閥值告警模塊通過(guò)分析性能數據是否超過(guò)闊值,為用戶(hù)提供告警,郵件通知模塊則可按照用戶(hù)設置的通知級別將性能監測結果、閩值告警信息或性能監測過(guò)程中發(fā)生的錯誤郵件的方式發(fā)送給用戶(hù)。控制臺子系統通過(guò)調用監測子系統提供的Web服務(wù)實(shí)現對外功能,不涉及具體業(yè)務(wù)邏輯的處理,所有業(yè)務(wù)邏輯由監測子系統實(shí)現。系統整體基于J2EE平臺,采用Spring boot框架、MongoDE數據庫實(shí)現,遠程數據采集模塊則基于Python Fabric實(shí)現,在技術(shù)上使用到了前端技術(shù)AJAX,后臺技術(shù) RESTful Web Service、多線(xiàn)程等。

  關(guān)鍵詞:性能監測、Java應用、Web服務(wù)、J2EE、Python Fabric

Abstract

  With the rapid development of network, more and more companies are used to using J2EE to develop web applications. Meanwhile more and more users are beginning to realize the importance of product non-functional performance. As a result, people paid more attendtion to application performance, espeacially those who delevelop and test applications. In eBay, to ensure the product is running normally, testers often need to log on a remote host to see the Java application performance by using command-line tools, which is frequent and tedious. Therefor, we designed and implemented a Java application

  performance monitoring system based on web to help user.

  The System will log on a remote host to collect performance data automatically and periodically for a specified Java application after it received a performance monitor request from user and save the data to database. User can see the performance reports from web page. This thesis describes how to design and implement the system. System is pided into two subsystems: monitor system and console system. Console subsystem is a web application and focused on providing user-friendly UI for user while monitor subsystem is a web service, which is responsible for monitoring java application performance. Based on the web pages provided by console subsystem, user can easily add, delete, edit, start and stop minotoring tasks for remote Java application. What's more, in console subsystem the performance result will be presented in the form of charts and tables which will be more intuitive and vivid.According to the functional module pision principle, console subystem is pided  into task management module and  performance reports module.  Monitor subsystem provides interface by RESTfuI API and includes task management module,performance-monitoring module, warning module and email notification module. The performance-monitoring module is critical in the system, which is responsible for data collection and persistent storage. Warning module sends warning to user when there is abnormal performance. Email notification module is in charge of sending emails to user according to user preference when the performance task completes or goes wrong or an warning rasies. Console subsystem does not process business logic and it implements the function by calling web service provided by monitor subsystem. Monitor subsystem takes charge of implementing business logic for system.System is developed by J2ee based on spring boot framework and uses MongoDB. However, remote data collection program is implemented by Python based on Fabric. AJAX, RESTfuI web service,multithreading and more technology is used when developing.

  Keywords:Performance monitoring, Java application, Web Service, J2EE, Python Fabric

 

  Java作為一款具有卓越的高效性、通用型、可移植性和安全性的程序設計語(yǔ)言,是目前使用人數最多、范圍最廣的軟件開(kāi)發(fā)技術(shù)之一,在企業(yè)中得到了廣泛的應用。eBay作為國內外知名的電子商務(wù)公司,在產(chǎn)品開(kāi)發(fā)上也將Java應用作為首選。本人實(shí)習所在的QSS Team作為一個(gè)測試團隊,在測試的過(guò)程中,不僅需要關(guān)注產(chǎn)品的功能屬性是否得到滿(mǎn)足,更要關(guān)注產(chǎn)品包括性能、安全性等在內的非功能性質(zhì)量屬性。在日常的測試工作中,我們常常需要了解一個(gè)產(chǎn)品在不同的Linux安裝環(huán)境下的性能表現,比如CPU是否過(guò)高,內存消耗是否過(guò)多等。

  目前,市面上針對Linux上的Java應用性能監測工具主要分為兩類(lèi),基于命令行的和提供可視化圖形接口的。命令行工具,顧名思義就是輸入Linux命令,然后顯示相關(guān)數據。由于一個(gè)完整運行的Linux系統的性能包括很多指標,如CPU, Memory, 10, Network等,而Linux的命令行工具通常只針對單個(gè)性能指標進(jìn)行監控和分析,所以用戶(hù)如果需要監控多個(gè)性能指標,往往需要用到多個(gè)工具。同時(shí),用戶(hù)輸入命令后,該工具只能顯示該系統在該指標上的當前的表現情況,如果用戶(hù)想要查該系統在一定時(shí)間內的表現或趨勢時(shí),就需要自己進(jìn)行結果的記錄和匯總,無(wú)法做到歷史數據的實(shí)時(shí)記錄和匯總分析。另一方面,命令行下的監測工具的結果都是以文本的形式展現出來(lái)的,不利于用戶(hù)進(jìn)行查看。相比命令行工具,基于Web或者提供圖形化接口的工具給用戶(hù)提供了一個(gè)直觀(guān)生動(dòng)的可視化的數據結果,但市面上流行的這些工具質(zhì)量參差不齊,往往需要進(jìn)行一系列的安裝和復雜的配置,學(xué)習成本過(guò)高。同命令行工具一樣,基于Web或者提供圖形的可視化的監測工具有的是針對單個(gè)指標,監測多個(gè)性能指標就需要使用多個(gè)工具,有的則包括多個(gè)指標,但這些工具的問(wèn)題在于,當他們支持的指標過(guò)多時(shí),如果用戶(hù)只關(guān)心其中的幾個(gè)指標的時(shí)候,他們不能支持用戶(hù)只選擇其中的一些結果進(jìn)行顯示,也就是說(shuō),用戶(hù)的定制化需求無(wú)法得到滿(mǎn)足。

  在這種情況下,又由于公司內部的服務(wù)器有著(zhù)嚴格的訪(fǎng)問(wèn)控制,只允許內部網(wǎng)絡(luò )進(jìn)行訪(fǎng)問(wèn),因此,已有的符合用戶(hù)要求的一些圖形化的或者基于Web的監測工具也無(wú)法完美地應用在企業(yè)內部。所以,通常來(lái)說(shuō),我們的工作人員會(huì )遠程登錄到主機上,使用linux下的命令行工具對Java應用按照特定的性能指標進(jìn)行監控和分析。正如本文面所分析的,這個(gè)過(guò)程將會(huì )需要用戶(hù)使用到多個(gè)工具,消耗一定的時(shí)間,同時(shí)要自己來(lái)記錄結果和匯總分析,數據的顯示也不利用查看分析,還要求用戶(hù)對這些工具有足夠了解,能夠熟練地應用。這對于絕大部分內部員工來(lái)說(shuō)是一件比較枯燥和耗費時(shí)間的事情。

  因此,我們決定開(kāi)發(fā)一個(gè)可視化的針對Linux上的Java應用的性能監測系統,該系統提供對cpu, memory, thread dump在內的性能指標的監測和分析,以Web的形式向用戶(hù)提供可交互的操作,用戶(hù)可以對遠程主機上的Java應用性能表現發(fā)起實(shí)時(shí)監測,我們的后臺系統將根據用戶(hù)的請求,基于SSH遠程登錄到對應主機上,使用相應的命令行工具來(lái)獲取數據文件并對這些文件進(jìn)行處理分析,最終在Web上將這些數據以圖表這種生動(dòng)直觀(guān)的形式展示給用戶(hù)。

  對操作系統和應用程序的性能進(jìn)行監控是軟件維護過(guò)程的一個(gè)重要環(huán)節。導致操作系統和應用程序性能低下甚至崩潰的一個(gè)重要原因就是系統資源耗盡[Garg e1 al., 1998],而對操作系統和應用程序運行狀態(tài)的實(shí)時(shí)監控可及早發(fā)現和定位軟件的性能問(wèn)題,以指導軟件后續維護過(guò)程中的性能優(yōu)化和錯誤修復。

  性能監控的一般方法是采集操作系統和應用程序運行時(shí)數據,并對采集到的原始數據進(jìn)行處理和分析,最終得到一個(gè)可讀的性能報告,以此評估軟件的運行時(shí)性能。一般來(lái)說(shuō),一個(gè)通用的監控系統需要采集的原始數據包括操作系統和應用程序的CPU、內存、磁盤(pán)和網(wǎng)絡(luò )性能數據針對特定應用程序的性能監控可能會(huì )側重于采集某些運行時(shí)數據,并對這些原始數據有特定的分析方法。

  現階段針對操作系統的性能監控一般有兩種方式。一是使用系統提供的性能監控工具獲取操作系統和進(jìn)程的運行時(shí)信息。目前成熟的操作系統都提供了一套現成的工具供用戶(hù)查看系統和進(jìn)程的運行信息。Windows系統的“性能監視器”

  應用可以查看操作系統和每個(gè)進(jìn)程的CPU占用、內存使用詳情、網(wǎng)絡(luò )和磁盤(pán)占用、己打開(kāi)的句柄等信息。Linux則提供了一系列的工具用來(lái)獲取系統和進(jìn)程的運行信息,例如使用top工具獲取處理器信息,使用iostat工具獲取磁盤(pán)10信息,使用vmstat工具獲取內存信息。這些工具往往都是系統提供,開(kāi)箱即用,方便維護人員對部署在特定設備的軟件進(jìn)行監控。使用系統自帶的性能監控工具的弊端是難以在這些工具基礎上進(jìn)行二次開(kāi)發(fā),進(jìn)行后續數據處理分析的成本較高。二是使用操作系統提供的編程接口獲取統和進(jìn)程的運行時(shí)信息。以L(fǎng)inux為例,lproc偽文件系統為開(kāi)發(fā)者提供了系統的運行信息,例如可以從/proc/stat文件讀出當前的CPU的運行信息。這些獲取系統運行信息的編程接口是性能監控技術(shù)發(fā)展的基礎,使開(kāi)發(fā)者能夠實(shí)現功能更強大性能監控軟件。

  針對特定應用程序的性能監控,不同于操作系統級別的性能監控,能夠針對應用本身提供更多的定制化性能信息。以本文關(guān)注的Java應用為例,目前已經(jīng)有一系列用來(lái)分析性能的工具。例如隨jdk一同發(fā)布的工具jmap和jh即可以用來(lái)分析進(jìn)程內存中的堆棧信息,同樣jdk提供的工具JConsole則可以長(cháng)時(shí)間采集、分析和統計Java進(jìn)程的對象、堆棧、線(xiàn)程等關(guān)鍵運行信息,并實(shí)時(shí)繪制出圖表供用戶(hù)參考。

  針對特定應用程序性能監控的一個(gè)特點(diǎn)是技術(shù)最先進(jìn)的監控軟件往往是該應用程序的開(kāi)發(fā)者自己發(fā)布的。由于我國基礎應用軟件起步較晚,操作系統、數據庫及應用服務(wù)器等基礎應用軟件幾乎都依賴(lài)國外產(chǎn)品,所以針對這些軟件的監控管理軟件發(fā)展也比較落后。這方面國內外的差距正在縮小,例如國內開(kāi)發(fā)者發(fā)布的J FoxMX工具,完整實(shí)現SUN JMX 1.2規范的,同時(shí)具有工作負荷小,效率高的特性。

  隨著(zhù)分布式計算和云計算的興起,傳統的程序性能監控方式已經(jīng)漸漸不能滿(mǎn)足軟件維護需求。將集群監控技術(shù)引入云平臺可以有效提高云平臺可靠性和服務(wù)質(zhì)量。這方面國外已經(jīng)很多成功的產(chǎn)品。如美國洛斯阿拉莫斯國家高級計算機實(shí)驗室開(kāi)發(fā)的集群監控系統Supermon,由一個(gè)中心節點(diǎn)和多個(gè)數據采集節點(diǎn)組成。

  數據采集節點(diǎn)負責采集數據,中心節點(diǎn)負責匯總數據并進(jìn)行后續處理。

  Supermon的中心節點(diǎn)記錄了數據采集節點(diǎn)的信息,所以這套系統安逸動(dòng)態(tài)添加數據采集節點(diǎn)。但是由于系統中只有一個(gè)中心節點(diǎn),系統性能隨系統規模線(xiàn)性下降。

基于Web的Java應用性能監測系統:

任務(wù)管理模塊詳細類(lèi)圖
任務(wù)管理模塊詳細類(lèi)圖

郵件實(shí)例
郵件實(shí)例

添加監測任務(wù)頁(yè)面
添加監測任務(wù)頁(yè)面

修改監測任務(wù)頁(yè)面
修改監測任務(wù)頁(yè)面

查看監測任務(wù)頁(yè)面
查看監測任務(wù)頁(yè)面

查找監測作業(yè)頁(yè)面
查找監測作業(yè)頁(yè)面

目錄

  摘要
  Abstract
  圖目錄
  表目錄
  第一章 引言
    1.1 項目背景
    1.2 性能監測工具發(fā)展現狀
    1.3 本文的組織結構
  第二章 技術(shù)綜述
    2.1 開(kāi)發(fā)技術(shù)
      2.1.1 RSETful Web Service
      2.1.2 Python Fabric
      2.1.3 Ajax
      2.1.4 Spring Boot
      2.1.5 MongoDB
    2.2 性能監測工具
      2.2.1 Top
      2.2.2 Jstack
    2.3 本章小結
  第三章 系統的分析與設計
    3.1 項目總體概述
    3.2 系統需求分析
      3.2.1 功能需求
      3.2.2 非功能需求
    3.3 系統總體設計
      3.3.1 總體結構
      3.3.2 監測子系統設計
      3.3.3 控制臺子系統設計
      3.3.4 數據庫設計
    3.4 Web服務(wù)對外API的設計
      3.4.1 監測任務(wù)管理APl
      3.4.2 啟停性能監測API
    3.5 性能監測模塊的設計
      3.5.1 總體設計
      3.5.2 數據采集模塊的設計
      3.5.3 遠程控制模塊的設計
      3.5.4 任務(wù)調度模塊的設計
    3.6 本章小結
  第四章 系統的實(shí)現
    4.1 監測子系統的實(shí)現
      4.1.1 任務(wù)管理的實(shí)現
      4.1.2 性能監測的實(shí)現
      4.1.3 閡值告警的實(shí)現
      4.1.4 郵件通知的實(shí)現
      4.1.5 運行截圖
    4.2 控制臺子系統的實(shí)現
      4.2.1 任務(wù)管理的實(shí)現
      4.2.2 性能報表的實(shí)現
      4.2.3 運行截圖
    4.3 本章小結
  第五章 總結與展望
    5.1 總結
    5.2 工作展望
  參考文獻
  致謝
  版權及論文原創(chuàng )性說(shuō)明

(如您需要查看本篇畢業(yè)設計全文,請您聯(lián)系客服索取)

相關(guān)內容
相關(guān)標簽:Java畢業(yè)設計
好優(yōu)論文定制中心主要為您提供代做畢業(yè)設計及各專(zhuān)業(yè)畢業(yè)論文寫(xiě)作輔導服務(wù)。 網(wǎng)站地圖
所有論文、資料均源于網(wǎng)上的共享資源以及一些期刊雜志,所有論文僅免費供網(wǎng)友間相互學(xué)習交流之用,請特別注意勿做其他非法用途。
如有侵犯您的版權或其他有損您利益的行為,請聯(lián)系指出,論文定制中心會(huì )立即進(jìn)行改正或刪除有關(guān)內容!