0413平常運維(1、監控io性能,查看網絡狀態、抓包)w、vmstat、top、sar、nload、free、ps

任務列表:
10.1 使用w查看系統負載
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令
10.6 監控io性能
10.7 free命令
10.8 ps命令
10.9 查看網絡狀態
10.10 linux下抓包
10.11 Linux網絡相關
擴展
tcp三次握手四次揮手(重點) http://www.doc88.com/p-9913773324388.html
tshark幾個用法:http://www.aminglinux.com/bbs/thread-995-1-1.htmlhtml

三次握手小例子 https://docs.qq.com/doc/DR3dISkdERGtac2VDlinux

 

ip命令使用ios

1. 設置和刪除IPweb

ip addr add 192.168.10.10/24 dev eth0shell

ip addr show eth0express

ip addr del 192.168.10.10/24 dev eth0windows

 

2. 路由相關設置centos

ip route show緩存

ip route add default via 192.168.10.1服務器

ip route add 192.168.5.0/24 dev eth0

ip route del 192.168.10.1

 

另外用route命令來管理路由:

a、網絡路由

route add -net 192.168.1.0/24 gw 172.16.1.106

b、主機路由

route add -host 192.168.1.110 gw 172.16.1.106

c、默認路由

route add default gw 172.16.1.106

route add -net 0.0.0.0 gw 172.16.1.106

d、刪除路由

route del -host 192.168.1.110

route del -net 192.168.1.0/24

3. 顯示網絡統計數據

ip -s link

ip -s -s link ls eth0

 

3. 中止開啓網卡

ip link set eth0 down

ip linke set eth0 up

 

更改網卡名字

ip link set ens37 name eth1

永久保存:https://blog.csdn.net/jyusun/article/details/71513086

 

 

 

w/uptime  查看系統負載

第一行顯示系統時間、 up系統當前運行時間、目前登陸用戶(能夠從下面看到,tty1終端登錄,pts/0遠程登錄)

系統負載 load average: 0.08, 0.14, 0.11
這三個數字分別表示1分鐘、5分鐘、15分鐘以內,系統的負載值分別是多少,單位時間段內,使用cpu的活動的進程有多少個
1分鐘內使用cpu的活動的進程有多少個
負載值低時,表明系統目前負載較小,要看有幾顆邏輯CPU,不是物理CPU。


FROM:表示從哪裏來
L0GIN@:表示登錄時間 
IDLE:空閒了多長時間 
JCPU、PCPU:使用了CPU的時間 
WHAT:命令

w

 uptime     和w命令的第一行相同,用w便可

cat /proc/cpuinfo    查看CPU信息

查看processor的值,即表明本機的cpu核數,若是是0,表明有1顆,若是是1,表明有2顆,以此類推

查看physical id  數,表明本機物理cpu,若是是1,表明有2個物理cpu

若是cpu核數是8,即processor爲7時,那麼負載值不該大於8,均可以正常運行,5分鐘平均負載和15分鐘平均負載同理,若是負載大於8,那麼表示cpu核數不夠用了

lscpu  也能夠查看cpu信息

vmstat命令

vmstat監控系統狀態

 vmstat 1  每一秒顯示一次系統狀態(動態顯示)不須要時使用Ctrl+c中止

vmstat 1 5   每一秒顯示一次系統狀態,只顯示5次,5次後自動終止

須要關注的點:
一、r=run  表示有多少進程處於運行狀態
當進程有多個時,而CPU只有一個,那麼就須要輪流使用,在一個時刻只容許一個進程在使用cpu運行
二、b=block  有多少個進程在等待
三、swpd 當內存不夠時,系統能夠拿出內存中的一部分數據臨時放到swap交換分區裏去。若是swpd值一直變換時,說明交換分區和內存在頻繁的交換數據,表明內存不夠了
四、si/so  與swpd存在關聯
si(i表明in,單位是kb)有多少k的塊數據,從swap進入到內存中 so(o表明out)有多少k的塊數據,從內存中進入到swap 若是swpd在頻繁變換時,這兩個值確定也會變更。
五、bi/bo   與磁盤存在關聯
bi有多少k的數據從磁盤進入到內存中 ,讀的數據量是多少,從磁盤裏讀
bo有多少k的數據從內存寫入到磁盤,寫的數據量是多少,從磁盤裏寫,寫入到磁盤裏去
這兩個數值很大時,說明磁盤在頻繁的讀寫。跟CPU和內存比,磁盤是很慢的,若是很頻繁的讀寫數據會致使b列的增長。由於有不少進程 在等待磁盤。
六、us用戶級別,數字不會超過100,百分比
表示用戶的資源佔用CPU的百分比,若是數字長時間大於50,說明系統確定資源不夠
七、sy系統自己的一些進程、服務,佔用資源的百分比
八、id 空閒
us+sy+id=100%
九、wa=wait有多少進程在等待CPU的百分比

