91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

程序員不可不知的Linux性能工具

發布時間:2020-08-07 03:28:36 來源:網絡 閱讀:26255 作者:zfz_linux_boy 欄目:軟件技術

前言

在實際開發中,有時候會收到一些服務的監控報警,比如CPU飆高,內存飆高等,這個時候,我們會登錄到服務器上進行排查。本篇博客將涵蓋這方面的知識:Linux性能工具。

一次線上問題排查模擬

背景:服務在平穩運行一段時間后,CPU突然飆高。

程序員不可不知的Linux性能工具

通過top命令,可以確認下,到底是哪個進程導致CPU飆高了(也許是誤報呢?)。

可以看到圖中PID是2816的進程,CPU使用率非常高。

程序員不可不知的Linux性能工具

使用top -Hp 2816來對進程下的線程進行觀察。圖中可以發現,2825這個線程CPU非常高。

程序員不可不知的Linux性能工具

這里利用Python非常方便的把十進制的線程ID轉化成了16進制,為什么要這么做呢?

因為在接下來的線程DUMP文件中使用的就是16進制的NID。

程序員不可不知的Linux性能工具

程序員不可不知的Linux性能工具

在實際中,我們應該利用jstack pid多DUMP幾次,因為線程存在狀態轉換,因此多次DUMP有利于抓取到線程更多的信息。

圖中,你可以觀察到,一個線程得到了鎖,在運行,遲遲沒有釋放,而另一個線程一直在等待這個鎖。至此,就可以到去查看代碼去分析為什么鎖遲遲不釋放的原因了。

性能監測工具top詳解

上文的案例中,就使用到了top,而在實際中,top的信息量是很大的,這里詳細分析下。

程序員不可不知的Linux性能工具

第一行:

涉及到2個時間,一個是系統時間,一個是機器運行的時間。【我們應該重點關注的是機器運行的時間,Why? 有時候,重啟機器能帶來很多問題,你懂的!】

多少用戶登錄了系統?【通過who/w/history可以查到更多信息】

3個load值是什么含義?

分別代表的是1MIN,5MIN,15MIN機器的負載情況,如何確定負載的大小呢?需要和CPU的核數相結合來看,比如該機器是4核CPU,那么如果load值超過了4,就意味著負載很大了!【在top下按下1可以觀察出CPU的個數】

上述信息,其實也可以通過uptime命令來獲取。

第二行:

主要是總共有多少個任務,重點應該關注的是僵尸狀態的任務數。

第三行:

主要是CPU的一些信息。

US/SY,說的就是用戶進程和系統進程使用CPU的占比。

NI,即NICE,表示被調整過線程優先級的進程占比,這個比例正常不應該很大。

ID,表示空閑;WA表示資源等待的時間,比如在瞬時大流量下,服務打了很多日志的話,那么這個值就會飆高,因為這會很消耗資源的。

HI,硬中斷,一般就是外設引起的,如果HI飆高的話,那么意味著外設在硬件層面出現了問題。SI表示軟中斷。

ST,即steel,如果該主機是虛擬的話會有這個ST信息,也即是該虛擬機從宿主機獲取CPU的時間片的百分占比。

程序員不可不知的Linux性能工具

第四和第五行:

這里主要說2個概念性的東西:buffer 和 cache。

buffer主要是什么呢?應該是待處理的數據,主要是處理2個系統之間速度不匹配的問題。而cache,一般應該是結果數據的緩存,比如從DB加載一些信息供查詢用。

SWAP分區,就是想利用硬盤的做一部分緩存,如果SWAP交換非常頻繁的話,就是說內存不夠用!

列表說明:

PID 進程ID、USER 用戶、PR 優先級、VIRT 虛擬內存、RES 駐留內存、SHR 共享內存

這里需要指出的是,RES表示的是該進程實際占用的內存,而并不是申請的內存大小。也就是說當前進程所占用的內存物理大小是 RES-SHR。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

车致| 西丰县| 平果县| 托克逊县| 射阳县| 沭阳县| 芜湖县| 武乡县| 旬邑县| 南城县| 西昌市| 明光市| 马关县| 南陵县| 清丰县| 抚松县| 甘洛县| 景宁| 耒阳市| 固原市| 嵊泗县| 平顶山市| 阿瓦提县| 克山县| 巨野县| 咸丰县| 田东县| 泗水县| 明溪县| 南宫市| 普定县| 平南县| 祁门县| 台南县| 图片| 山西省| 富阳市| 当涂县| 东丰县| 中方县| 鹿邑县|