1. 程式人生 > >io性能、free、ps、查看網絡狀態、linux下抓包

io性能、free、ps、查看網絡狀態、linux下抓包

key 結果 iostat ima ins ffffff request yum 線程

一:監控io性能

iostat -x 磁盤使用
技術分享圖片
最後一列表示為磁盤占用的時間比
iotop 磁盤使用
技術分享圖片

二:free命令

技術分享圖片
從左到右依次為,總共的大小,使用的大小,剩余大小
available=free+buffers/cached的剩余部分
total=userd+free+buffers/cached

三:ps命令

查看系統進程 ps aux或者ps -elf
技術分享圖片
PID:進程的ID
STAT:表示進程的狀態,分為以下幾種
D 不能中斷的進程(通常為IO)
R 正在運行中的進程
S 已經中斷的進程,通常情況下,大部分都是這個狀態
T 已經停止或者暫停的進程
W 表示沒有足夠的內存頁分配
X 已經死掉的進程(好像從未出現)

Z 僵屍進程,殺不掉,打不死的垃圾進程,一般不出現
< 高優先級進程
N 低優先級進程
L 在內存中被鎖了內存分頁
s 主進程
I 多線程進程

  • 代表在前臺運行的進程
    通常會跟管道符一起使用,用來查看某個進程或者他的數量
    ps aux|grep -c 進程名
    所得結果減1為進程數量,因為grep本身也是一個進程。

    四:查看網絡狀態

    用來打印網絡連接狀況、系統所開放端口,路由表等信息。
    常用命令:netstat -lnp 打印當前系統啟動哪些端口
    技術分享圖片
    netstat -an 打印網絡連接狀況
    技術分享圖片

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

    技術分享圖片
    統計所有狀態的進程的數量
    重點關註established的數量

    五:linux下抓包

    ● tcpdump
    安裝 yum install -y tcpdump
    抓數據包
    tcpdump -nn -i eth0
    技術分享圖片
    第三列和第四列顯示為哪一個IP+端口連接在哪個IP+端口,後面的信息是該數據包的相關信息
    -i 後面跟設備名稱
    -nn 讓第三列和第四列顯示成IP和端口的形式,不加則顯示為主機名+服務名稱
    技術分享圖片
    -c 指定包數量
    -w 寫入指定文件,如果不加,則顯示為數據流向,不是數據包
    host 指定ip
    port 指定端口
    tcpdump -nn -i eth0 host 192.168.233.130 and port 22 -c 100 -w 1.cap

    查看1.cap可以用 tcpdump -r 1.cap
    也可以下載到windows用wireshark查看。
    ● wireshark
    安裝 yum install -y wireshark
    用法 tshark -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"
    這類似web訪問日誌。

io性能、free、ps、查看網絡狀態、linux下抓包