成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

從JVM角度思考--如何預(yù)估線上環(huán)境機(jī)器資源大小

Worktile / 1446人閱讀

摘要:預(yù)估的方式也很簡(jiǎn)單,八種基本類型直接帶入字節(jié)大小,對(duì)象類型以基本類型為基礎(chǔ)預(yù)估大小?;旧吓_(tái)核的機(jī)器就能滿足這次活動(dòng)。五總結(jié)預(yù)估之后,并非意味著就完全沒(méi)問(wèn)題了,還需要在上線時(shí)備好更多機(jī)器,防止意外發(fā)生。

(一)概述

如何給JVM虛擬機(jī)巧妙地設(shè)計(jì)參數(shù)對(duì)大部分開(kāi)發(fā)來(lái)說(shuō)一直是個(gè)隨緣的事情,可能是去網(wǎng)上拷貝一套參數(shù),可能是沿用公司其他應(yīng)用的參數(shù)。但是這個(gè)隨緣的操作可能就會(huì)給未來(lái)留下隱患。給JVM分配的內(nèi)存過(guò)大倒是沒(méi)什么問(wèn)題,無(wú)非浪費(fèi)點(diǎn)資源,但是如果分配的內(nèi)存過(guò)小,就有可能導(dǎo)致頻繁的Full GC,給人一種系統(tǒng)一直很卡的感覺(jué)。這篇文章就通過(guò)一個(gè)實(shí)例分析一下如何結(jié)合場(chǎng)景設(shè)置JVM虛擬機(jī)參數(shù)。

當(dāng)然,本文更重要的是希望能通過(guò)預(yù)估參數(shù)的這個(gè)過(guò)程,讓你更加了解虛擬機(jī)內(nèi)部的一些東西,要想最準(zhǔn)確的參數(shù)設(shè)置,用一些工具記錄下JVM各個(gè)區(qū)域的變化會(huì)更有效。

(二)前置準(zhǔn)備

系統(tǒng)基于JDK1.8,堆結(jié)構(gòu)如下。

為了方便理解業(yè)務(wù),本文以電商的交易系統(tǒng)為例進(jìn)行講解。在微服務(wù)架構(gòu)下,目前主流的互聯(lián)網(wǎng)公司都會(huì)把自己的業(yè)務(wù)拆分成多個(gè)服務(wù)架構(gòu),比如電商系統(tǒng)會(huì)分為交易微服務(wù)、購(gòu)物車微服務(wù)、商品微服務(wù)等等,可能這個(gè)粒度會(huì)更細(xì)。一個(gè)底層架構(gòu)會(huì)將這些微服務(wù)集成起來(lái)。實(shí)際上就是一個(gè)大的容器里放了一個(gè)個(gè)jar包。

(三)通常業(yè)務(wù)場(chǎng)景下的預(yù)估流程

一個(gè)交易微服務(wù)中會(huì)涉及到訂單對(duì)象、優(yōu)惠券對(duì)象、用戶對(duì)象、交易記錄對(duì)象等一系列對(duì)象,我們可以簡(jiǎn)單預(yù)估在一次交易中這些對(duì)象會(huì)占用的空間。預(yù)估的方式也很簡(jiǎn)單,八種基本類型直接帶入字節(jié)大小,對(duì)象類型以基本類型為基礎(chǔ)預(yù)估大小。只需要一個(gè)大致的值就行。

比如每次交易中一個(gè)訂單對(duì)象大約是1kb,優(yōu)惠券對(duì)象2kb,用戶對(duì)象4kb,交易記錄對(duì)象4kb,除此之外還可能會(huì)存在的List集合、數(shù)組等等。大約一次交易中產(chǎn)生的對(duì)象大約在25kb左右。

一個(gè)每日交易量在100萬(wàn)的系統(tǒng),交易量主要集中在6個(gè)小時(shí)中,平均每秒最大會(huì)有40筆訂單的產(chǎn)生。也就意味著每秒產(chǎn)生對(duì)象大小是1M。這些產(chǎn)生的對(duì)象在一次交易結(jié)束后都會(huì)被當(dāng)成垃圾,也就意味著每秒會(huì)產(chǎn)生1M的垃圾。

假設(shè)我們只有一臺(tái)2核4G的服務(wù)器,分配給堆的內(nèi)存一般就1.5G左右,通過(guò)計(jì)算,可以算出堆中每個(gè)區(qū)域的大小,如下圖:

通過(guò)計(jì)算可以得出,每400秒,400M的Eden區(qū)就滿了,會(huì)進(jìn)行一次young GC。98%的垃圾會(huì)被回收,意味著將會(huì)有8M左右的垃圾進(jìn)入在survivor轉(zhuǎn)移。一些對(duì)象在經(jīng)過(guò)幾次young GC之后會(huì)進(jìn)入到老年代中,這種情況Full GC的頻率會(huì)很低。雖然400秒一次youngGC略微還是快了些,但是對(duì)于系統(tǒng)而言基本上沒(méi)有影響。

