最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java開發(fā) 線上問題排查命令詳解

 更新時(shí)間:2019年08月19日 16:58:08   作者:murphy_gb  
這篇文章主要介紹了java開發(fā) 線上問題排查命令詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言

作為一個(gè)合格的開發(fā)人員,不僅要能寫得一手還代碼,還有一項(xiàng)很重要的技能就是排查問題。這里提到的排查問題不僅僅是在coding的過程中debug等,還包括的就是線上問題的排查。由于在生產(chǎn)環(huán)境中,一般沒辦法debug(其實(shí)有些問題,debug也白扯。。。),所以我們需要借助一些常用命令來查看運(yùn)行時(shí)的具體情況,這些運(yùn)行時(shí)信息包括但不限于運(yùn)行日志、異常堆棧、堆使用情況、GC情況、JVM參數(shù)情況、線程情況等。

給一個(gè)系統(tǒng)定位問題的時(shí)候,知識(shí)、經(jīng)驗(yàn)是關(guān)鍵,數(shù)據(jù)是依據(jù),工具是運(yùn)用知識(shí)處理數(shù)據(jù)的手段。為了便于我們排查和解決問題,Sun公司為我們提供了一些常用命令。這些命令一般都是jdk/lib/tools.jar中類庫的一層薄包裝。隨著JVM的安裝一起被安裝到機(jī)器中,在bin目錄中。下面就來認(rèn)識(shí)一下這些命令以及具體使用方式。

jps

功能

jps位于jdk的bin目錄下,其作用是顯示當(dāng)前系統(tǒng)的java進(jìn)程情況,及其pid號(hào)。 jps相當(dāng)于Solaris進(jìn)程工具ps。不象"pgrep java"或"ps -ef grep java",jps并不使用應(yīng)用程序名來查找JVM實(shí)例。因此,它查找所有的Java應(yīng)用程序,包括即使沒有使用java執(zhí)行體的那種(例如,定制的啟動(dòng) 器)。另外,jps僅查找當(dāng)前用戶的Java進(jìn)程,而不是當(dāng)前系統(tǒng)中的所有進(jìn)程。

常用指令

jps:顯示當(dāng)前用戶的所有java進(jìn)程的PID

jps -v 3331:顯示虛擬機(jī)參數(shù)

jps -m 3331:顯示傳遞給main()函數(shù)的參數(shù)

jps -l 3331:顯示主類的全路徑

jinfo

功能

jinfo可以輸出java進(jìn)程、core文件或遠(yuǎn)程debug服務(wù)器的配置信息。這些配置信息包括JAVA系統(tǒng)參數(shù)及命令行參數(shù),如果進(jìn)程運(yùn)行在64位虛擬機(jī)上,需要指明-J-d64參數(shù),如:jinfo -J-d64 -sysprops pid

jdk8中已經(jīng)不支持該命令。

常用指令

jinfo -flag CMSIniniatingOccupancyFration 3331:查詢CMSIniniatingOccupancyFration參數(shù)值

jstat

功能

jstat(JVM Statistics Monitoring Tool)是用于監(jiān)控虛擬機(jī)各種運(yùn)行狀態(tài)信息的命令行工具。他可以顯示本地或遠(yuǎn)程虛擬機(jī)進(jìn)程中的類裝載、內(nèi)存、垃圾收集、JIT編譯等運(yùn)行數(shù)據(jù),在沒有GUI圖形的服務(wù)器上,它是運(yùn)行期定位虛擬機(jī)性能問題的首選工具。

常用指令

jstat -gc 3331 250 20 :查詢進(jìn)程2764的垃圾收集情況,每250毫秒查詢一次,一共查詢20次。

jstat -gccause:額外輸出上次GC原因

jstat -calss:查詢類裝載、類卸載、總空間以及所消耗的時(shí)間

jmap

功能

jmap是JDK自帶的工具軟件,主要用于打印指定Java進(jìn)程(或核心文件、遠(yuǎn)程調(diào)試服務(wù)器)的共享對(duì)象內(nèi)存映射或堆內(nèi)存細(xì)節(jié)??梢允褂胘map生成堆轉(zhuǎn)儲(chǔ)快照(Heap Dump)。

常用指令

jmap -heap 3331:查看java 堆(heap)使用情況

