天天看點

Linux 常用性能工具簡介.

一、wget 檔案下載下傳

使用wget下載下傳單個檔案:wget URL

下載下傳并以不同的檔案名儲存:wget -O wordpress.zip URL

wget限速下載下傳:wget --limit-rate=300k URL

使用wget斷點續傳:wget -c URL

使用wget背景下載下傳:wget -b URL (檢視下載下傳進度:tail -f wget-log)

測試下載下傳連結:wget --spider URL

下載下傳指定格式檔案:wget -r -A.pdf URL

FTP下載下傳:wget --ftp-user=USERNAME --ftp-password=PASSWORD URL

二、scp 跨機遠端拷貝

從遠處複制檔案到本地目錄:$scp [email protected]:/opt/soft/demo.tar /opt/soft/

從遠處複制到本地:$scp -r [email protected]:/opt/soft/test /opt/soft/

上傳本地檔案到遠端機器指定目錄:$scp /opt/soft/demo.tar [email protected]:/opt/soft/scptest

上傳本地目錄到遠端機器指定目錄:$scp -r /opt/soft/test [email protected]:/opt/soft/scptest

三、sar

    sar是System Activity Reporter(系統活動情況報告)的縮寫。sar工具将對系統目前的狀态進行取樣,然後通過計算資料和比例來表達系統的目前運作狀态。它的特點是可以連續對系統取樣,獲得大量的取樣資料;取樣資料和分析的結果都可以存入檔案,所需的負載很小。sar是目前Linux上最為全面的系統性能分析工具之一,可以從14個大方面對系統的活動進行報告,包括檔案的讀寫情況、系統調用的使用情況、序列槽、CPU效率、記憶體使用狀況、程序活動及IPC有關的活動等,使用也是較為複雜。

檢視CPU使用率: sar -u 1 2 (後面兩個參數表示監控的頻率,比如例子中的1和2,表示每秒采樣一次,總共采樣兩次)

Linux 常用性能工具簡介.
  • %user 使用者模式下消耗的CPU時間的比例;
  • %nice 通過nice改變了程序排程優先級的程序,在使用者模式下消耗的CPU時間的比例
  • %system 系統模式下消耗的CPU時間的比例;
  • %iowait CPU等待磁盤I/O導緻空閑狀态消耗的時間比例;
  • %steal 利用Xen等作業系統虛拟化技術,等待其它虛拟CPU計算占用的時間比例;
  • %idle CPU空閑時間比例;

檢視CPU平均負載: sar -q 1 2

Linux 常用性能工具簡介.
  • runq-sz:運作隊列的長度(等待運作的程序數)
  • plist-sz:程序清單中程序(processes)和線程(threads)的數量
  • ldavg-1:最後1分鐘的系統平均負載
  • ldavg-5:過去5分鐘的系統平均負載
  • ldavg-15:過去15分鐘的系統平均負載

查詢記憶體: sar -r 1 2

Linux 常用性能工具簡介.
  • kbmemfree:這個值和free指令中的free值基本一緻,是以它不包括buffer和cache的空間.
  • kbmemused:這個值和free指令中的used值基本一緻,是以它包括buffer和cache的空間.
  • %memused:實體記憶體使用率,這個值是kbmemused和記憶體總量(不包括swap)的一個百分比.
  • kbbuffers和kbcached:這兩個值就是free指令中的buffer和cache.
  • kbcommit:保證目前系統所需要的記憶體,即為了確定不溢出而需要的記憶體(RAM+swap).
  • %commit:這個值是kbcommit與記憶體總量(包括swap)的一個百分比.

查詢頁面交換:sar -W 1 3

Linux 常用性能工具簡介.
  • pswpin/s:每秒系統換入的交換頁面(swap page)數量
  • pswpout/s:每秒系統換出的交換頁面(swap page)數量

四、free

free工具用來查詢系統可用記憶體,顯示目前系統未使用和已使用的記憶體數目,還可以顯示被核心使用的記憶體緩存區。

