看過了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語句進行分析,看存在哪些問題才使得機器難以快速執行。而...