成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

干貨|宏巍軟件之Java線程監(jiān)控之旅

entner / 3047人閱讀

摘要:宏巍電商軟件是在阿里體系內(nèi)使用他們的,然后在上用多進(jìn)程做的集群,端和接口系統(tǒng)都是使用語(yǔ)言實(shí)現(xiàn)的。宏巍電商軟件架構(gòu)我們嘗試過(guò)很多方法來(lái)進(jìn)行線程狀態(tài)的監(jiān)控,比如開(kāi)始時(shí)使用等工具來(lái)讀取的狀態(tài),同時(shí)也嘗試用過(guò)的,但都不能滿足電商產(chǎn)品性能監(jiān)控需求。

宏巍軟件 許向

大家好,我是上海宏巍信息技術(shù)有限公司(簡(jiǎn)稱:宏巍軟件)的許向,宏巍軟件成立于2005年,是一家以電商ERP軟件開(kāi)發(fā)為主的高新技術(shù)科技型軟件公司,致力于為大型網(wǎng)商和電子商務(wù)企業(yè)提供專業(yè)、全面、量身訂制的企業(yè)ERP管理軟件和應(yīng)用解決方案。

宏巍電商ERP軟件是在阿里體系內(nèi)使用他們的SLB,然后在ECS上用haproxy JBOSS(多進(jìn)程)做的集群,ERP端和接口系統(tǒng)都是使用Java語(yǔ)言實(shí)現(xiàn)的。隨著近年來(lái)電商業(yè)務(wù)量的爆發(fā)式增長(zhǎng),Java在性能上的問(wèn)題逐漸突出,ERP端有時(shí)候會(huì)無(wú)故的卡頓,接口系統(tǒng)跑著跑著沒(méi)了,或者進(jìn)程出現(xiàn)卡死情況。

宏巍電商ERP軟件架構(gòu)

我們嘗試過(guò)很多方法來(lái)進(jìn)行Java線程狀態(tài)的監(jiān)控,比如開(kāi)始時(shí)使用jstat、jps等工具來(lái)讀取JVM的狀態(tài),同時(shí)也嘗試用過(guò)Zabbix的Java proxy,但都不能滿足電商ERP產(chǎn)品性能監(jiān)控需求。后來(lái)通過(guò)腳本來(lái)調(diào)用這些工具讀取狀態(tài)后,通過(guò)API回寫給Zabbix來(lái)記錄與報(bào)警,但仍然不能完全解決Java線程卡死的問(wèn)題,因?yàn)檫@些數(shù)據(jù)只有常態(tài)的內(nèi)存狀態(tài),GC回收狀態(tài),線程到底在干什么,運(yùn)維壓根是不知道的。

于是我們嘗試用JProfile來(lái)對(duì)具體的情況進(jìn)行分析,但是JProfile非常耗資源,沒(méi)法在生產(chǎn)環(huán)境上進(jìn)行調(diào)試,這就導(dǎo)致了很多系統(tǒng)沒(méi)有數(shù)據(jù)通過(guò)就無(wú)法調(diào)試,而這種情況持續(xù)了很長(zhǎng)一段時(shí)間。最后我們的解決辦法就是寫一個(gè)監(jiān)控的爬蟲(chóng),跑在每臺(tái)機(jī)器上,發(fā)現(xiàn)鉤子爬不到了就觸發(fā)重啟Java進(jìn)程,并且進(jìn)行郵件告警。

后來(lái)遇到了云智慧應(yīng)用性能管理產(chǎn)品透視寶http://www.toushibao.com 的工程師 ,給我們定制了基于電商ERP任務(wù)系統(tǒng)的Java線程APM監(jiān)控,與原有定時(shí)任務(wù)所使用的Java Quartz實(shí)現(xiàn)無(wú)縫對(duì)接。

在JBoss啟動(dòng)過(guò)程中插入透視寶的Agent,并由業(yè)務(wù)啟動(dòng)腳本通過(guò)配置文件來(lái)判斷業(yè)務(wù)是不是要啟動(dòng)監(jiān)控,當(dāng)監(jiān)控啟動(dòng)以后,我們?cè)谕敢晫毜腄ashboard里就可以看到每個(gè)Java進(jìn)程的詳細(xì)運(yùn)行情況,從主進(jìn)程到其派生出來(lái)的子進(jìn)程,能準(zhǔn)確了解到底哪個(gè)環(huán)節(jié)的哪些方法慢,什么方法卡死了。

