JVM優化分析

2021-06-29 03:55:39 字數 531 閱讀 2688

看過了jvm的記憶體模型,自己總結一下jvm的優化過程。

1.首先要分析情況,關注三大塊的情況:cpu 記憶體和io(磁碟+網路)。

jstack檢視執行緒cpu的使用情況,記憶體使用jmap來檢視記憶體使用情況,iostat來檢視磁碟讀寫情況(iotop也可以,但需要安裝)。

然後使用jinfo來列印下虛擬機器的引數配置。

2.具體問題分析

case 1 如果是cpu高使用率的問題的話

2. 找出耗cpu的執行緒,在linux系統下用命令:「 top –h –p pid 」, pid 就是前面找出來的應用程序 id即27427 。這個命令會顯示出當前占用cpu高的執行緒。

3.dump 出程序的所有執行緒棧,用命令「./jstack -f -m -l 84703 > 84703.stack」84703是 pid。

4.將伺服器上的.stack檔案用文字編輯器分析是哪段**造成的問題。

case 2 如果是記憶體使用率高的問題

未完待續

sql優化分析

sql 語句前加explain 分析sql掃瞄行數 table 顯示該語句涉及的表 type 這列很重要,顯示了連線使用了哪種類別,有無使用索引,反映語句的質量。possible keys 列指出mysql能使用哪個索引在該表中找到行 key 顯示mysql實際使用的鍵 索引 如果沒有選擇索引,鍵是...

oracle 優化分析

記錄下來,做資料庫優化和索引分析的方案 案例 1 在分割槽表中,全域性索引可能會導致索引失效,這樣執行計畫中不走索引,改本地索引local 2 對錶進行分析,不用analyze,用了會對執行計畫產生影響,對錶和索引分析建議用dbms exec dbms stats.gather table stat...

Explain優化分析

當你寫入乙個select查詢語句,mysql底層會有查詢優化器來對你的拆線呢語句給出mysq自己的理解。人的理解與機器的理解存在偏差,從而造成查詢效能變慢這一重大影響。為了讓人能夠迎合機器的理解去更好的書寫sql查詢語句,我們需要對已存在的sql語句進行分析,看存在哪些問題才使得機器難以快速執行。而...