电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

聊聊企業(yè)級 Java 應(yīng)用最重要的4個性能指標(biāo)

瀏覽:82日期:2022-09-06 08:26:23
 1.商業(yè)事務(wù)

商業(yè)事務(wù)是真實(shí)用戶體驗(yàn)的直觀反映:它們抓取了用戶與應(yīng)用交互時,用戶體驗(yàn)到的實(shí)時性能數(shù)據(jù)。測量商業(yè)事務(wù)的性能,需要抓取一件商業(yè)事務(wù)整體的響應(yīng)時間及其各個組件的響應(yīng)時間。這些響應(yīng)時間再與滿足業(yè)務(wù)需求的基準(zhǔn)進(jìn)行比較,從而決定應(yīng)用是否正常。

聊聊企業(yè)級 Java 應(yīng)用最重要的4個性能指標(biāo)

如果你只打算測量應(yīng)用的一個方面,本文會推薦你測量商業(yè)事務(wù)的表現(xiàn)。盡管容量指標(biāo)(container metrics)能幫助你決定何時調(diào)節(jié)集群規(guī)模,但是商業(yè)事務(wù)才決定了應(yīng)用本身的性能。你無需詢問應(yīng)用服務(wù)器線程池(thread pool)的使用情況,而是關(guān)心用戶能否迅速完成他們的商業(yè)事務(wù),以及這些事務(wù)的表現(xiàn)是否正常。

介紹一點(diǎn)背景知識:商業(yè)事務(wù)通過其入口進(jìn)行辨別,即用戶與你的業(yè)務(wù)進(jìn)行互動的入口。這類互動包括:一個網(wǎng)頁請求,一個網(wǎng)頁服務(wù)調(diào)用,或消息隊列中的一條消息。當(dāng)然,你也可以基于一個 URL 參數(shù)為同樣的網(wǎng)頁請求定義多個入口,或基于一個服務(wù)調(diào)用的內(nèi)容定義多個入口點(diǎn)。關(guān)鍵在于:商業(yè)交易必須與對你的業(yè)務(wù)流程相關(guān)聯(lián),比如說中國移動的空中繳費(fèi)業(yè)務(wù)對應(yīng)到系統(tǒng)中是多個原子服務(wù),我們就應(yīng)該將這幾個原子服務(wù)通過相應(yīng)的關(guān)聯(lián)聚合成一個空中繳費(fèi)業(yè)務(wù)來進(jìn)行監(jiān)控。

辨別某個商業(yè)交易后,它的性能就會在整個應(yīng)用生態(tài)系統(tǒng)中進(jìn)行測量。每個商業(yè)交易的性能會與其基準(zhǔn)進(jìn)行比較,判定其是否正常。譬如,如果某個商業(yè)事務(wù)的響應(yīng)時間大于您設(shè)定的閾值,我們便判定其運(yùn)行異常。

總而言之,商業(yè)事務(wù)最能反映用戶體驗(yàn),因此它們也是最重要的抓取維度。

 2.外部服務(wù)

外部服務(wù)的形式多種多樣:從屬的網(wǎng)頁服務(wù)、遺留系統(tǒng)或數(shù)據(jù)庫等。外部服務(wù)是與應(yīng)用交互的系統(tǒng)。運(yùn)行在外部服務(wù)系統(tǒng)中的代碼常常無法控制,但是我們可以控制這些系統(tǒng)的配置,因此了解他們是否運(yùn)行正常以及何時出錯也很重要。并且,我們必須有能力區(qū)分問題是出自自身應(yīng)用,還是源于這些外部服務(wù)系統(tǒng)。

聊聊企業(yè)級 Java 應(yīng)用最重要的4個性能指標(biāo)

從商業(yè)事務(wù)的角度來說,我們可以辨別并測量這些處于自身應(yīng)用的外部服務(wù)。有時,我們需要配置監(jiān)控方法從而辨別那些包裹了外部服務(wù)調(diào)用的方法。但是對于常見的協(xié)議,諸如 HTTP 和 JDBC,外部服務(wù)可以自動檢測。