(四)特殊業(yè)務(wù)場(chǎng)景下的預(yù)估流程

現(xiàn)在公司打算開(kāi)展一次一小時(shí)的補(bǔ)貼活動(dòng),在活動(dòng)的這一個(gè)小時(shí)時(shí)間內(nèi),訂單數(shù)量可能會(huì)是之前的20倍,也就意味著每秒會(huì)有800筆訂單的產(chǎn)生,每秒會(huì)產(chǎn)生20M的垃圾,這下會(huì)發(fā)生什么呢?

Eden區(qū)20秒就被占滿,20秒執(zhí)行一次youngGC,此時(shí)由于訂單過(guò)于多,可能部分接口響應(yīng)會(huì)達(dá)到幾秒甚至幾十秒,這些對(duì)象在經(jīng)過(guò)幾次youngGC之后就會(huì)逐步就會(huì)進(jìn)入到老年代中。一般在線上一個(gè)小時(shí)內(nèi)出現(xiàn)2次以上FullGC就得告警了。

這種情況下就意味著我們對(duì)機(jī)器資源以及JVM虛擬機(jī)內(nèi)存需要重新考慮了。

首先考慮提升JVM虛擬機(jī)內(nèi)存,由于硬件限制,JVM虛擬機(jī)內(nèi)存的提高首先要提高機(jī)器的性能,我們從雙核4G升級(jí)成4核8G。分配給堆4.5G的內(nèi)存。這個(gè)時(shí)候Eden區(qū)就會(huì)有1200M的內(nèi)存,同樣條件下,1分鐘才會(huì)執(zhí)行一次youngGC。20秒提高到1分鐘能保證響應(yīng)慢的接口對(duì)象也能在youngGC中被消滅,而不會(huì)進(jìn)入到老年代中。

同時(shí)我們可以把一臺(tái)機(jī)器升級(jí)為3臺(tái)機(jī)器,負(fù)載均衡后每臺(tái)機(jī)器的訂單壓力是原來(lái)的1/3,youngGC時(shí)間提升為原來(lái)的3倍,同時(shí)接口響應(yīng)時(shí)間加快。基本上3臺(tái)4核8G的機(jī)器就能滿足這次活動(dòng)。

(五)總結(jié)

預(yù)估之后,并非意味著就完全沒(méi)問(wèn)題了,還需要在上線時(shí)備好更多機(jī)器,防止意外發(fā)生。實(shí)踐能給你帶來(lái)最好的答案。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/121403.html

相關(guān)文章

  • 一次線上問(wèn)題排查所引發(fā)的思考

    摘要:直到有一天你會(huì)碰到線上奇奇怪怪的問(wèn)題,如線程執(zhí)行一個(gè)任務(wù)遲遲沒(méi)有返回,應(yīng)用假死。正好這次借助之前的一次生產(chǎn)問(wèn)題來(lái)聊聊如何排查和解決問(wèn)題。本地模擬上文介紹的是線程相關(guān)問(wèn)題,現(xiàn)在來(lái)分析下內(nèi)存的問(wèn)題。盡可能的減少多線程競(jìng)爭(zhēng)鎖。 showImg(https://segmentfault.com/img/remote/1460000015568421?w=2048&h=1150); 前言 之前或...

    levy9527 評(píng)論0 收藏0
  • 機(jī)器學(xué)習(xí)在美團(tuán)配送系統(tǒng)的實(shí)踐:用技術(shù)還原真實(shí)世界

    摘要:可以說(shuō),美團(tuán)要建設(shè)的就是配送系統(tǒng)的超級(jí)大腦。美團(tuán)超腦配送系統(tǒng)目前互聯(lián)網(wǎng)技術(shù),很大部分還是針對(duì)線上產(chǎn)品和系統(tǒng)研發(fā),整個(gè)流程可以在線上全部完成,而這也正是配送技術(shù)最大的不同和挑戰(zhàn)。 在2018 AI開(kāi)發(fā)者大會(huì)(AI NEXTCon)上,美團(tuán)配送AI方向負(fù)責(zé)人何仁清,分享了美團(tuán)在即時(shí)配送領(lǐng)域中機(jī)器學(xué)習(xí)技術(shù)的最新進(jìn)展,以及如何通過(guò)大數(shù)據(jù)和機(jī)器學(xué)習(xí)手段,建立對(duì)線下真實(shí)世界各種場(chǎng)景的感知能力,還原...

    hearaway 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<