本文主要介紹如何應對cpu負載高?(什么叫cpu過載?),下面一起看看如何應對cpu負載高?(什么叫cpu過載?)相關資訊。
首先,故障排除步驟1。使用top定位cpu使用率高的進程pid,然后按shift p按cpu排序。top command是linux下常用的性能分析工具,可以實時顯示系統中各個進程的資源使用情況,類似于windows的任務管理器。
第一行,任務隊列信息,與uptim: 27 : 05運行時間:up 1:57 min,當前登錄用戶:3用戶負載均衡(正常運行時間)av: 0.00,0.00,0.00平均值后面跟著的三個數字分別是1分鐘,5分鐘,15分鐘。負載平均數據是通過每5秒檢查一次活動進程的數量,然后根據特定的算法計算出來的數值。如果這個數字除以邏輯cpu的數量,當結果高于5時,表明系統第二行任務(進程)過載。
總進程:150總,運行:1運行,休眠:149休眠,停止: 0停止,僵尸進程: 0僵尸。
第三行,cpu狀態信息
0.0% us[用戶空間]用戶空間占用cpu的百分比。0.3% sy[sysctl]內核空間占用cpu的百分比。0.0% ni[]優先級改變的進程占用cpu的百分比99.7% id[idol]空閑cpu的百分比0.0% wa[wait]等待io占用cpu的百分比0.0% hi[硬件irq]硬中斷占用cpu的百分比0.0% si[軟件中斷]軟中斷占用cpu的百分比第4行,內存狀態。
總共1003020k,已用234464kused,可用777824kfree,緩沖區24084k[緩存內存量]
第五行,swap交換分區信息。
2031612ktotal,536kused,2031076kfree,505864 kcached[緩沖交換區總量]
可用內存=空閑緩沖區ca對于內存監控,在頂部,我們應該始終監控第五行中交換分區的使用情況。如果這個值是不斷變化的,說明內核在內存和swap之間不斷交換數據,說明真正的內存不夠用。第四行,總在用內存(已用)指的是現在系統內核控制的內存,第四行,總空閑內存(空閑)指的是內核還沒有納入其控制范圍的量。不是所有內核管理的內存都在用,過去可以重用的內存也在用。內核不會把這些可重用的內存歸還給free,所以linux上的空閑內存會越來越少,但是don 別擔心。更多linux內核視頻資料免費。獲取后臺私信【內核】自己獲取。
第六行是空白的。
第七行下面:每個流程(任務)的狀態監控
pid進程id用戶進程所有者pr進程優先級ninice值。負值表示高優先級,正值表示低優先級virt進程使用的虛擬內存總量,以kb為單位。virt = swap resres——由進程使用且未換出的物理內存大小,以kb為單位。res =代碼數據shr以kbs為單位的共享內存大小進程狀態。d=不間斷睡眠狀態r=運行s=睡眠t=跟蹤/停止z=僵尸進程% cpu自上次更新以來占用的cpu時間百分比% mem進程時間使用的物理內存百分比進程使用的總cpu時間,單位1/100秒命令進程名(命令名/命令行)詳細信息。
virt:虛擬內存使用虛擬內存1。進程 的虛擬內存的大小需求與展望,包括庫、代碼、數據等。2.如果進程申請了100 m的內存,但實際上只使用了10m,那么它將增長100m,而不是實際使用量res:resident內存使用量memory resident 1。進程當前使用的內存大小,但不包括換出2。與其他進程共享3。如果申請100m內存,實際使用10m,只會增加10m,與virt 4相反。關于庫占用的內存,只統計加載的庫文件shr: shared memory共享內存1占用的內存大小。除了自己的進程2之外,它還包括其他進程的共享內存。雖然該進程只使用了幾個共享庫函數,但它包含了整個共享庫的大小3。計算出一個進程占用物理內存大小的公式:res–shr 4和swap out后,會減少data1和data占用的內存。如果top不 t有一個顯示器。按f鍵顯示它。2.這個程序所需要的真實數據空間是真正在操作中使用的。在top運行期間,可以通過top的內部命令來控制過程的顯示模式。內部命令如下:s更改屏幕更新頻率l關閉或打開第一部分第一行中頂部信息的表示t關閉或打開第二行中任務和第三行中cpu信息的表示m關閉或打開第一部分第四行中mem和第五行中交換信息的表示n排列列表 按pid大小的順序排列進程pc .按pu占用的順序排列進程列表m–按內存占用的順序排列進程列表h–顯示幫助n–設置進程列表中顯示的進程數量q–退出top–更改屏幕更新周期top使用:
用法格式:top[][d][p][q][c][c][s][n][c][c][s][n]參數說明:d:指定兩次屏幕信息刷新的時間間隔。當然,用戶可以使用s interactiv:僅通過指定監控進程id來監控進程的狀態。q:這個選項將使頂部刷新沒有任何延遲。如果調用者擁有超級用戶權限,那么top將以可能的最高優先級運行。s:指定累計模式。讓top命令在安全模式下運行。這將消除由交互命令引起的潛在危險。i:使top不顯示任何空閑或死亡的進程。c:顯示整個命令行,而不僅僅是命令名。這時候發現如果java的進程占用太多而can 不要一直下去,要搞清楚是什么線程導致比例高。以圖中的過程為例。如果發現pid為31357的java進程一直占用很高的cpu比率,記錄它的pid。
2.檢查java進程中線程的占用情況。
top h p 31357然后按shift p按cpu排序。
描述:h表示顯示線程,p表示指定的進程。
可以看到cpu使用率高的線程,記下它們的pid,假設這里31357的cpu比率始終是50%。
或者用ps mp pid o thread,tid,time查詢進程,哪個線程的cpu占用率高。記住tid會把上圖中線程占用率最高的29108轉換成十六進制的 71b4。
3.通過jstack命令獲取資源占用異常的線程棧,可以臨時保存到一個文件中查看jstack 31357 jstack.31357原木
可以看到上面指定線程的堆棧信息。如果您想查看關于線程中鎖的附加信息,您可以添加一個l參數。
4.上述方法用于正常工藝條件下的疊層印刷。
使用jstack l命令時沒有響應。估計cpu已經站不住了,可以 不要執行普通的命令。根據提示【目標進程不響應時可以使用f選項】,只能放大。
f &;pid&; jstack。“pid”。文本文件(textfile)
實際的日志結果如下所示:
發現大量線程被阻塞,有用的結果在這里:
很明顯,線程19576已經運行,excel導出的相關方法已經實現。這就是問題所在。下面的任務是檢查這個地方的代碼邏輯。
jstack命令格式:
jstack [選項] pid
參數描述:
pid can t respond,它強制打印一個很長的stack列表l l l .打印關于鎖的附加信息,比如屬于java.util.concurrent m混合模式輸出(包括java和本地c/c片段)stack的ownabl: java應用的process number 5jps命令查看java進程的pid更實用。
jps [選項] [主機id ]
參數描述:
m輸出傳遞給main方法的參數,如果是嵌入式jvm,則為null。l輸出應用程序主類的完整包名或應用程序jar文件的完整路徑。v輸出傳遞給jvm的參數。三個參數相加顯示更詳細的信息:
發現jmx的遠程端口是在這些java進程的啟動參數中打開的。一般情況下,通過jconsole遠程連接可以看到jvm的日常參數。例如,在本地訪問上圖中的pay.war流程:
了解更多如何應對cpu負載高?(什么叫cpu過載?)相關內容請關注本站點。
蘋果筆記本8g內存夠用嗎(辦公筆記本8g內存夠用嗎)
oppo手機a52的參數配置(oppoa52參數詳細參數)
沒有郵政卡卻收到短信扣費服務(沒有郵政卡卻收到短信開通快捷支付)
主機配置模擬器手機版(主機模擬器有哪些)
全面屏4k智能電視排行榜(4k電視和全面屏電視怎么選)
cpu負載過高怎么處理(cpu負載過高是什么意思)
電腦如何更改顯示語言(電腦怎么修改顯示語言)
dell臺式進去bios是哪個鍵(dell臺式機怎么進去bios界面)
在電腦上怎么下載軟件到桌面(ppt在電腦上怎么下載軟件)
優盤和硬盤哪個好,優盤與硬盤哪個里面的數據更安全?
怎么格式化手機恢復出廠設置,oppo怎么格式化手機恢復出廠設置
撿到的小米怎么解鎖,撿了個小米4手機怎么解鎖
windows無法登陸微軟賬號(win10無法登錄微軟賬號)
hdmi轉vga影響(hdmi轉vga會燒顯卡嗎)
電信送的光貓帶路由功能嗎(電信送的光貓好用嗎)
華為手機如何掃描圖片(華為手機如何掃描成pdf文件)
怎樣把分出來的盤弄回系統盤,W7下如何把由C盤分出來的盤重新合回C盤
筆記本最高配置排行榜,支持win7的最高配置筆記本
固態硬盤指的是c盤嗎還是d盤,固態硬盤 就是c盤嗎
新買電腦怎么安裝軟件應用(新電腦買來怎么裝軟件)