透視寶實(shí)現(xiàn)了對(duì)運(yùn)行時(shí)代碼、SQL執(zhí)行、API調(diào)用過(guò)程的性能數(shù)據(jù)采集與分析,深入到代碼層面定位性能瓶頸,分析性能下降的原因,幫助技術(shù)和運(yùn)維人員從大量的業(yè)務(wù)請(qǐng)求中抓取及分析真實(shí)用戶操作背后的代碼執(zhí)行邏輯關(guān)系與狀態(tài)如執(zhí)行時(shí)間最長(zhǎng)的方法、慢查詢。 
與傳統(tǒng) ?Agent ?安裝與配置模式不同,透視寶提供的Smart ?Agent實(shí)現(xiàn)了真正一鍵安裝,針對(duì)不同操作系統(tǒng)版本及各種服務(wù),用戶無(wú)需面對(duì)各種復(fù)雜的下載和參數(shù)配置,Smart ?Agent會(huì)自動(dòng)發(fā)現(xiàn)本機(jī)所有的服務(wù)、應(yīng)用及運(yùn)行時(shí)代碼環(huán)境,用戶確認(rèn)后系統(tǒng)會(huì)自動(dòng)安裝對(duì)應(yīng)版本的監(jiān)控插件,整個(gè)過(guò)程全自動(dòng)化實(shí)現(xiàn),用戶不需要進(jìn)行任何手動(dòng)配置操作。針對(duì)復(fù)雜系統(tǒng)的維護(hù)與升級(jí),透視寶同樣提供方便的更新解決方案,可對(duì)Smart Agent的健康狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè),當(dāng)系統(tǒng)環(huán)境發(fā)生變化時(shí),無(wú)需重新安裝與部署,可有效降低集群環(huán)境中系統(tǒng)的總體維護(hù)成本。

QA:
問(wèn):透視寶的Agent插入簡(jiǎn)單嗎?
答:

透視寶Agent插入非常簡(jiǎn)單,只要是支持的Java版本,無(wú)需手動(dòng)配置和下載就能自動(dòng)匹配對(duì)應(yīng)的探針文件,插入過(guò)程完全自動(dòng)化。

當(dāng)然你可以根據(jù)需要決定是否插入探針,這是我們?cè)谀_本里面做的開(kāi)關(guān),供參考。
問(wèn):你的爬蟲(chóng)爬取哪些內(nèi)容?
答:

我們的爬蟲(chóng)會(huì)根據(jù)配置文件,爬自己的健康頁(yè)面,每臺(tái)機(jī)器上的集群配置文件是由我們的運(yùn)維系統(tǒng)創(chuàng)建并分發(fā)下去的,同時(shí)每臺(tái)機(jī)器上都會(huì)通過(guò)slat來(lái)同步腳本。

問(wèn):怎么實(shí)現(xiàn)Java Quartz定時(shí)的?剛看你說(shuō)的爬的鉤子都是健康頁(yè)面,定時(shí)任務(wù)也算嗎?
答:定時(shí)任務(wù)監(jiān)控一直是我們很頭疼的一個(gè)問(wèn)題,我們用了一個(gè)妥協(xié)的辦法,把Quartz跑到JBoss的serverlet里面去,在沒(méi)有透視寶之前我只能知道進(jìn)程沒(méi)了,或者進(jìn)程僵死了,如果Quartz的調(diào)度任務(wù)內(nèi)部代碼出現(xiàn)問(wèn)題,我們是不知道的,因?yàn)檫@個(gè)時(shí)候返回都是正常的,我們只能通過(guò)轉(zhuǎn)化任務(wù)的池來(lái)比對(duì)判定。

問(wèn):利用python爬取健康頁(yè)面,有沒(méi)有具體策略?比如如何觸發(fā)報(bào)警,什么時(shí)候報(bào)警?
答:頁(yè)面鉤子,腳本通過(guò)Cron或者跑在后臺(tái),腳本都能支持。

問(wèn):報(bào)警后有沒(méi)有進(jìn)程恢復(fù)策略?
答:簡(jiǎn)單粗暴,干掉重啟。因?yàn)榍岸擞蠰B,當(dāng)?shù)粢慌_(tái)問(wèn)題不大,我們有另外一套業(yè)務(wù)在測(cè)試TBSchedule,Taobao開(kāi)源的一套任務(wù)系統(tǒng):https://github.com/taobao/TBS...,后來(lái)發(fā)現(xiàn)換了這個(gè)任務(wù)還是卡死,為了深挖代碼問(wèn)題,就強(qiáng)推了一把透視寶。運(yùn)維現(xiàn)在用的是Tornado Flower Celery,用的很開(kāi)心也很穩(wěn)定。我覺(jué)得關(guān)鍵不在于用什么框架,而是在于代碼性能到底怎么樣,所以要發(fā)現(xiàn)代碼問(wèn)題,APM一定要上。

