iostat命令:html
報告中央處理單元(CPU)的統計和輸入/輸出設備和分區統計。linux
經常使用選項:ios
iostat -xnginx
重點關注%util列,若是值很大磁盤壓力很大性能不足。web
iotop命令:緩存
iotop命令是一個用來監視磁盤I/O使用情況的top類工具網絡
iotop經常使用快捷鍵:多線程
1. 左右箭頭:改變排序方式,默認是按IO排序。socket
2. r:改變排序順序。tcp
3. o:只顯示有IO輸出的進程。
4. p:進程/線程的顯示方式的切換。
5. a:顯示累積使用量。
6. q:退出
• free 查看內存使用狀況
• free -m / -g / -h
-m 以MB爲單位
-g 以GB爲單位
-h 以合適的單位顯示
• buffer/cache區別
buffer:緩衝,cpu處理完的數據準備寫入硬盤先佔用的內存空間
cache:緩存,數據從磁盤讀取將要被cpu處理時所佔的內存空間
系統默認會把內存分配一部分空間給buffer/cache使用
• 公式:total=used+free+buff/cache
• avaliable包含free和buffer/cache剩餘部分
• ps 查看系統進程
• 用法:ps aux、ps -elf
ps aux |grep nginx 查看nginx服務是否開啓
user: 運行的用戶
PID: 進程號
%CPU:佔用cpu的百分比
%MEM:佔用內存的百分比
VSZ: 虛擬內存使用了多少
RSS: 物理內存使用了多少
TTY: 從什麼終端登陸
TIME:
COMMAND:
• STAT部分說明
• D 不能中斷的進程
• R run狀態的進程
• S sleep狀態的進程
• T 暫停的進程
• Z 殭屍進程
• < 高優先級進程
• N 低優先級進程
• L 內存中被鎖了內存分頁
• s 主進程
• l 多線程進程
• + 前臺進程
kill PID 結束進程號
ls -l /proc/PID/ 查看進程號是在哪裏啓動的
proc目錄下有不少數字目錄,此種目錄就是對應的PID目錄
• netstat 查看網絡狀態
• netstat -lnp 查看監聽端口
• netstat -an 查看系統的網絡鏈接情況
• netstat -lntp 只看出tcp的,不包含socket
• netstat -lnup 只看udp的,不包含socket
• ss -an 和nestat殊途同歸
• 分享一個小技巧:
• netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
• 抓包工具tcpdump
• 用法:tcpdump -nn
第一個n表示ip用數字形式顯示,若是不加顯示主機名
第二個n表示端口用數字表示
• tcpdump -nn -i ens33
-i選項指定網卡名字
• tcpdump -nn port 80
port指定抓包的端口
• tcpdump -nn not port 22 and host 192.168.0.100
not port 不抓22端口的包
and在家一個條件
host 只要這個ip的包
• tcpdump -nn -c 100 -w 1.cap
-c 指定抓多少條包
-w 存到指定的文件,此文件不能直接用cat查看。
tcpdump -r 1.cap 查看保存文件裏的抓包
• yum install -y wireshark
安裝tshark命令
• 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"
查看80端口web訪問的狀況
tcp三次握手四次揮手:
http://www.doc88.com/p-9913773324388.html
tshark幾個用法:
http://www.aminglinux.com/bbs/thread-995-1-1.html