成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java服務器內存過高&CPU過高問題排查

商務辦公
當程序發(fā)現(xiàn)CPU過高的情況時,可以使用Windows系統(tǒng)的Process Explorer工具來找到CPU高消耗的線程,所以需要在Windows機器上面搭建好服務器的測試環(huán)境,盡量模擬出線上CPU飆升的情況。

[[264098]]

 一、內存過高

1、內存過高一般有兩種情況:內存溢出和內存泄漏

(1)內存溢出:程序分配的內存超出物理機的內存大小,導致無法繼續(xù)分配內存,出現(xiàn)OOM報錯

(2)內存泄漏:不再使用的對象一直占據(jù)著內存不釋放,導致這塊內存浪費掉,久而久之,內存泄漏的對象堆積起來,也會導致物理機的內存被耗盡,出現(xiàn)OOM報錯

2、內存過高的檢測辦法:通常我們的Java服務器部署在Linux機器上面,可以通過jvm自帶的命令進行一些檢測

(1)查看對象的數(shù)目和占用內存大小

①參數(shù)為Java程序的進程號,將結果導出到指定目錄中,

  1. jmap -histo:live <進程號> > <導出目錄+文件名> 

②示例如下,可以看到程序中各個對象所占用內存的情況,根據(jù)占用字節(jié)數(shù)大小降序顯示,這里只能看出哪些對象占用內存高,但是還不能具體定位到問題代碼,需要進一步排查

