linux 監(jiān)控網絡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
(1)內存:條數(shù)、每條大小、內存是DDR4還是DDR3、內存頻率是2666MT/S還是1600MT/s
條數(shù): 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)硬盤:塊數(shù),大小
fdisk -l | grep "Disk /dev/sd"
(3)查看什么進程占用端口
netstat -antp | fgrep <port>
(4)查看進程資源
jps -l # 獲取進程idjmap -heap 21046
(5)CPU個數(shù)
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
(6)CPU核數(shù)
cat /proc/cpuinfo| grep "cpu cores"| uniq
(7)CPU主頻
cat /proc/cpuinfo| grep "model name"| uniq
ps命令用于查看系統(tǒng)中的進程狀態(tài)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER,進程所有者的用戶名。
PID,進程號,可以唯一標識該進程。
%CPU,進程自最近一次刷新以來所占用的CPU時間和總時間的百分比。
%MEM,進程使用內存的百分比。
VSZ,進程使用的虛擬內存大小,以K為單位。
RSS,進程占用的物理內存的總數(shù)量,以K為單位。
TTY,進程相關的終端名。
STAT,進程狀態(tài),用(R--運行或準備運行;S--睡眠狀態(tài);I--空閑;Z--凍結;D--不間斷睡眠;W-進程沒有駐留頁;T停止或跟蹤。)這些字母來表示。
START,進程開始運行時間。
TIME,進程使用的總CPU時間。
COMMAND,被執(zhí)行的命令行。
top命令是Linux下常用的性能分析工具,能夠實時顯示系統(tǒng)中各個進程的資源占用狀況,類似于Windows的任務管理器。
PID: 進程pid
USER: 拉起進程的用戶
PR: 該列值加100為進程優(yōu)先級,若優(yōu)先級小于100,則該進程為實時(real-time)進程,否則為普通(normal)進程,實時進程的優(yōu)先級更高,更容易獲得cpu調度,以上輸出結果中,java進程優(yōu)先級為120,是普通進程,had進程優(yōu)先級為2,為實時進程,migration 進程的優(yōu)先級RT對應于0,為最高優(yōu)先級
NI: 進程的nice優(yōu)先級值,該列中,實時進程的nice值為0,普通進程的nice值范圍為-20~19
VIRT: 進程所占虛擬內存大?。J單位kB)
RES: 進程所占物理內存大?。J單位kB)
SHR: 進程所占共享內存大小(默認單位kB)
S: 進程的運行狀態(tài)
%CPU: 采樣周期內進程所占cpu百分比
%MEM: 采樣周期內進程所占內存百分比
TIME+: 進程使用的cpu時間總計
COMMAND: 拉起進程的命令
根據(jù)以上命令,提前設置監(jiān)控預警。監(jiān)控預警能夠讓你及時發(fā)現(xiàn)系統(tǒng)的性能信息、比如磁盤快滿了,內存超負荷了,我們可以提前作出調整。
最后,遇到問題不要慌。根據(jù)經驗,再通過命令排查內存、磁盤、網絡、cpu,問題無非就這幾類,切不可著急忙慌亂改一通,讓簡單問題復雜化,希望大家以后多多支持腳本之家!