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

10.6 監控io性能

安裝sysstat 會 安裝上 iostatphp

iostat 1 10html

iostat -x 磁盤使用linux

%util: 在統計時間內全部處理IO時間,除以總共統計時間。例如,若是統計間隔1秒,該設備有0.8秒在處理IO,而0.2秒閒置,那麼該設備的%util = 0.8/1 = 80%,因此該參數暗示了設備的繁忙程度 。通常地,若是該參數是100%表示設備已經接近滿負荷運行了(固然若是是多磁盤,即便%util是100%,由於磁盤的併發能力,因此磁盤使用未必就到了瓶頸)。ios

iotop 磁盤使用 查看具體進程使用io大小nginx

10.7 free命令

free 查看內存使用狀況web

free -m / -g / -h緩存

buff/cache: 緩衝/緩存服務器

磁盤(數據) --> 內存(cache) --> cpu網絡

cpu --> 內存(buff) --> 磁盤(數據)多線程

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

avaliabel 包含free和 buff/cache剩餘部分

10.8 ps命令

ps 查看系統進程

用法:ps aux、ps -elf

經常使用: ps aux | grep nginx

%CPU cpu百分比

%MEM 內存百分比

VSZ 虛擬內存

RSS 物理內存

TTY 哪一個tty上

STAT部分說明

D 不能中斷的進程 (這種進程會直接影響系統負載, 負載會變高, 但佔cpu使用率不必定高)

R run狀態的進程 (某一時間段內(1分鐘?)進程在使用cpu)

S sleep狀態的進程

T 暫停的進程 vmstat 1 -> ctrl-z 會暫停- fg 調回

Z 殭屍進程

< 高優先級進程

N 低優先級進程

L 內存中被鎖了內存分頁

s 主進程 如nginx的主進程master

l 多線程進程 一個進程裏有多個線程, 進程和進程之間內存不共享, 不管多少個線程共享進程的內存

  • 前臺進程

查看進程在哪裏啓動的, 先找到進程號

ls -l /proc/進程號的目錄

自定義ps

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'

10.9 查看網絡狀態

netstat 查看網絡狀態

netstat -lnp 查看監聽端口

netstat -an 查看系統的網絡鏈接狀況

netstat - lntp 只看出tcp的, 不包含socket

netstat -ltunp 只看出tcp的和utp的

ss -an 和 netstat 殊途同歸

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

http://www.cnblogs.com/chengmo/archive/2010/10/08/1846190.html

http://www.cnblogs.com/lixiaohui-ambition/archive/2012/12/11/2813419.html

須要關注 ESTABLISHED 值, ESTABLISHRD = 併發鏈接數

ESTABLISHED 很大 , 說明網站很忙, 1000之內爲好

好比,服務器僅僅是lvs調度器,那established數值就算10000也不是問題,由於即便鏈接數再多也不會對調度器形成多大影響。

反而,若是是httpd或者php-fpm,這個數值很大,說明訪問量很大,那也就意味着php的處理比較繁忙,天然會對機器形成影響。

10.10 linux下抓包

yum install -y tcpdump

抓包工具 tcpdump

用法: tcpdump -nn 需指定網卡名字,以下

tcpdump -nn -i ens33 i 指定網卡名字, 不加nn顯示成主機名

tcpdump -nn -i ens33 port 80 指定端口

tcpdump -nn -i ens33 not port 22 and host 192.168.0.100 不要22端口不要主機ip爲0.100

tcpdump -nn -i ens33 -c 100 -w /tmp/文件名.cap 指定個數(抓100個), 指定存放的文件名

tcpdump -r 文件名.cap 打開cap文件

-s 0 : 抓取數據包時默認抓取長度爲68字節。加上-S 0 後能夠抓到完整的數據包

yum install -y wireshark

查看 指定網卡 80端口 web訪問狀況

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"

訪問時間 ip 域名 post/get 訪問的連接

輸入圖片說明

相關文章
相關標籤/搜索