③一些特殊的標識的含義

  • [C 表示char[],一般與String對象相關,因為String其實就是基于char數(shù)組實現(xiàn)的
  • [S 表示short[]
  • [I 表示int[]
  • [B 表示byte[]
  • [II 表示int[][]
    1. num #instances #bytes class name 
    2. ---------------------------------------------- 
    3.  1: 585152 75635896 [C 
    4.  2: 66541 71446496 [B 
    5.  3: 1141734 36535488 java.util.HashMap$Entry 
    6.  4: 176622 26086840 <constMethodKlass> 
    7.  5: 176622 24034208 <methodKlass> 
    8.  6: 17717 19584560 <constantPoolKlass> 
    9.  7: 174454 18375128 [Ljava.util.HashMap$Entry; 
    10.  8: 571222 13709328 java.lang.String 
    11.  9: 832783 13324528 java.lang.Integer 
    12.  10: 17717 13198840 <instanceKlassKlass> 
    13.  11: 15092 11237440 <constantPoolCacheKlass> 
    14.  12: 46779 10429728 [I 
    15.  13: 191501 7660040 java.util.LinkedHashMap$Entry 
    16.  14: 12599 6567592 <methodDataKlass> 
    17.  15: 113526 6357456 java.util.HashMap 
    18.  16: 197998 6335936 java.util.Hashtable$Entry 

(2)如果需要進一步定位問題代碼,那么就需要把Java程序的內存鏡像導出,再具體分析了,通過如下命令導出程序的內存鏡像

  1. jmap -dump:format=b,file=<導出目錄+文件名> <進程號> 

(3)下載Memory Analyzer工具來分析內存鏡像

  1. http://www.eclipse.org/mat/ 

(4)打開軟件后,F(xiàn)ile-->Open Heap Dump...,打開剛才導出的鏡像文件,選擇Leak Suspects Report,F(xiàn)inish,進入分析頁面

  • Histogram:列表展示出內存中的對象數(shù)目和占用內存大小
  • Dominator Tree:列表展示出程序中每個線程中的對象數(shù)目和占用內存大小
  • Top Consumers:圖表展示出每個線程的對象數(shù)目和占用內存大小
  • Top Components:圖表展示出內存中的對象數(shù)目和占用內存大小
  • Leak Suspects:這個是最常用的,會自動檢測分析內存異常的原因

右鍵對象-->show objects by class可以查看對象的具體情況

by incomming reference:顯示引用該對象/線程的其他對象

by outgoing reference:顯示當前對象/線程引用的其他對象

 

Java服務器內存過高&CPU過高問題排查

 

(5)點擊Leak Suspects,程序會分析出可能存在內存問題的地方,繼續(xù)點擊Detail可以看到具體有哪些對象和線程,接下來就要根據(jù)具體情況具體分析了

二、CPU過高

1、當程序發(fā)現(xiàn)CPU過高的情況時,可以使用Windows系統(tǒng)的Process Explorer工具來找到CPU高消耗的線程,所以需要在Windows機器上面搭建好服務器的測試環(huán)境,盡量模擬出線上CPU飆升的情況

2、模擬好環(huán)境后,通過任務管理器,在進程一欄中找到Java程序的進程號

 

Java服務器內存過高&CPU過高問題排查

 

3、下載Process Explorer工具

  1. https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer 

4、打開工具后,根據(jù)剛才的進程號找到進程

 

Java服務器內存過高&CPU過高問題排查

 

5、然后右鍵-->Properties,再選擇Threads選項卡,點進CPU排序,可以找到消耗CPU最多的那個線程

 

Java服務器內存過高&CPU過高問題排查

 

6、使用科學計算器,將十進制的線程號轉成十六進制,比如493620-->78834

 

Java服務器內存過高&CPU過高問題排查

 

7、到此已經拿到了可能出問題的進程號和線程號,接下來使用jvm內置的命令來導出Java的堆棧信息

  1. jstack -l <進程號> > <導出目錄+文件名> 

8、打開導出的堆棧信息,并全文搜索剛剛拿到的十六進制的線程號,就可以找到出問題的代碼具體位置了

作者:未分配的為服務

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2020-11-02 09:25:33

CPUJava線程

2010-08-18 09:52:25

Memcache

2020-11-06 00:45:29

Linux服務器swap內存

2018-11-26 08:49:42

CPU排查負載

2024-03-19 09:15:12

服務器CPUI/O

2018-08-10 15:00:42

服務器內存排查

2013-10-30 17:34:51

Nginx服務器軟中斷XEN虛擬

2019-07-24 11:52:11

CPU服務器面試官

2018-08-17 08:44:37

服務器內存排查

2023-03-05 16:40:07

linux進程內存

2022-06-27 11:20:13

工具內存GO

2023-09-22 07:46:22

CPU溫度筆記本

2022-03-11 07:30:04

SQLMySQLCPU

2021-06-02 09:55:20

JVM排查JVM內存過高技術

2021-05-12 06:57:03

Windows 10Windows操作系統(tǒng)

2022-08-04 13:58:28

Windows 11微軟CPU

2021-08-12 10:49:19

Spring Clou內存Java

2017-02-16 19:39:29

Windows 10System進程CPU

2012-11-30 09:50:37

亞馬遜云服務

2017-10-13 12:10:57

Linux服務器性能CPU和內存類
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久综合伊人一区二区三 | 国产精品欧美日韩 | 久久久久免费精品国产 | 久久综合九九 | 青青久久久| 精品一区av| 国产成人精品午夜 | 欧美日韩在线一区二区三区 | 国产精品1区2区3区 一区中文字幕 | 亚洲一区二区精品视频 | 日韩波多野结衣 | 日韩有码在线播放 | 精品成人av | 成人无遮挡毛片免费看 | 久久精品国产免费 | 91av在线免费播放 | 6080亚洲精品一区二区 | 国产一区二区三区 | 国产高清91 | 日本福利在线观看 | 永久网站 | 麻豆久久久久久久久久 | 涩爱av一区二区三区 | 亚洲高清在线 | 国产亚洲人成a在线v网站 | 日韩欧美黄色 | 国产一区电影 | 久草视频网站 | 中文字幕 国产精品 | 中文字幕一区二区三区精彩视频 | 欧美日韩国产高清 | 久久免费精品视频 | 日批av| 一区二区三区四区电影视频在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 午夜视频一区二区三区 | 成人黄色在线 | 久久久天堂| 日韩成人av在线 | 性一交一乱一伦视频免费观看 | 天堂一区 |