實用技巧之給你的Linux內存、磁盤、CPU、網絡把把脈

本篇文章給大家帶來了linux中學會查看linux各種狀態,包括:網絡io、磁盤、cpu、內存等相關知識,希望對大家有幫助。

實用技巧之給你的Linux內存、磁盤、CPU、網絡把把脈

今日重點:? ?① 學會查看linux各種狀態,包括:網絡IO、磁盤、CPU、內存等;? ?② 學會理解命令所代表的含義,能夠迅速發現集群存在的問題。

1、核心命令

linux 監控網絡IO、磁盤、CPU、內存:

  • CPU:vmstat 、sar –u、top
  • 磁盤IO:iostat –xd、sar –d、top
  • 網絡IO:iftop -n、ifstat、dstat –nt、sar -n DEV 2 3
  • 磁盤容量:df –h?
  • 內存使用:free –m、top

2、常用命令

(1)內存:條數、每條大小、內存是DDR4還是DDR3、內存頻率是2666MT/S還是1600MT/s

條數:?dmidecode|grep -A5 ‘Memory Device’|grep Size | grep -v Installed |wc -l?

每條大小: ??dmidecode|grep -A5 ‘Memory Device’|grep Size | grep -v Installed |uniq

內存類型: ??dmidecode | grep -A16 “Memory Device” | grep ‘Type:’ |grep -v Unknown |uniq

內存頻率: ???dmidecode | grep -A16 “Memory Device” | grep ‘Speed’ |grep -v Unknown |uniq

(2)硬盤:塊數,大小

fdisk -l | grep “Disk /dev/sd”

(3)查看什么進程占用端口

netstat -antp | fgrep

(4)查看進程資源

  1. jps -l? ? ? ? ? ?#? 獲取進程id
  2. jmap -heap 21046

(5)CPU個數

cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l

(6)CPU核數

cat /proc/cpuinfo| grep “cpu cores”| uniq

(7)CPU主頻

cat /proc/cpuinfo| grep “model name”| uniq


3、核心命令詳解

3.1、ps aux

ps命令用于查看系統中的進程狀態

實用技巧之給你的Linux內存、磁盤、CPU、網絡把把脈

USER ? ? ? PID %CPU %MEM ? ?VSZ ? RSS TTY ? ? ?STAT START ? TIME COMMAND
?● USER,進程所有者的用戶名。
?● PID,進程號,可以唯一標識該進程。
?● %CPU,進程自最近一次刷新以來所占用的CPU時間和總時間的百分比。
?● %MEM,進程使用內存的百分比。
?● VSZ,進程使用的虛擬內存大小,以K為單位。
?● RSS,進程占用的物理內存的總數量,以K為單位。
?● TTY,進程相關的終端名。
?● STAT,進程狀態,用(R–運行或準備運行;S–睡眠狀態;I–空閑;Z–凍結;D–不間斷睡眠;W-進程沒有駐留頁;T停止或跟蹤。)這些字母來表示。
?● START,進程開始運行時間。
?● TIME,進程使用的總CPU時間。
?● COMMAND,被執行的命令行。


3.2、Top

top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似于windows的任務管理器。

實用技巧之給你的Linux內存、磁盤、CPU、網絡把把脈

1、上半部分顯示了整體系統負載情:

  • top一行:從左到右依次為當前系統時間,系統運行的時間,系統在之前1min、5min和15min內cpu的平均負載值
  • Tasks一行:該行給出進程整體的統計信息,包括統計周期內進程總數、運行狀態進程數、休眠狀態進程數、停止狀態進程數和僵死狀態進程數
  • Cpu(s)一行:cpu整體統計信息,包括用戶態下進程、系統態下進程占用cpu時間比,nice值大于0的進程在用戶態下占用cpu時間比,cpu處于idle狀態、wait狀態的時間比,以及處理硬中斷、軟中斷的時間比
  • Mem一行:該行提供了內存統計信息,包括物理內存總量、已用內存、空閑內存以及用作緩沖區的內存量
  • Swap一行:虛存統計信息,包括交換空間總量、已用交換區大小、空閑交換區大小以及用作緩存的交換空間大小

2、下半部分顯示了各個進程的運行情況:

  • PID: 進程pid
  • USER: 拉起進程的用戶
  • PR: 該列值加100為進程優先級,若優先級小于100,則該進程為實時(real-time)進程,否則為普通(normal)進程,實時進程的優先級更高,更容易獲得cpu調度,以上輸出結果中,Java進程優先級為120,是普通進程,had進程優先級為2,為實時進程,migration 進程的優先級RT對應于0,為最高優先級
  • NI: 進程的nice優先級值,該列中,實時進程的nice值為0,普通進程的nice值范圍為-20~19
  • VIRT: 進程所占虛擬內存大小(默認單位kB)
  • RES: 進程所占物理內存大小(默認單位kB)
  • SHR: 進程所占共享內存大小(默認單位kB)
  • S: 進程的運行狀態
  • %CPU: 采樣周期內進程所占cpu百分比
  • %MEM: 采樣周期內進程所占內存百分比
  • TIME+: 進程使用的cpu時間總計
  • COMMAND: 拉起進程的命令

1、遇到問題不要慌。根據經驗,再通過命令排查內存、磁盤、網絡、cpu,問題無非就這幾類,切不可著急忙慌亂改一通,讓簡單問題復雜化。

2、根據以上命令,提前設置監控預警。監控預警能夠讓你及時發現系統的性能信息、比如磁盤快滿了,內存超負荷了,我們可以提前作出調整。

相關推薦:《Linux視頻教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享