亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、內存占用過高

1、造成服務器內存占用過高只有兩種情況:內存溢出或內存泄漏

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

是什么導致你的Java服務器內存和CPU占用過高呢

 

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

 

2、內存過高的檢測辦法:

一般我們的JAVA服務器都是部署在linux機器上面,可以通過jvm自帶的命令進行一些檢測:

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

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

 

二、CPU使用過高

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

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

3、下載Process Explorer工具:

4、打開工具后,根據剛才的進程號找到進程;

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

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

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

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

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

分享到:
標簽:服務器 Java
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定