top命令

top查看進程使用資源狀況
top 3秒顯示一次,動態的

第一行:和w命令第一行相同
第二行:有多少個任務,有多少個正在運行的進程,有多少個休眠的進程,有多少箇中止的進程,有多少個殭屍進程zombie (主進程被意外終止的)
第三行:CPU百分比,平時須要多關注us,若是us很高,系統負載將會特別大。st表示被偷走的cpu,若是服務器作了虛擬化,下面有一些虛擬機,就會偷走一些cpu。
第四行:KiB Mem表示物理內存,須要關注。free剩餘空間
第五行:KiB Swap表示交換分區 

下面默認按照%CPU排序,佔用高的在上。
RES:物理內存大小,單位是字節。
PID:進程號,可使用它殺死進程,kill+pid號殺死進程

想要按照內存佔用%MEM大小排序,按大寫的m(M)鍵 ,恢復按照%CPU排序,按大寫p(P)鍵 
查看全部CPU使用率,按1,能夠來回切換 
退出,按q

top -c  能夠看到具體的進程命令,全局的路徑,看的更詳細

top -bn1  靜態的顯示,一次性把全部的信息所有輸出出來,適合在寫腳本時實用

sar命令

sar          Linux系統裏的瑞士軍刀

 

沒有的話須要先安裝:    yum install -y sysstat

安裝完成後報錯:沒法打開 /var/log/sa/sa14: 沒有那個文件或目錄 

緣由是 由於sar 命令不加具體的選項和參數,會默認調用系統裏保留的一個歷史文件/var/log/sa ,sar生成的歷史文件存放目錄,每10分鐘抓取一遍系統狀態,此時尚未生成,10分鐘後會生成

sar -n DEV 1 10  查看網卡流量  1是每一秒鐘顯示一次,10是顯示10次

用法和vmstat相似,後面跟1 10表示每隔1秒顯示一次,顯示10次

第一列:時間

第二列:IFACE網卡名字

第三列:rxpck/s接受到的數據包,單位個數,幾千正常,上萬就不正常

第四列:txpck/s發送出去的數據包

第五列:rxkB/s接收的數據量,單位KB

第六列:txkB/s發送的數據量

第七列:rxcmp/s不須要關注

第八列:txcmp/s不須要關注

第九列:rxmcst/s不須要關注

 

 

查看前一天的歷史數據據 sar -n DEV -f /var/log/sa/sa14   sa14 是14號生成的,因此以14結尾

/var/log/sa裏保留的文件最多爲1個月,因此文件爲sa01 -sa31

sar -q  查看系統負載

sar -q -f /var/log/sa/sa14  能夠查看14號的負載

sar -b  查看磁盤讀寫

 

nload命令

沒安裝的話使用前須要先安裝

yum install -y epel-release  若是epel-release安裝了才能夠繼續安裝nload

yum install -y nload  安裝nload  

 

直接運行nload    動態的顯示網卡實時速度的一個頁面

第一行顯示網卡名字、IP、網卡其中之一(1/2),能夠按右方向鍵切換網卡,按q退出

Incoming進來帶寬

Outgoing出去帶寬

curr當前值

Avg平均值

Min最小值

Max最大值

Ttl總和

 

 

監控io性能

一、 iostat

在安裝sysstat包時,默認會安裝iostat包,和sar在同一個包裏

 

和vmstat相似,沒一秒執行一次,執行兩次

iostat -d  只查看Device 相關的信息,Device 須要着重看,看讀寫速度

iostat -x

重要指標:%util

表示磁盤的使用百分比,若是這個數字很大,好比長期超過90%,說明磁盤很是忙,讀寫確定也會很大。若是讀寫不大,但該列值很大, 就說明硬盤有問題。

iotop  當磁盤io很忙,可使用iotop查看,得到讀寫的進程是哪一個,按IO使用率大小排序

yum install -y iotop   沒安裝的話先安裝

和top很像,動態顯示

SAWPIN  交換分區,交換到內存裏去

 

 free命令

用來查看內存和swap使用狀況

centos6和centos7顯示的內容是不同的,7更加直觀,第一行是說明,第二行是內存使用狀況,第三行是swap使用狀況,咱們主要關注第二行,內存使用狀況。

