真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何排查線上服務(wù)響應(yīng)時間太長的問題

本篇內(nèi)容介紹了“如何排查線上服務(wù)響應(yīng)時間太長的問題”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司專注于九龍坡網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供九龍坡營銷型網(wǎng)站建設(shè),九龍坡網(wǎng)站制作、九龍坡網(wǎng)頁設(shè)計、九龍坡網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造九龍坡網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供九龍坡網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

前言:

最近線上環(huán)境某個接口服務(wù)響應(yīng)時間偏長,導(dǎo)致用戶體驗感超差;當(dāng)出現(xiàn)這種情況時,我們該怎么快速的排查這類問題呢?

常用的排查思路:

  • 為代碼添加上詳細(xì)的打印日志; 不建議,一是線上環(huán)境,沒法隨便的重新部署更換了詳細(xì)日志的代碼,二是 添加詳細(xì)的日志輸出,那就意味這會生成大量的日志文件,這些日志文件會占據(jù)大量服務(wù)器磁盤空間。

  • 搭建一個模擬了線上環(huán)境的測試環(huán)境進(jìn)行復(fù)盤排查;額,出現(xiàn)了這種問題哪有那么多的時間讓你進(jìn)行環(huán)境復(fù)盤排查,所以此方案也是 不建議的

  • 線上診斷神器 Arthas ,這個工具是阿里開源的,專門用于線上環(huán)境問題排查的,這個工具提供了很多的 命令用來排查問題; 當(dāng)出現(xiàn)上面的響應(yīng)時間偏長的問題,就可以使用 Arthas 提供的 trace 命令進(jìn)行排查,使用這個工具的 trace 命令可以統(tǒng)計到方法中整個調(diào)用鏈路上的所有性能開銷和追蹤調(diào)用鏈路,查找其中耗時比較長的方法再具體排查即可。

文章接下來將從兩方面展開:

①、搭建模擬線上服務(wù)接口響應(yīng)時間偏長的環(huán)境;SpringBoot 服務(wù)接口 + JMeter 模擬服務(wù)接口調(diào)用;

②、使用診斷神器 Arthas 提供的命令 trace命令進(jìn)行響應(yīng)時間偏長的問題排查;

模擬線上服務(wù)環(huán)境:

1、SpringBoot 項目搭建,并且編寫好服務(wù)接口;

注意:服務(wù)接口代碼為了簡便,只寫了 一些大循環(huán)的代碼 來模擬較長的耗時;除此之外,實際上還包含很多多其它常見的情況,例如:

  • 服務(wù)接口方法中存在很多的 JDBC 操作,并且由于數(shù)據(jù)庫中數(shù)據(jù)量太大,導(dǎo)致很多的 JDBC 查詢非常耗時,并且此時可能由于還沒有創(chuàng)建合適的索引,導(dǎo)致查詢耗時更加的長,最終導(dǎo)致服務(wù)接口響應(yīng)時間偏長;

  • 此服務(wù)接口中調(diào)用了 其它的服務(wù)接口,由于內(nèi)部調(diào)用的其它服務(wù)接口出現(xiàn)問題等,導(dǎo)致此其它服務(wù)接口執(zhí)行耗時比較長,進(jìn)而導(dǎo)致服務(wù)接口響應(yīng)時間偏長;

服務(wù)接口代碼如下:

如何排查線上服務(wù)響應(yīng)時間太長的問題

2、JMeter 模擬用戶調(diào)用的測試腳本配置:

如何排查線上服務(wù)響應(yīng)時間太長的問題

服務(wù)接口代碼準(zhǔn)備好后,使用IDEA開發(fā)工具將其導(dǎo)出為 Jar 包 。

服務(wù)接口代碼和JMeter腳本獲取地址:模擬Demo源碼地址

為了模擬最為真實的線上環(huán)境,需將準(zhǔn)備好的 服務(wù)接口Jar包放到 Linux 服務(wù)器中,然后使用命令 java -jar .jar運行起 Jar 包;

最后使用 JMeter進(jìn)行接口的調(diào)用,在 聚合報告中發(fā)現(xiàn)平均響應(yīng)時間偏長;如圖:

如何排查線上服務(wù)響應(yīng)時間太長的問題

Arthas 進(jìn)行問題排查:

按照下面的步驟來,你一定會成功快速的排查出問題原因的;

1、首先需要下載阿里開源的Arthas 的診斷工具 Jar 包,下載地址:arthas-boot.jar ;然后將 Jar 包放到 部署服務(wù)接口項目的服務(wù)器中。

2、然后使用 ps 命令,查詢出當(dāng)前運行服務(wù)接口的程序進(jìn)程號;例如:本文章模擬的服務(wù)接口程序 Jar 包名稱為 springboot_arthas-1.0.0.jar ,所以命令為: ps -ef | grep springboot_arthas-1.0.0

3、然后運行Arthas 診斷工具,命令:java -jar arthas-boot.jar;開始運行的界面如圖:

如何排查線上服務(wù)響應(yīng)時間太長的問題

4、運行完后,就可以使用 trace命令統(tǒng)計服務(wù)接口方法調(diào)用鏈路上的全部節(jié)點的耗時;

trace 命令能主動搜索 class-patternmethod-pattern 對應(yīng)的方法調(diào)用路徑,渲染和統(tǒng)計整個調(diào)用鏈路上的所有性能開銷和追蹤調(diào)用鏈路。

具體命令格式: trace [全限定類名] [類中的方法名]

例如:統(tǒng)計的本服務(wù)接口:

com.lyl.controller.TestController : 全限定類名

process:TestController 類中的方法;

具體命令: trace com.lyl.controller.TestController process

5、trace 命令執(zhí)行結(jié)果展示,如圖:

通過trace 命令監(jiān)控統(tǒng)計的調(diào)用鏈路各個方法的執(zhí)行耗時,可以發(fā)現(xiàn)調(diào)用的 com.lyl.util.StringUtil 類中的 test2() 方法執(zhí)行耗時比較大;

所以需要特別去查看這個方法的代碼是否存在問題;

如果這個代碼中還存在許多的方法調(diào)用鏈路,則需要再次使用 trace 命令進(jìn)行監(jiān)控調(diào)用鏈路的耗時,找出具體可能存在問題的方法。

Arthas 阿里開源的診斷工具還提供了很多的命令供使用,大家可以自行去查看學(xué)習(xí),地址:命令列表 。

注意:

①、使用Arthas 診斷的程序代碼,在打包時 不能混淆,否則在使用trace 命令會報 類或方法找不到;

②、在使用trace命令監(jiān)控統(tǒng)計時,需要JMeter測試腳本正在運行調(diào)用服務(wù)接口,如果服務(wù)接口沒有正在調(diào)用中,則統(tǒng)計不到內(nèi)部調(diào)用鏈路的耗時情況;

“如何排查線上服務(wù)響應(yīng)時間太長的問題”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


新聞標(biāo)題:如何排查線上服務(wù)響應(yīng)時間太長的問題
文章起源:http://weahome.cn/article/ihphpc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部