天天看點

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

監控io性能

iostat檢視磁盤情況(需要安裝sysstat包)

可以直接運作該指令

iostat

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

或者後面加一個1,就是動态顯示。

iostat 1

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

iostat和iostat 1所表現出來的東西,用sar都可以展現出來,但是用iostat -x 就無法使用sar展現出來

iostat -x

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

iostat -x有個非常重要的名額,%util,表示磁盤有多少時間占用cpu時間比,等待io時間占比,等待磁盤讀寫時間占總時間的比例。

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

如果這一列的數字很大,50或者60,并且wkb/s列也很大那就說明磁盤io比較大比較忙,但是如果wkb/s列并不大,那麼就說明磁盤出故障了。

硬碟慢就會影響系統的性能。

iotop 檢視具體程序讀寫磁盤情況,和top指令很像(需要安裝iotop)

yum install -y iotop

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

Total DISK WRITE 寫入速度

Actual DISK WRITE 讀取速度

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

我們主要檢視IO這一列

iotop

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

free指令

free檢視記憶體使用情況

free

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

第一行說明、第二行是記憶體使用情況、第三行是交換分區。

第一列 total 是總大小(預設機關是kb,可以使用-m指定機關為兆,或者使用-h使用适當的機關)、第二列 used 是已使用的,第三列 free 是剩餘的、第四列 shared 是共享的、第五列 buff/cache、第六列available。

系統會把記憶體預留一點給buff/cache(buff是緩沖、cache是緩存)

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

free檢視記憶體使用情況主要看的就是avaliable。

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

ps指令

ps檢視程序

ps aux (靜态的列出系統所有程序)

ps aux

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

從前向後分别是 運作使用者、pid、cpu占用、記憶體占用、虛拟記憶體、實體記憶體、tty、stat(程序的狀态)、什麼時候啟動的、運作了多久了、指令。

pid我們會在想要結束一個程序的時候使用,比如我們想要結束2086,那就使用kill 2086(2086為這個程序的pid)

kill 2086

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包
監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

然後我們使用管道符檢視剛才結束的程序2086是否還存在(剛才結束程序前,我們得知該程序為top)

ps aux |grep top

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

我們要關注STAT(程序的狀态)。

STAT(程序的狀态)有:

D不能中斷。

R(run)正在跑的程序(在一個時間段内使用cpu)。

S(sleep)程序運算完可能會暫停一下,過會會激活

T暫停的程序(ctrl+z暫停的程序)

+前台程序

Z僵屍程序

<高優先級的程序(cpu優先處理)

N低優先級

L記憶體中被鎖了記憶體分頁的

s主程序

L多線程程序

ps aux用法:檢視某個程序有沒有在運作(上面已經使用過一次了),檢視top是否在運作

ps aux |grep top

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

檢視網絡狀态

netstat檢視網絡狀态(tcp/ip通信狀态)

netstat -lnp 檢視監聽端口(使用者和伺服器通信需要端口)

netstat -lnp

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

像tcp6,udp6 這樣後面加6的,就是ipv6的端口,沒有加的如tcp,udp 就是ipv4的端口

STREAM内部通信

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

檢視tcp/ip狀态

netstat -an

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

隻檢視tcp以及tcp6的端口

netstat -ltnp

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

隻檢視tcp以及tcp6以及udp端口

netstat -ltunp

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

TIME_WAIT狀态:用戶端和服務端兩個機器互相通信之後它們的連結還沒有斷開,處于一種等待的狀态,等待下次這兩台機器再次連接配接傳輸資料。

檢視各個狀态的個數指令

netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

我們主要關注ESTABLISHED,這個數字如果很大說明你的系統很忙,(并發連接配接數,在這個時間内有多少個用戶端在和服務端通信)一般一千以内

ss -an和netstat相似,不過不顯示程序名

ss -an

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

檢視LISTEN一列

ss -an |grep -i listen

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

linux下抓包

tcpdump抓包工具(如果沒有需要安裝tcpdump包)

yum install -y tcpdump

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

指定網卡抓包

tcpdump -nn -i ens33

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

-nn表示ip用數字的形式表示出來,如果不加會顯示主機名。

tcpdump -i ens33

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

第一列往後分别是時間、源ip、端口、到哪個ip去、端口、包的資訊。

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

我們主要關注源IP、端口和目标IP、端口。看資料的流向。

有時候也要看length(長度),如下圖

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

指定端口(porn指定,22端口 可修改為任意端口)

tcpdump -nn -i ens33 port 22

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

排除寫法,排除22端口(not 去除此端口)

tcpdump -nn -i ens33 not port 22

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

排除22端口并指定ip

tcpdump -nn -i ens33 not port 22 and host 192.168.71.131

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

指定抓的包個數(-c 指定數字)

tcpdump -nn -i ens33 -c 10

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

指定抓包數,并将結果存到指定檔案裡去,(這個檔案cat不了,使用file可檢視大概資訊)

tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

檢視資料流

tcpdump -r /tmp/1.cap

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

tshark抓包工具類似于tcpdump(需要安裝wireshark包)

yum install -y wireshark

監控io性能、free指令、ps指令、檢視網絡狀态、linux下抓包監控io性能free指令ps指令檢視網絡狀态linux下抓包

檢視指定網卡80端口的wap通路的情況(由于虛拟機沒運作任何80端口程式,是以這條指令暫時無法使用)

tahark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

這樣檢視可以看到有哪些IP通路我的80端口網站,通路的哪個位置,通過什麼連結進來的