商業(yè)事務(wù)讓你對應(yīng)用的性能有了全局的掌控,幫助你對性能問題進(jìn)行分類。但是外部服務(wù)總能以意想不到的方式極大地影響應(yīng)用的運(yùn)行,所以你必須監(jiān)控它們。

 3.垃圾回收

從 Java 發(fā)布最早版本開始,一直都保留的核心特性就是垃圾回收,它真是讓人又愛又恨。垃圾回收使我們不再需要手動管理內(nèi)存:當(dāng)使用完一個對象后,我們只需刪除它的引用,然后垃圾回收就會自動釋放它。如果你使用過需要手動管理內(nèi)存的語言,諸如C或C++,你會滿懷感激。垃圾回收為程序員們減少了分配、釋放內(nèi)存空間的繁瑣步驟。

聊聊企業(yè)級 Java 應(yīng)用最重要的4個性能指標(biāo)

此外,因?yàn)槔厥掌鲿詣俞尫艣]有引用的內(nèi)存空間,它減少了傳統(tǒng)的內(nèi)容泄露情況,即內(nèi)存被分配后,該內(nèi)存的引用在內(nèi)存釋放前就被刪除了。聽起來就像靈丹妙藥,不是么?

盡管垃圾回收達(dá)成了無需手動管理內(nèi)存的目標(biāo),也防止了傳統(tǒng)的內(nèi)存泄露,但是作為代價,垃圾回收過程有時相當(dāng)笨拙。根據(jù)不同的 JVM,垃圾回收策略也會不同。深入探討這些策略超出了本文的主旨。但是,讀者應(yīng)該明白,了解垃圾回收期的工作原理,以及最佳的配置方案至關(guān)重要。

垃圾回收最大的敵人就是傳說中的主要 (major) 或 (full) 垃圾回收。除了 Azul JVM,所有的 JVM 都有這個問題。通常,垃圾回收大致分為兩類:

次級主要

為了釋放存活時間較短的對象,次級垃圾回收發(fā)生得相對頻繁。他們在運(yùn)行時不會封鎖線程,產(chǎn)生的影響較小。

然而,主要垃圾回收,有時也稱為“暫停世界(Stop The World, STW)”垃圾回收,因?yàn)樗麄冊谶\(yùn)行時會封鎖 JVM 中的所有線程。

聊聊企業(yè)級 Java 應(yīng)用最重要的4個性能指標(biāo)

當(dāng)垃圾回收運(yùn)行時,它會運(yùn)行一項可達(dá)性測試 (reachability test),如圖四所示。它會創(chuàng)建一個由對象組成的根集合 (root set),該集合包含每個運(yùn)行線程中的直接可見對象。接著,它會探尋根集合中的對象涉及的其他對象,然后探尋這些對象涉及的對象,直到所有對象都被涉及。在這個過程中,它會記錄 (mark) 下現(xiàn)時活動對象的內(nèi)存地址,然后把不被使用的所有地址都掃除 (sweep)。說得更恰當(dāng)些,它會把沒有根集合對象引用的內(nèi)存都釋放。最終,它會壓縮、整理這些內(nèi)存,這樣新的對象才能獲得內(nèi)存分配。

聊聊企業(yè)級 Java 應(yīng)用最重要的4個性能指標(biāo)

根據(jù)不同的 JVM ,次級、主要回收的方式都會不同。圖五圖六展示了在Sun JVM內(nèi)次級、主要回收的操作方式。

在次級回收中,內(nèi)存主要分配到 Eden 空間直到將其填滿。接著,拷貝收集器(copy collector)會將 Eden 中的活動對象拷貝到兩個幸存者空間(survivor spaces, to space和from space)。遺留在 Eden 中的對象就會被移除。如果幸存者空間被填滿,但還有多余的活動對象,這些對象會被移到 tenured 空間。只有主要回收才能釋放tenured空間的內(nèi)存。

最終,tenured 空間會被填滿,主要回收將會執(zhí)行。它不會將幸存者空間放不下的活動對象拷貝到 tenured 空間中。此時,JVM 會封鎖所有線程,運(yùn)行可達(dá)性測試,清除年輕的數(shù)據(jù)(Eden和兩個幸存者空間),并壓縮 tenured 空間。我們將之稱為主要回收。