Linux 常用性能工具簡介.
  • total:記憶體總數
  • used:已經使用的記憶體數
  • free:空閑的記憶體數
  • shared:目前已經廢棄不用
  • buffers Buffer:緩存記憶體數

程式實實在在吃掉的記憶體數:Mem中的used - buff/cache

可以挪用的記憶體總數:Mem中的free + buff/cache

swap:也就是我們通常所說的虛拟記憶體。當記憶體使用到一定值的時候,會開始進行交換(怎麼檢視額定值 cat /proc/meminfo)

page cache 和 buffer cache的差別?

    簡單來說,page cache用來緩存檔案資料,buffer cache用來緩存磁盤資料。在有檔案系統的情況下,對檔案操作,那麼資料會緩存到page cache。如果直接采用dd等工具對磁盤進行讀寫,那麼資料會緩存到buffer cache。

free -s 10  #周期性的查詢記憶體使用情況,每10s 執行一次指令 

五、iostat

    被用于監視系統輸入輸出裝置和CPU使用情況,它的特點是彙報磁盤活動統計情況,同時也會彙報出CPU的使用情況。

Linux 常用性能工具簡介.

注:如果%iowait的值過高,表示硬碟存在I/O瓶頸。 %idle值高,表示CPU較空閑。如果%idle值高但系統響應慢時,有可能是CPU等待配置設定記憶體,此時應加大記憶體容量。%idle值如果持續低于10,那麼系統的CPU處理能力相對較低,表明系統中最需要解決的資源是CPU。

  • tps:該裝置每秒的傳輸次數;
  • kB_read/s:每秒從裝置(drive expressed)讀取的資料量;
  • kB_wrtn/s:每秒向裝置(drive expressed)寫入的資料量;
  • kB_read:讀取的總資料量;kB_wrtn:寫入的總數量資料量;

六、vmstat

顯示虛拟記憶體狀态,但是他可以報告關于程序、記憶體、I/O等系統運作狀态。

Linux 常用性能工具簡介.

Procs(程序)

    r: 運作隊列中程序數量,這個值也可以判斷是否需要增加CPU。(長期大于1)

    b: 等待IO的程序數量。

Memory(記憶體)

    swpd: 使用虛拟記憶體大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統性能。

    free: 空閑實體記憶體大小。

    buff: 用作緩沖的記憶體大小。

    cache: 用作緩存的記憶體大小,如果cache的值大的時候,說明cache處的檔案數多,如果頻繁通路到的檔案都能被cache處,那麼磁盤的讀IO bi會非常小。

Swap

    si: 每秒從交換區寫到記憶體的大小,由磁盤調入記憶體。

    so: 每秒寫入交換區的記憶體大小,由記憶體調入磁盤。

    注意:記憶體夠用的時候,這2個值都是0,如果這2個值長期大于0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閑記憶體(free)很少的或接近于0時,就認為記憶體不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統性能這時不會受到影響的。

IO(現在的Linux版本塊的大小為1kb)

    bi: 每秒讀取的塊數

    bo: 每秒寫入的塊數

    注意:随機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。

system(系統)

    in: 每秒中斷數,包括時鐘中斷。

    cs: 每秒上下文切換數。

    注意:上面2個值越大,會看到由核心消耗的CPU時間會越大。

CPU(以百分比表示)

    us: 使用者程序執行時間百分比(user time)

    us的值比較高時,說明使用者程序消耗的CPU時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程式算法或者進行加速。

    sy: 核心系統程序執行時間百分比(system time)

    sy的值高時,說明系統核心消耗的CPU資源多,這并不是良性表現,我們應該檢查原因。

    wa: IO等待時間百分比

    wa的值高時,說明IO等待比較嚴重,這可能由于磁盤大量作随機通路造成,也有可能磁盤出現瓶頸(塊操作)。

    id: 空閑時間百分比

七、 top