jmap -histo 3331:查看堆內(nèi)存(histogram)中的對(duì)象數(shù)量及大小

jmap -histo:live 3331:JVM會(huì)先觸發(fā)gc,然后再統(tǒng)計(jì)信息

jmap -dump:format=b,file=heapDump 3331:將內(nèi)存使用的詳細(xì)情況輸出到文件,之后一般使用其他工具進(jìn)行分析。

jhat

功能

jhat(Java Heap Analysis Tool),是一個(gè)用來分析java的堆情況的命令。使用jmap命令可以生成Java堆的Dump文件。生成dump文件之后就可以用jhat命令,將dump文件轉(zhuǎn)成html的形式,然后通過http訪問可以查看堆情況。

由于有很多可視化工具(Eclipse Memory Analyzer 、IBM HeapAnalyzer)可以替代,所以很少用。不過在沒有可視化工具的機(jī)器上也是可用的。

常用指令

jmap -dump:format=b,file=heapDump 3331

jhat heapDump:解析Java堆轉(zhuǎn)儲(chǔ)文件,并啟動(dòng)一個(gè) web server

jstack

功能

jstack用于生成java虛擬機(jī)當(dāng)前時(shí)刻的線程快照。線程快照是當(dāng)前java虛擬機(jī)內(nèi)每一條線程正在執(zhí)行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現(xiàn)長(zhǎng)時(shí)間停頓的原因,如線程間死鎖、死循環(huán)、請(qǐng)求外部資源導(dǎo)致的長(zhǎng)時(shí)間等待等。

線程出現(xiàn)停頓的時(shí)候通過jstack來查看各個(gè)線程的調(diào)用堆棧,就可以知道沒有響應(yīng)的線程到底在后臺(tái)做什么事情,或者等待什么資源。

如果java程序崩潰生成core文件,jstack工具可以用來獲得core文件的java stack和native stack的信息,從而可以輕松地知道java程序是如何崩潰和在程序何處發(fā)生問題。

另外,jstack工具還可以附屬到正在運(yùn)行的java程序中,看到當(dāng)時(shí)運(yùn)行的java程序的java stack和native stack的信息, 如果現(xiàn)在運(yùn)行的java程序呈現(xiàn)hung的狀態(tài),jstack是非常有用的。

jstack命令主要用來查看Java線程調(diào)用堆棧的,可以用來分析線程問題(如死鎖)。

常用指令

jstack 3331:查看線程情況

jstack -F 3331:正常輸出不被響應(yīng)時(shí),使用該指令

jstack -l 3331:除堆棧外,顯示關(guān)于鎖的附件信息

常見問題定位過程

頻繁GC問題或內(nèi)存溢出問題

一、使用jps查看線程ID

二、使用jstat -gc 3331 250 20 查看gc情況,一般比較關(guān)注PERM區(qū)的情況,查看GC的增長(zhǎng)情況。

三、使用jstat -gccause:額外輸出上次GC原因

四、使用jmap -dump:format=b,file=heapDump 3331生成堆轉(zhuǎn)儲(chǔ)文件

五、使用jhat或者可視化工具(Eclipse Memory Analyzer 、IBM HeapAnalyzer)分析堆情況。

六、結(jié)合代碼解決內(nèi)存溢出或泄露問題。

死鎖問題

一、使用jps查看線程ID

二、使用 jstack pid 查看線程情況

結(jié)語