第一列:total內存總大小,單位KB

第二列:used內存已用大小,着重關注此列

第三列:free內存剩餘大小

第四列:shared共享大小

第五列:buff(緩衝)/cache 緩存)

關於buffer和cache咱們能夠這樣簡單區分:

0000(磁盤)-->內存(cache)--> CPU  即,從磁盤讀出來後先放到內存裏,而後CPU再到內存裏去取這部分數據,這裏的內存叫作cache

cpu(00000)--> 內存(buff)--> 磁盤 即,cpu產生的數據首先寫入到內存中,而後再慢慢寫到磁盤裏,這部份內存叫作buffer

正常狀況下內存總大小=已有+剩餘,這裏是並不對等的,由於在Linux系統裏,會有一部分空間給buff/cache

第六列:available 包含free和buffer/cache剩餘部分,關注available,這個數字是真正剩餘的物理內存大小

 

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

指定單位爲M時,使用free -m

指定單位爲G時,使用free -g或者free -h 在後面顯示單位

 

 free -b   單位爲b

ps命令

ps命令查看系統進程

ps aux 靜態的,一次性把系統當前全部進程列出來

 

USER用戶

PID進程ID,殺死進程時能夠用到kill PID,有時候這樣並不能終止進程,須要加-9選項,即kill -9 PID,但這樣有點暴力,嚴重時會丟失數據,儘可能不要使用。

STAT進程狀態,分爲如下幾種

D 不能中斷的進程 

R 正在運行,或在隊列中的進程

S 處於休眠狀態的進程

T 中止或被追蹤的進程

Z 殭屍進程

W 進入內存交換(從內核2.6開始無效)

X 死掉的進程

< 高優先級進程

N 低優先級進程

L 內存中被鎖了內存分頁        

s  主進程,包含子進程

l 多線程進程

+ 前臺進程

 

查看進程所在目錄     Is -I /proc/進程的PID/

ps aux |grep  進程名   檢測進程有沒有運行的方法

 ps -elf  相似於ps aux,把系統全部進程全列出來

ps -eLf(查看線程)


 

 查看網絡狀態    netstat  

 netstat -lnp   查看監聽端口   須要關注上面的端口部分

netstat -an   查看tcp/ip 全部的鏈接狀態

 netstat -ltnp    只查看tcp的監聽端口

netstat -ltunp   查看tcp和udp的監聽端口

小技巧:查看全部狀態數字

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

ESTABLISHED若是很大,說明系統很忙,咱們能夠理解爲併發鏈接數,併發就是  同一時間有多少個客戶端在鏈接

ss -an和netstat殊途同歸,顯示tcpip狀態

ss -an |grep -i listen

查看listen的狀態,不會顯示進程名稱

 netstat -lntp  netstat 顯示

 

  

Linux下抓包

一、tcpdump工具 .

安裝 yum install -y tcpdump

tcpdump採用命令行方式對接口的數據包進行篩選抓取,其豐富特性表如今靈活的表達式上。不帶任可選項的tcpdump,默認會抓取第一個網絡接口,且只有將tcpdump進程終止纔會中止抓包。

命令格式:

tcpdump [ -DenNqvX ] [ -c count ][ -F file ][ -i interface ] [ -r file ]

[ -s snaplen ] [ -w file ] [ expression ]

抓包選項:

-c:指定要抓取的包數量。注意,是最終要獲取這麼多個包。例如,指定"-c 10"將獲取10個包,但可能已經處理了 100個包,只不過只有10個包是 知足條件的包。

-i interface:指定tcpdump須要監聽的接口。若未指定該選項,將從系統接口列表中搜尋編號最小的已配置好的接口(不包括loopback接口,要 抓取loopback接口使用tcpdump -i lo),一旦找到第一個符合條件的接口,搜尋立刻結束。可使用'any'關鍵字表示全部網絡接口。

-n:對ip地址以數字方式顯式,不然顯示爲主機名,也就是說-n選項不作主機名解析。

-nn:除了-n的做用外,還把端口顯示爲數值,不然顯示端口服務名。

-N:不打印出host的域名部分。例如tcpdump將會打印’nic'而不是'nic.ddn.mil'。

-P:指定要抓取的包是流入仍是流出的包。能夠給定的值爲"in"、"out"和"inout",默認爲"inout"。

-s len:設置tcpdump的數據包抓取長度爲len,若是不設置默認將會是65535字節。對於要抓取的數據包較大時,長度設置不夠可能會產生包截 斷,若出現包截斷, 輸出行中會出現"[|proto]"的標誌(proto實際會顯示爲協議名)。可是抓取len越長,包的處理時間越長,而且會減小tcpdump可緩存的 數據包的數量,從而會致使數據包的丟失,因此在能抓取咱們想要的包的前提下,抓取長度越小越好。

 