問(wèn):服務(wù)器上jvm堆外內(nèi)存是怎么監(jiān)控的?
答:目前堆外內(nèi)存并沒(méi)有監(jiān)控,因?yàn)槲覀冞\(yùn)維人少事情多,簡(jiǎn)單粗暴能處理掉問(wèn)題就行了。

問(wèn):如果服務(wù)器jvm堆內(nèi)存很穩(wěn)定,可是內(nèi)存一點(diǎn)點(diǎn)上漲的話,這個(gè)會(huì)不會(huì)有問(wèn)題呢?
答:這個(gè)要結(jié)合業(yè)務(wù)來(lái)看,如果與業(yè)務(wù)增長(zhǎng)曲線是同步的,也沒(méi)有太多問(wèn)題。如果沒(méi)有業(yè)務(wù)增長(zhǎng),內(nèi)存卻還是在增加,然后full gc ,就要考慮代碼上有內(nèi)存泄露了。一般說(shuō)linux內(nèi)存慢慢被占用很正常, full gc的話也不是很頻繁。很緩慢的增長(zhǎng),運(yùn)行幾天都可能不會(huì)發(fā)生,如果運(yùn)行太長(zhǎng)時(shí)間 jvm 突然間來(lái)一次full gc的話,那應(yīng)用就會(huì)突然卡住。

問(wèn):在服務(wù)集群部署的情況下,會(huì)不會(huì)運(yùn)行一段時(shí)間就自動(dòng)重啟應(yīng)用,釋放jvm占用的內(nèi)存?
答: 不會(huì),jvm本身會(huì)回收,只要找到自己業(yè)務(wù)合適的內(nèi)存配置就可以。

問(wèn):你們集群會(huì)不會(huì)定時(shí)重啟部分應(yīng)用呢?
答:我們集群并沒(méi)有定期重啟,但是我們發(fā)布很頻繁,一周有2個(gè)發(fā)布窗口,等于一周重啟了2次。

云智慧是業(yè)務(wù)運(yùn)維解決方案服務(wù)商,旗下產(chǎn)品監(jiān)控寶(www.jiankongbao.com)、透視寶(www.toushibao.com)、壓測(cè)寶(www.yacebao.com),已累計(jì)為電商、移動(dòng)互聯(lián)網(wǎng)、廣告?zhèn)髅健⒃诰€游戲、教育醫(yī)療、金融證券、政企等行業(yè)的幾十萬(wàn)用戶提供了一站式的應(yīng)用性能監(jiān)控、管理及測(cè)試服務(wù)。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/65240.html

相關(guān)文章

  • 墻裂推薦:搜云庫(kù)技術(shù)團(tuán)隊(duì),面試必備的技術(shù)干貨

    摘要:今天整理了一下近大半年以來(lái)的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過(guò)了,這個(gè)記錄的過(guò)程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 今天整理了一下近大半年以來(lái)的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過(guò)了,這個(gè)記錄的過(guò)程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...

    SegmentFault 評(píng)論0 收藏0
  • 墻裂推薦:搜云庫(kù)技術(shù)團(tuán)隊(duì),面試必備的技術(shù)干貨

    摘要:今天整理了一下近大半年以來(lái)的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過(guò)了,這個(gè)記錄的過(guò)程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 今天整理了一下近大半年以來(lái)的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過(guò)了,這個(gè)記錄的過(guò)程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...

    Neilyo 評(píng)論0 收藏0
  • java 基礎(chǔ) - 收藏集 - 掘金

    摘要:基礎(chǔ)知識(shí)復(fù)習(xí)后端掘金的作用表示靜態(tài)修飾符,使用修飾的變量,在中分配內(nèi)存后一直存在,直到程序退出才釋放空間。將對(duì)象編碼為字節(jié)流稱之為序列化,反之將字節(jié)流重建成對(duì)象稱之為反序列化。 Java 學(xué)習(xí)過(guò)程|完整思維導(dǎo)圖 - 后端 - 掘金JVM 1. 內(nèi)存模型( 內(nèi)存分為幾部分? 堆溢出、棧溢出原因及實(shí)例?線上如何排查?) 2. 類加載機(jī)制 3. 垃圾回收 Java基礎(chǔ) 什么是接口?什么是抽象...

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

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

0條評(píng)論

閱讀需要支付1元查看
<