java線上程序排錯經驗5 -linux及其集羣環境的分析

1. top命令查看整體情況

top命令和靈活,具體可自行搜索
圖轉自: www.codesheep.cn
top命令

2. 查看內存

free -m
分析系統內存,看是否足夠程序運行

3. 磁盤佔用情況

3.1. 查看文件夾中各文件(夾)的大小

舉例

du -h --max-depth=1 /home/ubuntu/

3.2. 查看磁盤佔用情況

df -h

4. 查看磁盤IO

dd if=/dev/zero of=dd.file bs=100M count=10 conv=fdatasync

上述命令會在當前目錄生成一個dd.file文件,每次往這個文件寫100M,一共寫10次,conv=fdatasync表示實際寫盤而不是用緩存,測試磁盤IO的時候,必須加上這個才準

5 網絡能否ping通

ping ip
如果是同一個集羣系統,查看是否ping通,是否丟包情況,ping速度如何

6. 查看網卡以及測試集羣中SCP複製速度

ifconfig找到本機Ip,對應的即爲本IP網卡
假如你看到的網卡是 eth0, 查看網卡速度的命令爲

ethtool eth0  

有時候網卡會有問題,導致網絡有問題,排除後,我們可以測試節點間數據複製情況
scp 命令將上面生成的文件複製到另外一個機器,查看其速度

7 查看cpu報告與設備利用率報告

iostat, linux需要先安裝
使用方法:
iostat

ubuntu@VM-0-12-ubuntu:~/sample/testio$ iostat
Linux 4.4.0-91-generic (VM-0-12-ubuntu)         09/16/2018      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.63    0.01    0.41    0.34    0.00   98.62

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.86         5.31        15.11   27627271   78590297
scd0              0.00         0.00         0.00        208          0

第一部分包含了CPU報告

  • %user : 顯示了在執行用戶(應用)層時的CPU利用率
  • %nice : 顯示了在以nice優先級運行用戶層的CPU利用率
  • %system : 顯示了在執行系統(內核)層時的CPU利用率
  • %iowait : 顯示了CPU在I/O請求掛起時空閒時間的百分比
  • %steal : 顯示了當hypervisor正服務於另外一個虛擬處理器時無意識地等待虛擬CPU所佔有的時間百分比。
  • %idle : 顯示了CPU在I/O沒有掛起請求時空閒時間的百分比
    第二部分包含了設備利用率報告
  • Device : 列出的/dev 目錄下的設備/分區名稱
  • tps : 顯示每秒傳輸給設備的數量。更高的tps意味着處理器更忙。
  • Blk_read/s : 顯示了每秒從設備上讀取的塊的數量(KB,MB)
  • Blk_wrtn/s : 顯示了每秒寫入設備上塊的數量(KB,MB)
  • Blk_read : 顯示所有已讀取的塊
  • Blk_wrtn : 顯示所有已寫入的塊

8. 查看目前程序的IO情況

iotop
需要先安裝
使用方法
(如果沒設置權限,可能需要在root權限才能使用)

iotop

會顯示

TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND

其中

  • DISK READ DISK WRITE 讀寫速度
  • IO io佔比
  • COMMAND 運行的命令

未完待續: 以後會逐漸補充

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