經(jīng)常使用適當(dāng)?shù)奶摂M機(jī)監(jiān)控和分析工具可以加快我們分析數(shù)據(jù)、定位解決問題的速度,但也要知道,工具永遠(yuǎn)都是知識(shí)技能的一層包裝,沒有什么工具是包治百病的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于消息中間件RocketMQ的基本概念及功能

    關(guān)于消息中間件RocketMQ的基本概念及功能

    這篇文章主要介紹了關(guān)于消息中間件RocketMQ的基本概念及功能,RocketMQ作為一款純java、分布式、隊(duì)列模型的開源消息中間件,支持事務(wù)消息、順序消息、批量消息、定時(shí)消息、消息回溯等,需要的朋友可以參考下
    2023-05-05
  • SpringBoot過濾器與攔截器使用方法深入分析

    SpringBoot過濾器與攔截器使用方法深入分析

    大家應(yīng)該都曉得實(shí)現(xiàn)過濾器需要實(shí)現(xiàn) javax.servlet.Filter 接口,而攔截器會(huì)在處理指定請(qǐng)求之前和之后進(jìn)行相關(guān)操作,配置攔截器需要兩步,本文通過實(shí)例代碼給大家介紹SpringBoot 過濾器和攔截器的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-12-12
  • java 逐行讀取txt文本如何解決中文亂碼

    java 逐行讀取txt文本如何解決中文亂碼

    在使用java讀取txt文本中如含有中文,可能會(huì)出現(xiàn)亂碼,很多初學(xué)者束手無策,本文將提供詳細(xì)的解決方法
    2012-11-11
  • MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對(duì)應(yīng)關(guān)系說明

    MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對(duì)應(yīng)關(guān)系說明

    這篇文章主要介紹了MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對(duì)應(yīng)關(guān)系說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 源碼分析SpringMvc日志打印被忽略輸出問題

    源碼分析SpringMvc日志打印被忽略輸出問題

    這篇文章主要為大家介紹了源碼分析SpringMvc日志打印被忽略輸出問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 淺談Java的Synchronized鎖原理和優(yōu)化

    淺談Java的Synchronized鎖原理和優(yōu)化

    這篇文章主要介紹了Java的Synchronized鎖原理和優(yōu)化,synchronized的作用是保證在同一時(shí)刻, 被修飾的代碼塊或方法只會(huì)有一個(gè)線程執(zhí)行,以達(dá)到保證并發(fā)安全的效果,需要的朋友可以參考下
    2023-05-05
  • Spring注解之@Import注解的使用和源碼分析

    Spring注解之@Import注解的使用和源碼分析

    今天主要介紹Spring @Import注解,在Spring中@Import使用得比較頻繁,它得作用是導(dǎo)入bean,具體的導(dǎo)入方式有多種,特別在SpringBoot項(xiàng)目中,很多地方都使用到了@Import注解,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • 淺談Java中的集合存儲(chǔ)數(shù)據(jù)后,輸出數(shù)據(jù)的有序和無序問題

    淺談Java中的集合存儲(chǔ)數(shù)據(jù)后,輸出數(shù)據(jù)的有序和無序問題

    這篇文章主要介紹了淺談Java中的集合存儲(chǔ)數(shù)據(jù)后,輸出數(shù)據(jù)的有序和無序問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 利用Java實(shí)現(xiàn)網(wǎng)站聚合工具

    利用Java實(shí)現(xiàn)網(wǎng)站聚合工具

    互聯(lián)網(wǎng)上有數(shù)以萬億計(jì)的網(wǎng)站,每個(gè)網(wǎng)站大都具有一定的功能。搜索引擎雖然對(duì)互聯(lián)網(wǎng)上的部分網(wǎng)站建立了索引,但是其作為一個(gè)大而全的搜索系統(tǒng),無法很好的定位到一些特殊的需求。因此本文將介紹一個(gè)用java實(shí)現(xiàn)的網(wǎng)站數(shù)據(jù)聚合工具,需要的可以參考一下
    2022-01-01
  • SpringBoot3實(shí)現(xiàn)上傳圖片并返回路徑讓前端顯示圖片

    SpringBoot3實(shí)現(xiàn)上傳圖片并返回路徑讓前端顯示圖片

    這篇文章主要介紹了SpringBoot3實(shí)現(xiàn)上傳圖片并返回路徑讓前端顯示圖片,文中通過圖文和代碼講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-12-12

最新評(píng)論

荥阳市| 泾川县| 临夏县| 宣威市| 兴和县| 井冈山市| 贺州市| 宁河县| 大连市| 广平县| 枣强县| 格尔木市| 刚察县| 长武县| 林芝县| 茂名市| 屏南县| 汾阳市| 宣威市| 鄂尔多斯市| 永康市| 奇台县| 嘉峪关市| 崇义县| 临夏县| 道孚县| 藁城市| 烟台市| 辽中县| 英德市| 通辽市| 吉水县| 蕉岭县| 新营市| 绵竹市| 厦门市| 资兴市| 阿拉善右旗| 永新县| 岱山县| 郑州市|