国产色诱美女免费视频|欧美精彩狠狠色丁香婷婷|91黑人|日本黄色小视频|欧美一级黄色视频在这里免费观看

IT培訓-高端面授IT培訓機構
云和教育:云和數據集團高端IT職業教育品牌
  • 國家級
    全民數字素養與技能培訓基地
  • 河南省
    第一批產教融合型企業建設培育單位
  • 鄭州市
    數字技能人才(碼農)培養評價聯盟

【技術】Linux 系統性能分析工具圖解讀(一)

  • 發布時間:
    2014-12-17
  • 版權所有:
    云和教育
  • 分享:

最近看了 Brendan Gregg 大神著名的 Linux Performance Observability Tools,這么好的資料不好好學習一下實在是浪費了,又找到了大神的ppt 和 演講(需爬墻),于是把相關的命令和概念連預習,學習,復習走了一遍。

首先學習的是大神提出的 Basic Tool 有如下幾個:

uptime

top (htop)

mpstat

iostat

vmstat

free

ping

nicstat

dstat

uptime

uptime 比較重要的能顯示當前系統的負載狀態,但是這個負載究竟是什么意思呢?查了一些資料負載指的是當前可運行的程序加上正在運行的程序再加上等待 IO 的程序,比如現在運行著一個,一個等待運行,還有一個等待 IO 那么負載就是3. uptime 后面三個數分別是 1min, 5min 和 15min 的負載平均值,由于內核用了一個指數平滑的平均算法,這個值不能直接反應當前等待的進程數。此外這個值沒對多核進行 normalization 所以單核情況下當負載是 1 的時候說明 cpu 滿載了,但是對于 4 核 cpu 剛到滿負載的 25%。 一般情況下這個值越大就說明等待 CPU 的進程越多,如果大于核數就說明有進程在等待 CPU,需要看一下程序的問題或者考慮加機器了。另外即使負載過載了也不一定說明 CPU 的利用率高,因為很可能是大量的請求 IO 的進程在等待,像一些數據庫服務,所以看完負載后還要針對應用場景綜合考量。

top & htop

top 其實是一個相當全面的分析了還是事實的,其他很多命令能拿到的數據,top 一個命令就可以拿到。但是他的一個問題就是本身的 overhead 比較大,如果系統負載本身就很大那么可能就會卡住了。此外 top 可能會忽視掉那些生命周期很短的程序。top 的 manual 里詳細介紹了每個指標的意義,翻看一下還是很有收獲的。其中比較要關注的有 wa(io wait),查看是不是你的 IO 是瓶頸,還有 st (time stolen from this vm by the hypervisor) 這個指標會出現在虛擬機里的系統中,表示的是你的虛擬機在等待真實物理機的 CPU 資源的時間。如果這個值很高的話說明你的服務提供商的 CPU 資源有限你沒搶過別人,很有可能使服務商超賣了。碰到這種情況要么打客服投訴,或者多掏點銀子找個靠譜的運營商吧。

htop 是 top 的改進版,帶著各種顏色表示和百分比進度條,以及更豐富的功能,小伙伴們可以嘗試一下。

mpstat

mpstat 可以顯示出每個 CPU 核心的工作情況,其實也可以在 top 里輸入 1 看到。通過這個命令我們可以觀察是不是存在負載不均的現象,某個核心跑滿了,另一個還在閑著,造成整體性能的下降。

iostat

加上 -x 參數后可以看到幾乎全部的 io 指標,包括 tps, 請求 queue 的平均長度,平均處理時間, 磁盤帶寬利用率等等。每個指標 manual 中都有詳細的解釋。

vmstat & free

vmstat 是一個展示內存整體使用情況的命令,其中要關注一下 swpd 和 swap 的 in/out 。如果這一部分的數值過大,會頻繁的 IO 造成性能下降,要么看看是不是程序內存泄露了,要么就加內存吧。 memory 里的 buffer 指的是寫磁盤緩沖區, 而 cache 可以當成是讀文件的緩沖區。free也是類似的功能,不過只展示內存部分的內容。

ping

這個相對來說簡單一些,主要反映了主機間的延遲和連通性,很多時候也只能告訴我們這些了。可以嘗試一下 hping 有著指定端口,高級 tracerout 的功能。

nicstat

一個和 iostat 類似,不過是針對網卡的命令。

dstat

一個綜合了cpu、 memory、 IO、 network 的工具,可以事實展示當前的系統資源利用情況。

以上就是最基礎的命令了,高級一些的命令有:

sar

netstat

pidstat

strace

tcpdump

blktrace

iotop

slabtop

sysctl

/proc

待研究后再寫總結。