java問題導致linux負載、cpu過高如何定位
1.用top找到最耗資源的程序id
[[email protected] bin]# top
top - 16:56:14 up 119 days, 6:17, 7 users, load average: 2.04, 2.07, 2.09
Tasks: 256 total, 1 running, 254 sleeping, 0 stopped, 1 zombie
Cpu(s): 5.0%us, 0.3%sy, 0.0%ni, 94.2%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8303056k total, 7368528k used, 934528k free, 515232k buffers
Swap: 16386260k total, 27312k used, 16358948k free, 4670096k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5244 root 15 0 1940m 1.3g 10m S 205.3 15.8 260:31.88 java
7991 root 15 0 2336 1020 704 R 2.0 0.0 0:00.01 top
2.查詢最消耗資源的java程序
[[email protected] bin]# top -p 5244 -H
top - 16:56:00 up 119 days, 6:17, 7 users, load average: 2.05, 2.08, 2.09
Tasks: 67 total, 2 running, 65 sleeping, 0 stopped, 0 zombie
Cpu(s): 25.8%us, 0.2%sy, 0.0%ni, 73.4%id, 0.5%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 8303056k total, 7369024k used, 934032k free, 515220k buffers
Swap: 16386260k total, 27312k used, 16358948k free, 4670100k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5920 root 18 0 1940m 1.3g 10m R 98.6 15.8 121:55.29 java
5925 root 25 0 1940m 1.3g 10m R 98.6 15.8 121:21.41 java
7985 root 15 0 1940m 1.3g 10m S 3.3 15.8 0:00.10 java
5246 root 15 0 1940m 1.3g 10m S 1.0 15.8 1:02.50 java
5247 root 15 0 1940m 1.3g 10m S 1.0 15.8 1:02.35 java
5248 root 15 0 1940m 1.3g 10m S 1.0 15.8 1:02.38 java
3.列印java 棧 資訊
在jdk的bin下執行
[[email protected] bin]# jstack 5244 >stack.txt
4.將耗資源的javaPID轉換為16進位制(5920轉1720<16進位制> 去百度找 :十進位制轉十六進位制)
PID 對應 堆疊中的nid(16進位制)
去stack.txt 中查詢nid=1720的問題
"LongTimeTask Thread" daemon prio=10 tid=0x40916400 nid=0x1720 runnable [0x412fe000]
java.lang.Thread.State: RUNNABLE
at com.zving.tk.service.CreatePaperService.createPaper(CreatePaperService.java:143)
at com.zving.tk.service.CreatePaperService.execute(CreatePaperService.java:55)
at com.zving.framework.messages.LongTimeTask.run(LongTimeTask.java:154)
5.根據具體問題查詢原始碼
6.同時要看一下堆的情況
在jdk的bin目錄執行
jmap - heap 5244
jmap -histo 5244
相關推薦
java問題導致linux負載、cpu過高如何定位
1.用top找到最耗資源的程序id [[email protected] bin]# top top - 16:56:14 up 119 days, 6:17, 7 users, load average: 2.04, 2.07, 2.09 Tasks: 2
MYSQL "ORDER BY rand()"的坑--容易導致機器負載、CPU佔用過高
在一次微信砍價活動營銷中,使用了4核16G10M頻寬的伺服器支撐業務,本來這個配置跑個PHP+MYSQL+nginx肯定輕輕鬆的事情,可是隨著活動的高潮,併發數一高,機器負載核CPU一下子就達到100% 始終找不到原因,只知道是mysql分配的記憶體不夠,一直給它加,但是重啟m
linux下查找java進程占用CPU過高原因
jmeter 性能測試 linux下查找java進程占用CPU過高原因1. 查找進程top查看進程占用資源情況明顯看出java的兩個進程22714,12406占用過高cpu. 2.查找線程使用top -H -p <pid>查看線程占用情況 3.查找java的堆棧信息將線程id轉換成十六進制
JAVA Linux 排查CPU 過高的方法
原文:https://blog.csdn.net/zhanglh046/article/details/50443528 方法一 1 ps -ef | grep java 查詢java 程序號 2 top -p PID -H 觀察佔用CPU較多的執行緒 3 找出CPU消耗較多的執行緒
linux查詢cpu過高原因--java
1. 查詢java pid top -c 2. 查詢java程序下,執行緒情況 top -Hp pid(threadIdList) 3. 將10進位制執行緒id轉為16進位制 printf "%x \n" threadId(tid) 4. 查詢執行緒情況 jstack pid|grep '0xt
linux排查java程序佔用CPU過高原因方法
前言 在運維tomcat伺服器時,我們通常會發現cpu的負載過高,大多數原因是由於java程式碼的bug引起的。可能你的java程式碼有很多,檔案也有很多,一行一行的排查是很費時間的。這時我們就可以使用jstack、top等工具對引起問題的程式碼進行定位,
linux下查詢java程序佔用CPU過高原因
1. 查詢程序 top檢視程序佔用資源情況 明顯看出java的兩個程序22714,12406佔用過高cpu. 2.查詢執行緒 使用top -H -p <pid>檢視執行緒佔用情況
weblogic下java程序占用cpu過高的問題排查
技術 .com htm http 執行命令 roo monitor The tin 1、cpu使用情況如圖: 2、執行命令 :jstack 126624 > cpu1112.log (註意執行此命令時的用戶需為執行進程的用戶,所以此處需要用weblogi
java應用佔用cpu過高原因分析
線上伺服器cpu佔用過高問題排查 1、定位最耗cpu的程序 命令:top 2、定位最耗cpu的執行緒 命令:Top –Hp PID 例如:Top –Hp 12086 3、列印執行緒堆疊資訊 命令:Printf ‘%x\n’ PID 例如:printf
JVM定位佔用cpu過高堆疊資訊(Linux)
第一步:使用top命令檢視程序佔用CPU的情況,獲取PID top
Linux中如何精準定位JVM執行緒CPU過高
此文提供一種方法來快速定位Linux中JVM的執行緒CPU過高的問題。執行在Linux上的JVM的一個核心概念是:Java執行緒通過native threads實現,這導致Java中的每個執行緒對應著一個獨立的Linux程序。 仍然需要生成jvm程序的thr
線上Java程式佔用 CPU 過高,請說一下排查方法?
> 我是風箏,公眾號「古時的風箏」,一個兼具深度與廣度的程式設計師鼓勵師,一個本打算寫詩卻寫起了程式碼的田園碼農! 文章會收錄在 [JavaNewBee](https://github.com/huzhicheng/JavaNewBee) 中,更有 Java 後端知識圖譜,從小白到大牛要走的路都在裡面。 這
Mysql占用CPU過高如何優化,如何解決
lang 主服務器 disable mission 帳號 知識 用戶 clean oca 2017-02-28 15:13 331人閱讀 評論(0) 收藏 舉報 MySQL占用CPU過高如何優化 一次生產DB服務器的 超負荷運行問題解決: 1.查看生產
Spring cloud開發的微服務部署到Linux上內存過高的問題
linux系統服務 內存參數 中間 size 但是 aps 內存占用 style 驗證 【問題描述】 在使用spring cloud過程中一個很嚴重的資源問題就是內存占用過高,而實際上開發測試並沒有很大的量,甚至卻出現了服務無法正常訪問的問題。 【原因分析】 主
elasticsearch CPU過高原因查找
elasticsearch CPU 今天稍微壓了了一下線上的ES集群,發現CPU 過高,線上用的是4核16G。 找到ES的進程14642, 執行 top -Hp 14642 選取其中一個過高的線程 jstack 14642 | grep -A 30 3989 發現 你也可以用 jstack 14
nginx系統占用CPU過高
阿裏 cpu高 pid 就是 tin nginx ret bject gin 一般來說,只要您的linux系統出現占用CPU資源高,或者占用內存多的放,都離不開php-cgi或php-fpm進程,當然,還有一個進程就是mysqld進程,遇到這樣的問題,如果對linux系統不
記一次jdbc連線oracle資料庫佔用CPU過高的問題排查
背景: 公司有一個通訊系統,主要是通訊資料到客戶端程式所指定的資料庫,目前支援sqlserver、mysql和oracle三種類型的資料庫,此篇主要記錄一次oracle資料庫佔用CPU飆高的問題。 &nbs
win10 解決 WMI Provider Host 占用CPU過高問題
log sdn tgw com win8.1 選擇 木馬 翻譯 event 真心懶得寫Blog,但是之前遇到這個問題在網上查了一大圈,幾乎一摸一樣都是讓關防火墻等服務的,然而對於我來說,並沒有毛線用。 無奈,直接去微軟社區查,還真有一篇問題解決方案。順手翻譯一下
win10 解決 WMI Provider Host 佔用CPU過高問題
真心懶得寫Blog,但是之前遇到這個問題在網上查了一大圈,幾乎一摸一樣都是讓關防火牆等服務的,然而對於我來說,並沒有毛線用。 無奈,直接去微軟社群查,還真有一篇問題解決方案。順手翻譯一下放在這裡,希望能幫到大家。 參考連結:https://answers.m
tomcat占用cpu過高解決辦法
title 情況 處理 顯示 pri grep tar jstack 16進制 在工作中經常遇到tomcat占用cpu居高不下,針對這種情況有以下處理辦法進行排查。 jps --> 查看java的進程 top -Hp pid --> 根據jps得到的進程