1. 程式人生 > >CentOS 6.5中安裝使用dstat資源統計工具

CentOS 6.5中安裝使用dstat資源統計工具

scripts command inodes ftw entos 閱讀 問題 eth0 fin

目錄

  • 1 dstat 工具的使用
    • 1.1 什麽是 dstat
    • 1.2 dstat 的基本使用
      • 1.2.1 dstat 的默認選項
      • 1.2.2 dstat的常用選項
    • 1.3 檢測界面各參數的含義
    • 1.4 dstat 的高級用法
      • 1.4.1 找出占用資源最高的進程和用戶
      • 1.4.2 獲取其他應用信息
  • 2 dstat 工具的安裝
    • 2.1 (推薦)通過 yum 安裝
    • 2.2 (或)通過wget安裝
    • 2.3 (或)使用rpm安裝
  • 3 安裝中的常見問題
    • 3.1 問題描述
    • 3.2 問題解決
      • 3.2.1 網上的一種解決方法:
      • 3.2.2 最後的解決方法:

1 dstat 工具的使用

1.1 什麽是 dstat

官方定義: 多功能系統資源統計生成工具 ( versatile tool for generating system resource statistics), 可提供包含 top、free、iostat、ifstat、vmstat等多個工具的功能, 統計結果還可以保存到 csv 文件或數據庫中.

1.2 dstat 的基本使用

1.2.1 dstat 的默認選項

