1. 程式人生 > >10.6 監控io性能;10.7 free;10.8 ps;10.9 查看網絡狀態;10.10 抓包

10.6 監控io性能;10.7 free;10.8 ps;10.9 查看網絡狀態;10.10 抓包

mysq 技術 占用 fields 使用情況 正常的 yum root rep

擴展:

tcp三次握手四次揮手

http://www.doc88.com/p-9913773324388.html

tshark幾個用法:

http://www.aminglinux.com/bbs/thread-995-1-1.html

10.6 監控io性能

安裝iostat命令(也是安裝這個包) :

[root@hao-01 ~]# yum install -y sysstat

1. (監控)查看 磁盤io使用情況iostat -x

重要關註%util 表示io磁盤使用多少占用cpu的!

[root@hao-01 ~]# iostat -x

[root@hao-01 ~]# iostat -x 1

技術分享圖片

2. 安裝iotop

命令 :

[root@hao-01 ~]# yum install -y iotop

3. (監控)查看 進程使用磁盤io百分比(哪個進程使用磁盤比較大) :iotop

重要關註:IO> 下的值(數值越大,排名越前)

[root@hao-01 ~]# iotop

技術分享圖片

10.7 free命令

1. 查看內容使用情況(默認單位:kb):free

[root@hao-01 ~]# free

2. 查看內容使用情況(指定單位:mb):free -m

[root@hao-01 ~]# free -m

3. 查看內容使用情況(直觀單位):free -h

[root@hao-01 ~]# free -h

技術分享圖片

Mem(內存使用):total used free shared

buff/cache

total(內存總大小)

used(使用內存)

free(剩余內存)

shared(共享內存)

buff/cache(緩沖/緩存)

磁盤讀出來的數據——經過內存(cache緩存)——到CPU處理

CPU處理完的數據——經過內存(buffer緩沖)——放到磁盤

公式:total=used+free+buff/cache

avaliable包含freebuff/cache剩余部分

Swap(交換分區):如果Swap不足了,需要考慮增加內存了(或者是內存泄漏程序有bug需要排查了)!

10.8 ps命令

1. 查看系統當前所有進程ps -elf

列出系統當前所有進程 ps aux

[root@hao-01 ~]#

ps aux

技術分享圖片技術分享圖片

USER(運行用戶名稱)

PID(進程id號)

%CPU(使用cpu百分比)

%MEM(使用磁盤百分比)

STAT部分說明:

D 不能中斷的進程

R run狀態的進程(某一個時間段內使用cpu的)

S sleep狀態的進程(自動停止暫停,自動激活啟動的)

T 暫停的進程(Ctrl c 的進程)

Z 僵屍進程(系統比較多僵屍進程,需要殺死)

< 高優先級進程

N 低優先級進程

L 內存中被鎖了內存分頁(極少見)

s 主進程

l 多線程進程

+ 前臺進程

2. 查看指定進程是否運行: ps aux |grep 指定進程名稱

[root@hao-01 ~]# ps aux |grep mysql

[root@hao-01 ~]# ps aux |grep nginx

3. 殺死指定進程(不要隨意殺死進程哦):

[root@hao-01 ~]# kill 進程Pid

技術分享圖片

ps aux |grep ps aux

4. 查看進程是在哪個文件啟動的 :ls -l /proc/進程Pdi/

[root@hao-01 ~]# ls -l /proc/3406/

10.9 查看網絡狀態

1. 查看網絡狀態netstat

[root@hao-01 ~]# netstat

2. 查看監聽端口 netstat -lnp

[root@hao-01 ~]# netstat -lnp

3. 只查看tcp監聽端口(不包含socket):

[root@hao-01 ~]# netstat -lntp

4. 查看tcpudp監聽端口(不包含socket):

[root@hao-01 ~]# netstat -lntup

5. 查看系統的網絡連接狀態(無法顯示進程名字):ss -an

查看系統的網絡連接狀態:netstat -an

[root@hao-01 ~]# netstat -an

tcp三次握手四次揮手(重要,需了解,面試可能會問到)

http://www.doc88.com/p-9913773324388.html

6. 查看所有狀態數字

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

技術分享圖片

ESTABLISHED:客戶端和服務端在通信數量(1000以內都是正常的)

10.10 Linux下抓包

1. 安裝tcpdump抓包命令:

[root@hao-01 ~]# yum install -y tcpdump

2. 抓包: tcpdump -nn -i 網卡名稱

[root@hao-01 ~]# tcpdump -nn -i ens33

原本地ip地址端口號 >到 數據包ip 數據包ip端口

技術分享圖片

3. 抓包 指定端口tcpdump -nn -i 網卡名稱 port 端口號

[root@hao-01 ~]# tcpdump -nn -i ens33 port 22

4. 抓包 排除指定端口tcpdump -nn -i 網卡名稱 ont port 端口號

[root@hao-01 ~]# tcpdump -nn -i ens33 not port 22

5. 抓包 排除指定端口,並指定ip的數據包:

tcpdump -nn -i 網卡名稱 ont port 端口號 and host 指定ip

[root@hao-01 ~]# tcpdump -nn -i ens33 not port 22 and host 192.168.47.1

6. 指定抓包數量,並保存指定文件內

tcpdump -nn -i 網卡名稱 -c 抓包數量 -w 存放文件地址

[root@hao-01 ~]# tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap

7. 安裝tshark抓包命令

[root@hao-01 ~]# yum install -y wireshark

8. tshark 查看指定網卡,80端口的訪問情況:

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"

tshark幾個用法:http://www.aminglinux.com/bbs/thread-995-1-1.html

10.6 監控io性能;10.7 free;10.8 ps;10.9 查看網絡狀態;10.10 抓包