可以實時動态地檢視系統的整體運作情況,是一個綜合了多方資訊監測系統性能和運作資訊的實用工具,是Linux下的任務管理器。通過top指令所提供的互動式界面,用熱鍵可以管理。熱鍵如下:

  • q:退出top指令
  • <Space>:立即重新整理
  • s:設定重新整理時間間隔
  • c:顯示指令完全模式
  • t::顯示或隐藏程序和CPU狀态資訊
  • m:顯示或隐藏記憶體狀态資訊
  • l:顯示或隐藏uptime資訊
  • f:增加或減少程序顯示标志
  • S:累計模式,會把已完成或退出的子程序占用的CPU時間累計到父程序的MITE+
  • P:按%CPU使用率排行
  • T:按MITE+排行
  • M:按%MEM排行
  • u:指定顯示使用者程序
  • r:修改程序renice值
  • kkill:程序
  • i:隻顯示正在運作的程序
  • W:儲存對top的設定到檔案^/.toprc,下次啟動将自動調用toprc檔案的設定。
  • h:幫助指令。
  • q:退出

注:強調一下,使用頻率最高的是P、T、M,因為通常使用top,我們就想看看是哪些程序最耗cpu資源、占用的記憶體最多; 注:通過”shift + >”或”shift + <”可以向右或左改變排序列 如果隻需要檢視記憶體:可用free指令。隻檢視uptime資訊(第一行),可用uptime指令;

Linux 常用性能工具簡介.

第一行

    • 11:57:12 : 系統目前時間
    • , 2:45 : 系統開機到現在經過了多少時間
    • 3 users : 目前3使用者線上
    • load average: 0.19, 0.17, 0.14: 系統1分鐘、5分鐘、15分鐘的CPU負載資訊

第二行

    • Tasks:任務;
    • 205 total:很好了解,就是目前有205個任務,也就是205個程序。
    • 2 running:2個程序正在運作
    • 203 sleeping:203個程序睡眠
    • 0 stopped:停止的程序數
    • 0 zombie:僵死的程序數

第三行

    • Cpu(s):表示這一行顯示CPU總體資訊
    • 9.1%us:使用者态程序占用CPU時間百分比,不包含renice值為負的任務占用的CPU的時間。
    • 1.3%sy:核心占用CPU時間百分比
    • 0.0%ni:改變過優先級的程序占用CPU的百分比
    • 89.6%id:空閑CPU時間百分比
    • 0.0%wa:等待I/O的CPU時間百分比
    • 0.0%hi:CPU硬中斷時間百分比
    • 0.0%si:CPU軟中斷時間百分比
    • 注:這裡顯示資料是所有cpu的平均值,如果想看每一個cpu的處理情況,按1即可;折疊,再次按1;

第四行

    • Men:記憶體的意思
    • total:實體記憶體總量
    • used:使用的實體記憶體量
    • free:空閑的實體記憶體量
    • buffers:用作核心緩存的實體記憶體量

第五行

    • Swap:交換空間
    • total:交換區總量
    • used:使用的交換區量
    • free:空閑的交換區量
    • cached:緩沖交換區總量

程序資訊

    • PID:程序的ID
    • USER:程序所有者
    • PR:程序的優先級别,越小越優先被執行
    • NInice:值
    • VIRT:程序占用的虛拟記憶體
    • RES:程序占用的實體記憶體
    • SHR:程序使用的共享記憶體
    • S:程序的狀态。S表示休眠,R表示正在運作,Z表示僵死狀态,N表示該程序優先值為負數
    • %CPU:程序占用CPU的使用率
    • %MEM:程序使用的實體記憶體和總記憶體的百分比
    • TIME+:該程序啟動後占用的總的CPU時間,即占用CPU使用時間的累加值。
    • COMMAND:程序啟動指令名稱

八、結語

部落客隻是一個Linux菜鳥。秉着先博後淵的原則,看到了這些知識,就先記下了,之後具體用到的時候再深究吧。才疏學淺,說的不對的地方,還請大家指正,歡迎讨論。另外在Github上發現了一個Linux指令搜尋工具,很好用,介紹給大家:

https://jaywcjlove.github.io/linux-command/
Linux 常用性能工具簡介.
上一篇: HQL查詢
下一篇: Hybris CronJob

繼續閱讀