默認會收集 `-cpu-、-disk-、-net-、-paging-、-system- 的數據, 一秒鐘收集一次.

默認設置等同於: dstat -cdngy 1dstat -a 1 .

1.2.2 dstat的常用選項

使用 dstat -h

查看全部選項, 這裏簡單介紹常用選項:

# 直接跟數字x, 表示x秒收集一次數據, 默認為一秒
-c, --cpu     # 統計CPU狀態, 包括 user, system, idle(空閑等待時間百分比), wait(等待磁盤IO)等
-d, --disk    # 統計磁盤讀寫狀態
-D total,sda  # 統計指定磁盤或匯總信息

-m, --mem     # 統計系統物理內存使用情況, 包括used, buffers, cache, free
-l, --load    # 統計系統負載情況, 包括1分鐘、5分鐘、15分鐘平均值
-s, --swap    # 統計swap已使用和剩余量
-n, --net     # 統計網絡使用情況, 包括接收和發送數據
-N eth1,total # 統計eth1接口匯總流量

-r, --io      # 統計I/O請求, 包括讀寫請求
-p, --proc    # 統計進程信息, 包括runnable、uninterruptible、new
-y, --sys     # 統計系統信息, 包括中斷、上下文切換
-t            # 顯示統計時間, 對分析歷史數據非常有用
--fs          # 統計文件打開數和inodes數

常見使用組合為:

dstat -cmsdnl -D sda9 -N lo,etho 100 5

1.3 檢測界面各參數的含義

----system---- # 系統時間信息
---procs---    # 進程數統計
run: 運行中的和等待(CPU時間片)運行的進程數 --- 此值若長期大於1, 可考慮增加CPU
blk: 處於不可中斷狀態的進程數, 多由 IO 引發
new: 系統內核進程消耗的CPU時間百分比, 若值太高, 說明系統可能出現故障, 需檢查排除
----total-cpu-usage---- # CPU使用率
usr: 用戶進程消耗的CPU時間百分比
sys: 系統內核進程消耗的CPU時間百分比, 若值太高, 說明系統可能出現故障, 需要檢查
idl: CPU處在空閑狀態的時間百分比
wai: 等待磁盤I/O所消耗的CPU時間百分比, 值越高, 說明IO等待嚴重, 可能是磁盤大量隨機訪問造成, 也可能是磁盤的帶塊出現瓶頸(塊操作)
hiq: hardware interrupt, 硬件中斷次數
siq: software interrupt, 軟件中斷次數
-----memory-usage-----  # 內存使用率
used: 當前已使用的內存
buff: 作為buffer cache的內存, 對塊設備的讀寫進行緩沖
cache: 作為page cache的內存, 文件系統的cache. cache越大, 說明cache中的文件數多. 
# 如果頻繁訪問到的文件都能被載入cache, 那麽磁盤的讀IO將會顯著降低
free: 空閑的物理內存
---io/total---      # 磁盤IO統計
read: 從塊設備讀入的數據總量(讀磁盤)(單位: KB/s)
writ: 寫入到塊設備的數據總量(寫磁盤)(單位: KB/s)
# 註: 隨機磁盤讀寫時, 這兩個參數的值越大(如超出1M), CPU消耗在IO等待的時間就越長
-dsk/total-         # 磁盤統計
read: 讀總數
writ: 寫總數
-net/total-         # 網絡統計
recv: 網絡收包總數
send: 網絡發包總數 
---paging---        # 內存分頁統計
in: page in(換入)
out: page out(換出)
# 註: 系統的分頁活動, 是一種內存管理技術用於查找系統場景, 較大的分頁表明系統正在使用大量的交換空間. 
# 通常當系統開始用交換空間時, 說明內存已經不夠用, 或者內存非常分散. 
# 理想情況下page in(換入)和page out(換出)的值是0 0. 
---load-avg---      # 系統平均負載
# 分別對應系統當前1分鐘、5分鐘、15分鐘內的平均load, 用於反映當前系統的負載情況. 

1.4 dstat 的高級用法

1.4.1 找出占用資源最高的進程和用戶

用法: --top-(io|bio|cpu|cputime|cputime-avg|mem)

通過上述命令, 可以查看占用相關系統資源的具體用戶及其進程.

示例: 查看當前占用IO、CPU、內存最高的進程信息的命令:

dstat --top-io --top-mem --top-cpu

1.4.2 獲取其他應用信息

dstat 還可獲取其他應用信息. 如:

dstat --postfix   # 顯示postfix隊列大小
dstat --sendmail  # 顯示sendmail隊列大小
dstat --ntp       # 顯示ntp服務器時間

2 dstat 工具的安裝

2.1 (推薦)通過 yum 安裝

推薦, 不用配置其他環境, 就可以在任一路徑下使用:

yum install dstat

2.2 (或)通過wget安裝

首先安裝 wget 工具:

yum -y install wget

然後安裝 dstat 工具:

wget http://dstat.sourcearchive.com/downloads/0.7.0/dstat_0.7.0.orig.tar.gz

# 解壓, 然後進入解壓後的目錄: 
tar -xvzf dstat_0.7.0.orig.tar.gz
cd dstat-0.7.0.orig/
# 使用以下方式即可使用dstat
./dstat -V

2.3 (或)使用rpm安裝

wget http://mirror.centos.org/centos/6/os/i386/Packages/dstat-0.7.0-2.el6.noarch.rpm
rpm -ivh dstat-0.7.0-2.el6.noarch.rpm
# 直接在系統中調用dstat即可
dstat -V

3 安裝中的常見問題

3.1 問題描述

在CentOS 6.5系統中, 準備使用 yum 或 wget 命令安裝 dstat 工具, 發現兩者都不可用:

  • yum 命令出錯:

    Loaded plugins: fastestmirror
    Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
    14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
    Error: Cannot find a valid baseurl for repo: base
  • wget 命令出錯:

    -bash: wget: command not found

3.2 問題解決

搜索一圈後, 發現問題在於服務器未能成功連接外網, 檢測方法: 在命令行中如下測試:
ping www.baidu.com # 發現找不到 www.baidu.com 主機, 說明未連接到互聯網.

3.2.1 網上的一種解決方法:

(1)使用root登陸
(2)輸入: vi /etc/systemconfig/network-scripts/ifcfg-eth0
(3)在此文件中加入DNS1=8.8.8.8
(4)然後保存
(5)service network restart # 重啟網絡服務
(6) yum install gcc # 正常下載

在本人的服務器上並未找到 systemconfig 路徑, 更別說 ifcfg-eth0 文件了. . .

3.2.2 最後的解決方法:

# 編輯/etc/resolv.conf文件:
vi /etc/resolv.conf
# 向其中添加: 
nameserver 8.8.8.8
# 保存退出即可

此時 ping www.baidu.com , 發現可以 ping 通 —— 問題解決.

參考:

https://www.cnblogs.com/vincent-hv/p/3358194.html

版權聲明

作者: ma_shoufeng(馬瘦風)

出處: 博客園 馬瘦風的博客

您的支持是對博主的極大鼓勵, 感謝您的閱讀.

本文版權歸博主所有, 歡迎轉載, 但未經博主同意必須保留此段聲明, 且在文章頁面明顯位置給出原文鏈接, 否則博主保留追究法律責任的權利.

CentOS 6.5中安裝使用dstat資源統計工具