10.6 監控io性能;10.7 free;10.8 ps;10.9 查看網絡狀態;10.10 抓包
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
total(內存總大小)
used(使用內存)
free(剩余內存)
shared(共享內存)
buff/cache(緩沖/緩存)
磁盤讀出來的數據——經過內存(cache緩存)——到CPU處理
CPU處理完的數據——經過內存(buffer緩沖)——放到磁盤裏
公式:total=used+free+buff/cache
avaliable包含free和buff/cache剩余部分
Swap(交換分區):如果Swap不足了,需要考慮增加內存了(或者是內存泄漏程序有bug需要排查了)!
10.8 ps命令
1. 查看系統當前所有進程:ps -elf
列出系統當前所有進程 :ps aux
[root@hao-01 ~]#
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. 查看tcp和udp的監聽端口(不包含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 抓包