bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

問題排查-jps和jstack

jps

jps 命令類似與 linux 的 ps 命令,但是它只列出系統中所有的 Java 應用程序。 通過 jps 命令可以方便地查看 Java 進程的啟動類、傳入參數和 Java 虛擬機參數等信息。

為巍山等地區用戶提供了全套網頁設計制作服務,及巍山網站建設行業解決方案。主營業務為做網站、成都網站建設、巍山網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

問題排查-jps和jstack

參數說明:

-q:只輸出進程 ID
-m:輸出傳入 main 方法的參數
-l:輸出完全的包名,應用主類名,jar的完全路徑名
-v:輸出jvm參數
-V:輸出通過flag文件傳遞到JVM中的參數

1、jps 顯示進程的ID 和 類的名稱
問題排查-jps和jstack

2、jps -q 只輸出進程ID,而不顯示出類的名稱
問題排查-jps和jstack

3、jps -m 可以輸出傳遞給 Java 進程(main 方法)的參數
問題排查-jps和jstack
4、jps -l 可以輸出主函數的完整路徑(類的全路徑)
問題排查-jps和jstack
5、 jps -v 可以顯示傳遞給 Java 虛擬機的參數
問題排查-jps和jstack

獲取遠程服務器 jps 信息

jps 支持查看遠程服務上的 jvm 進程信息。如果需要查看其他機器上的 jvm 進程,需要在待查看機器上啟動 jstatd 服務。

jstack

jstack是jdk自帶的線程堆棧分析工具,使用該命令可以查看或導出 Java 應用程序中線程堆棧信息。

舉例:如果CPU負荷達到100%,我們如何排查?

1、使用top命令查找到占用cpu最多的java進程。

2、使用下面的命令查看,java進程中,占用cpu最多的線程

top -Hp 23344(進程ID)

3、然后使用jstack pid查看,這個占用cpu最多的線程情況。

這里注意:
jstack命令生成的thread dump信息包含了JVM中所有存活的線程,為了分析指定線程,必須找出對應線程的調用棧,應該如何找?

可以看到,jstack里面,每一個線程都對應一個nid,這個nid是16進制的。
問題排查-jps和jstack
1、把要查看的pid轉換成16進制,進行匹配即可找到要查看的線程的信息。
2、然后可以多打印幾次jstack信息,這樣找到這個線程在哪一段代碼,出現的頻率最高,然后查看線程狀態。

3、在dump中,線程一般存在如下幾種狀態:
3.1、RUNNABLE,線程處于執行中
3.2、BLOCKED,線程被阻塞
3.3、WAITING,線程正在等待

4、舉例:死鎖

package com.jane;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;

public class Main {

    public static void main(String[] args) {
        ReentrantLock lock1 = new ReentrantLock();
        ReentrantLock lock2 = new ReentrantLock();

        Thread t1 = new Thread() {
            @Override
            public void run() {
                try {
                    lock1.lock();
                    TimeUnit.SECONDS.sleep(1);
                    lock2.lock();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };
        Thread t2 = new Thread() {
            @Override
            public void run() {
                try {
                    lock2.lock();
                    TimeUnit.SECONDS.sleep(1);
                    lock1.lock();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };
        t1.setName("mythread1");
        t2.setName("mythread2");
        t1.start();
        t2.start();

    }
}

問題排查-jps和jstack

問題排查-jps和jstack

兩個線程在互相等待另一個線程的鎖!!

分享題目:問題排查-jps和jstack
文章位置:http://vcdvsql.cn/article46/peiieg.html

成都網站建設公司_創新互聯,為您提供自適應網站軟件開發商城網站外貿建站網站制作營銷型網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司