聊聊企業(yè)級 Java 應(yīng)用最重要的4個性能指標(biāo)

你或許會想,堆越大,主要回收運(yùn)行得越不頻繁。但是當(dāng)它執(zhí)行時,所需時間就會比小堆要長。因此,調(diào)整好堆的大小和垃圾回收策略對于應(yīng)用的性能也很重要。

 4.應(yīng)用布局

最后要探討的性能指標(biāo)是應(yīng)用布局。因?yàn)樵频某霈F(xiàn),現(xiàn)在的應(yīng)用變得更加靈活:應(yīng)用環(huán)境可以根據(jù)用戶需求調(diào)節(jié)大小。因此,對應(yīng)用的布局進(jìn)行檢測從而決定實(shí)例的多少是否合適是非常重要的。如果你的實(shí)例太多,你的云主機(jī)成本就會增加。但如果你沒有足夠的實(shí)例,商業(yè)事務(wù)就會受到影響。

在評測過程中,下面兩個指標(biāo)尤其重要:

商業(yè)事務(wù)的吞吐量

容器性能

商業(yè)事務(wù)應(yīng)該基準(zhǔn)化,你應(yīng)該知道在給定的時間里為了滿足基準(zhǔn)所需的實(shí)例數(shù)量。如果你的商業(yè)事務(wù)的吞吐量增長突然,你就要增加實(shí)例以滿足用戶。

另一個需要監(jiān)測的是容器性能。具體來說,你想確定是否有應(yīng)用中的實(shí)例負(fù)載過大,如果有,你或許想在那個應(yīng)用中添加實(shí)例。從應(yīng)用的角度查看實(shí)例狀態(tài)很重要,因?yàn)閱蝹€實(shí)例可能由于垃圾回收之類的因素負(fù)載過大,但如果應(yīng)用中大多數(shù)實(shí)例都負(fù)載過大,則該應(yīng)用可能已經(jīng)無法支持它接受的訪問量。

因?yàn)閼?yīng)用中的實(shí)例可以單個地調(diào)節(jié)規(guī)模,所以分析各個實(shí)例的性能進(jìn)而調(diào)整應(yīng)用布局就至關(guān)重要。

本文系 OneAPM 工程師陶炳哲整理。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 开平机_纵剪机厂家_开平机生产厂家|诚信互赢-泰安瑞烨精工机械制造有限公司 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 继电器模组-IO端子台-plc连接线-省配线模组厂家-世麦德 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 四探针电阻率测试仪-振实密度仪-粉末流动性测定仪-宁波瑞柯微智能 | 北京燃气公司 用户服务中心 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 云阳人才网_云阳招聘网_云阳人才市场_云阳人事人才网_云阳人家招聘网_云阳最新招聘信息 | LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | 内六角扳手「厂家」-温州市威豪五金工具有限公司 | LOGO设计_品牌设计_VI设计 - 特创易 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 诗词大全-古诗名句 - 古诗词赏析| 一体化污水处理设备_生活污水处理设备_全自动加药装置厂家-明基环保 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 网站建设-临朐爱采购-抖音运营-山东兆通网络科技 | 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 | 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工 | 开平机_纵剪机厂家_开平机生产厂家|诚信互赢-泰安瑞烨精工机械制造有限公司 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 脱硝喷枪-氨水喷枪-尿素喷枪-河北思凯淋环保科技有限公司 | 好物生环保网、环保论坛 - 环保人的学习交流平台 | STRO|DTRO-STRO反渗透膜(科普)_碟滤| 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | 螺杆泵_中成泵业| 昆山PCB加工_SMT贴片_PCB抄板_线路板焊接加工-昆山腾宸电子科技有限公司 | 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 河北码上网络科技|邯郸小程序开发|邯郸微信开发|邯郸网站建设 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 电镀标牌_电铸标牌_金属标贴_不锈钢标牌厂家_深圳市宝利丰精密科技有限公司 |