輸出選項:

-e:輸出的每行中都將包括數據鏈路層頭部信息,例如源MAC和目標MAC。

-q:快速打印輸出。即打印不多的協議相關信息,從而輸出行都比較簡短。

-X:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出。

-XX:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出,更詳細。

-v:當分析和打印的時候,產生詳細的輸出。

-vv:產生比-v更詳細的輸出。

-vvv:產生比-vv更詳細的輸出。

其餘功能性選項:

-D:列出可用於抓包的接口。將會列出接口的數值編號和接口名,它們均可以用於"-i"後。

-F:從文件中讀取抓包的表達式。若使用該選項,則命令行中給定的其餘表達式都將失效。

-w:將抓包數據輸出到文件中而不是標準輸出。能夠同時配合"-G time"選項使得輸出文件每time秒就自動切換到另外一個文件。可經過"-r"選項載 入這些文件以進行分析和打印。

-r:從給定的數據包文件中讀取數據。使用"-"表示從標準輸入中讀取。

 

tcpdump -nn -i ens33

 tcpdump -nn -i ens33 port 22  只要端口是22的包

 tcpdump -nn -i ens33 not port 80   不要80端口的包

tcpdump -nn -i ens33 not port 80 and host 192.168.247.3   不要80端口而且host是192.168.247.3 的包

tcpdump -nn -i ens33 -c 100  只抓取100個包

tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap

要有數據產生才能抓包,能夠再打開一個終端產生一些數據,例如執行top命令、vmstat命令,過一會就會抓取完。

 

要查看1.cap信息,不能直接使用cat 查看        使用  tcpdump -r /tmp/1.cap  查看

二、tshark

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"  能夠查看指定網卡80端口的web訪問狀況,主要針對80端口

tshark -i ens33 -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"

Linux網絡相關

fconfig查看網卡ip(yum install net-tools)

 

 ifconfig -a      當網卡down掉的時候,通常不會顯示,加上-a會所有顯示出來

ifup ens33/ifdown ens33    啓用/關閉網卡

不要在Xshell裏使用,在虛擬機裏使用。通常在對網卡進行更改後使用,例如添加網關。也能夠一塊兒使用ifdown ens33 && ifup ens33,防止遠程鏈接斷掉

設置虛擬網卡

首先在網卡配置文件目錄裏複製一個ens33的配置文件

 cd /etc/sysconfig/network-scripts/

 cp ifcfg-ens33 ifcfg-ens33\:0    \ 脫義冒號

對新作的網卡編輯

ifdown ens33 && ifup ens33  在運行此命令從新鏈接下網卡

ifconfig 查看

能夠在windows上Ping 192.168.247.155是否通

mii-tool ens33 查看網卡是否鏈接

ethtool ens33 也能夠查看網卡是否鏈接

更改主機名 hostnamectl set-hostname  001

centos6不支持此命令,想要生效須要退出從新登陸一下

hostname  能夠查看主機名

查看主機名配置文件         cat /etc/hostname

DNS配置文件/etc/resolv.conf

這是由網卡配置文件定義的,也能夠臨時編輯resolv.conf文件設置dns2,可是重啓後依然會被網卡里的配置文件覆蓋

/etc/hosts文件

WindowsLinux下都有此文件,後續講Iamp時去訪問自定義域名時,就會用到此文件。假設咱們ping—個域名,會解析出他的公網IP, 可是若是咱們在hosts文件裏配置此域名,就會解析到咱們配置的IP

正常ping www.qq.com

編輯hosts文件

從新ping  ,僅在本機生效

注意: 一個ip後面能夠跟多個域名,可是同一個域名只能有一個ip生效

若是前面同一個域名指定了兩個ip,會之後面的ip爲主

 

手動增長swap

模擬一個G的磁盤空間:

dd if=/dev/zero of=/bigfile bs=1M count=1000

dd(對磁盤進行操做的工具),if(從哪裏來),of(目標的文件或磁盤,此處寫入到跟目錄下,叫bigfile),bs(決定文件大小)=1M(即每一個塊爲1M),count=1000(共有1000個塊),也能夠寫成bs=100M,count=10

 mkswap /bigfile   格式化成swap格式

chmod 600 /bigfile  更改權限

swapon /bigfile  掛載

以前的swap大小

掛載後的大小

相關文章
相關標籤/搜索