程序員也要會的 Linux 命令


1. 整機

top

在這裏插入圖片描述
1查看單個 CPU 性能
在這裏插入圖片描述

uptime

系統性能命令精簡版 uptime
在這裏插入圖片描述
說明:

`load average` : 系統負載均衡
	
	三個值分別代表:系統1分鐘,5分鐘,15分鐘系統的平均負載值
	
	這三個值相加,除以3,再乘以100%的值,如果高於60%,證明系統的負擔壓力重

2. CPU

vmstat

vmstat -n 2 3
在這裏插入圖片描述
一般 vmstat 工具的使用是通過兩個數字參數來完成的
第一個參數是採樣的時間間隔數,單位是秒
第二個參數是採樣的次數

  • procs

    • r : 運行和等待 CPU 時間片的進程數,原則上1核的 CPU 的運行隊列不要超過2,整個系統的運行隊列不能超過總核數的2倍,否則代表系統壓力過大
    • b:等待資源的進程數,比如正在等待磁盤I/O、網絡I/O等
  • cpu

    • us:用戶進程消耗 CPU 時間片百分比,us 值高,用戶進程消耗 CPU 時間多,如果長期大於50%,需要優化程序
    • sy:內核進程消耗的 CPU 時間百分比

    us + sy 參考值爲80%,如果 us + sy 大於80%,說明可能存在 CPU 不足

    • id:處於空間的 CPU 百分比
    • wa:系統等待IO的 CPU 時間百分比
    • st:來自於一個虛擬機偷取的 CPU 時間的百分比

查看額外

  • 查看所有CPU核信息
    mpstat -P ALL 2 每2秒採樣一次
    mpstat -P ALL 2 5 每2秒採樣一次,共採樣5次
    在這裏插入圖片描述
  • 每個進程使用的CPU用量分解信息
    pidstat -u 1 -p 進程編號
    在這裏插入圖片描述

3. 內存

應用程序可用內存數 free

free -g 內存大小按照 GB 統計
free -m 內存大小按照 MB 統計
在這裏插入圖片描述

  • 經驗
    應用程序可用內存/系統物理內存
    > 70% 內存充足
    < 20% 內存不足,需要增加內存
    在20% ~ 70%之間,內存基本夠用

查看額外

pidstat -p 進程號 -r 採樣間隔秒數

在這裏插入圖片描述

4. 硬盤

df

df -h 查看磁盤剩餘空間
在這裏插入圖片描述

5. 磁盤IO

iostat

iostat -xdk 2 3

在這裏插入圖片描述
磁盤塊設備分佈

  • rkB/s 每秒讀取數據量kB

  • wkB/s 每秒寫入數據量kB

  • svctm I/O請求的平均服務時間,單位毫秒

  • util 一秒中有百分幾的時間用於 I/O 操作,表示磁盤帶寬跑滿,需要優化程序或者增加磁盤

    rkB/s、wkB/s根據系統應用不同,會有不同的值,但有規律可循:長期、超大數據讀寫,肯定不正常,需要優化程序讀寫
    svctm 的值與 await 的值很接近,表示幾乎沒有 I/O 等待,磁盤性能好
    如果 await 的值遠高於 svctm 的值,則表示 I/O 隊列等待太長,需要優化程序或者更換磁盤

查看額外

pidstat -d 採樣間隔數 -p 進程號

在這裏插入圖片描述

6. 網絡IO

ifstat

wget http://distfiles.macports.org/ifstat/ifstat-1.1.tar.gz
tar xzvf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure
make
make install

查看命令

ifstat 1

各個網卡的 in、out
觀察網絡負載情況
程序網絡讀寫是否正常

  • 程序網絡I/O優化
  • 增加網絡I/O帶寬

Mr.superbeyone


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章