最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

華清遠(yuǎn)見(jiàn)-嵌入式人工智能

2023-08-01 14:52 作者:bili_51805000088  | 我要投稿

華清遠(yuǎn)見(jiàn)-嵌入式人工智能

download:https://www.zxit666.com/6456/

一、問(wèn)題是怎樣發(fā)現(xiàn)的

最近有個(gè)新系統(tǒng)開(kāi)發(fā)完成后要上線,由于系統(tǒng)調(diào)用量很大,所以先對(duì)中心接口停止了一次壓力測(cè)試,由于中心接口中根本上只要純內(nèi)存運(yùn)算,所以預(yù)估中心接口的壓測(cè)QPS可以到達(dá)上千。

壓測(cè)容器配置:4C8G

先從10個(gè)并發(fā)開(kāi)端停止發(fā)壓,結(jié)果cpu一下就飆升到了100%,但是中心接口的qps才200左右。于是察看jvm的渣滓回收發(fā)現(xiàn)younggc很頻繁,但是fullGC數(shù)量為零。

二、排查詢題的細(xì)致過(guò)程

由于剛一開(kāi)端壓測(cè),容器cpu就飆升到了100%,所以需求先定位cpu運(yùn)用率問(wèn)題,找出運(yùn)用cpu最高的幾個(gè)進(jìn)程。能夠經(jīng)過(guò)top命令查找進(jìn)程ID,發(fā)現(xiàn)正是壓測(cè)的Java應(yīng)用進(jìn)程ID;然后在定位該金晨曦cpu運(yùn)用率最高的線程,能夠經(jīng)過(guò)top -p 進(jìn)程ID -H 命令顯現(xiàn)該進(jìn)程下的線程運(yùn)用cpu信息。

top


top -p 進(jìn)程ID -H


圖片中PID列則為十進(jìn)制顯現(xiàn)的線程ID,然后轉(zhuǎn)換為16進(jìn)制;在經(jīng)過(guò)jstack 系統(tǒng)進(jìn)程ID | grep 16進(jìn)制線程ID 命令找到對(duì)應(yīng)的線程信息如下,也就是該線程占用了一半左右的cpu。

jstack 系統(tǒng)進(jìn)程ID | grep 16進(jìn)制線程ID


此時(shí)定位到了Finalizer線程,但是這個(gè)線程又有什么作用呢?

原來(lái)這個(gè)線程會(huì)不停的循環(huán)等候java.lang.ref.Finalizer.ReferenceQueue中的新增對(duì)象。一旦Finalizer線程發(fā)現(xiàn)隊(duì)列中呈現(xiàn)了新的對(duì)象,它會(huì)彈出該對(duì)象,調(diào)用它的finalize()辦法,將該援用從Finalizer類中移除,因而下次GC再執(zhí)行的時(shí)分,這個(gè)Finalizer實(shí)例以及它援用的那個(gè)對(duì)象就能夠被渣滓回收掉了。假如這個(gè)線程不斷在不停的工作,闡明Finalizer的隊(duì)列中有許多等候GC的渣滓對(duì)象。此時(shí)能夠經(jīng)過(guò)另一個(gè)命令來(lái)查看等候回收的渣滓對(duì)象有哪些。

jmap -finalizerinfo 進(jìn)程IDCount Class description -------------------------------------------------------32221 com.jd.price.deep.exact.entity.coupons.DeepExactCouponVo$$EnhancerByCGLIB$$200e6ee614908 com.jd.pricedoor.compute.promotion.MultiplePromotion$$EnhancerByCGLIB$$a59933de11982 java.util.zip.Deflater1 java.net.SocksSocketImpl

經(jīng)過(guò)上述結(jié)果能夠發(fā)現(xiàn)有好多的業(yè)務(wù)對(duì)象,經(jīng)過(guò)類名能夠看到這些對(duì)象都是經(jīng)過(guò)CGLIB動(dòng)態(tài)代理創(chuàng)立的,而且這些動(dòng)態(tài)代理類都默許完成了finalize辦法,招致這些對(duì)象在停止渣滓回收時(shí)必需先要執(zhí)行finalize辦法,所以都積壓到了finalizer的隊(duì)列中。

三、如何處理問(wèn)題

經(jīng)過(guò)上述排查過(guò)程發(fā)現(xiàn),是由于大量的業(yè)務(wù)對(duì)象經(jīng)過(guò)CGLIB創(chuàng)立了動(dòng)態(tài)代理類,而這些代理都是系統(tǒng)處置懇求時(shí)創(chuàng)立的暫時(shí)對(duì)象,懇求完成后,這些暫時(shí)對(duì)象就需求被渣滓回收掉,從而招致Finalizer線程執(zhí)行頻繁搶占了cpu資源。

針對(duì)以上剖析結(jié)果所以有了如下幾種處理計(jì)劃:

1.不要運(yùn)用CGLIB來(lái)給那些需求頻繁停止渣滓回收的對(duì)象創(chuàng)立動(dòng)態(tài)代理,能夠手動(dòng)創(chuàng)立靜態(tài)代理類。

2.對(duì)象復(fù)用,盡量減少暫時(shí)對(duì)象的產(chǎn)生。


華清遠(yuǎn)見(jiàn)-嵌入式人工智能的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
九寨沟县| 阿拉善盟| 宁强县| 庄浪县| 区。| 上高县| 五原县| 邵阳县| 包头市| 潮安县| 绥中县| 余庆县| 巴楚县| 东兰县| 富裕县| 满城县| 开原市| 天津市| 葵青区| 呼伦贝尔市| 辽源市| 犍为县| 昌乐县| 遂川县| 镶黄旗| 定日县| 孙吴县| 武安市| 赣榆县| 隆德县| 栾川县| 衢州市| 扎鲁特旗| 上蔡县| 乐平市| 临西县| 济源市| 阳东县| 富川| 华安县| 个旧市|