平常運維(二)

一 監控io性能

    有時候查看到的cpu和內存還有剩餘,可是系統負載仍是很高,咱們用vmstat命令查看發現b列或wa列值比較大,說明系統磁盤有瓶頸,這時候就須要去查看磁盤的狀態了ios

    一、iostat nginx

        安裝sysstat時已經安裝了iostat命令web

    二、iostat 1緩存

        每隔1秒展現一次,服務器

    三、iostat -x 1網絡

        加上-x選項指標會更多,其中一個比較重要的是%util,這個指標表明的是cpu等待io進程的時間比例,若是這個值很大,說明磁盤io很忙,則讀寫rkB/s wkB/s 也會很大,若是讀寫值不大,則說明磁盤有問題或故障多線程

    四、iotopsocket

        1)安裝tcp

            # yum install -y iotop工具

        2) # iotop

            將磁盤使用狀況根據佔用IO的比例大小排序後展現出來

二 free命令

    一、# free

  

上圖中的total=used+free+buff/cache,available包含了free和buff/cache剩餘部分

buff:緩衝,當cpu寫數據到磁盤時,被暫放在內存中 的數據

cache:緩存,當cpu從磁盤讀取數據時,被暫放在內存中的數據

三 ps查看進程命令

    一、ps

        1次性地將當前進程的使用情況列出來

    二、# ps aux  

        能夠列出系統全部的進程

其中

VSZ表示虛擬內存;

RSS表示物理內存;

STAT有不少種狀態,

        D表示不能中斷的進程

        R表示run狀態的進程

        S表示sleep狀態的進程

        T表示暫停的進程

        +表示前臺進程

        Z表示殭屍進程

        <表示高優先級進程

        N表示低優先級進程

        s表示主進程

        l表示多線程進程

        L表示內存中被鎖了內存分頁

ps aux用途:檢查某個進程有沒有,使用命令 # ps aux |grep nginx

    三、# ps -elf

    四、# ls -l /proc/進程號

    使用上述命令能夠查看某個進程的啓動位置,以下圖

四 查看網絡狀態

   

    一、查看監聽端口

        # netstat -lnp

    l表示listen

同一臺服務器的兩個進程間使用socket協議通訊

    # netstat -lntp  //只查看tcp協議端口狀態

    # netstat -lntup  //查看tcp/upd協議端口狀態

    二、# netstat -an    //查看全部的鏈接狀態

    查閱資料:TCP/IP的三次握手和四次揮手

    三、統計各類狀態的數量

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

若是處於ESTABLISHED的狀態不少,說明系統很忙,通常1000之內 的數字服務器都可以接受,若是幾萬個

    四、# ss -an  //用這個命令查看網絡狀態時不會顯示進程的名字和PID

五 Linux下抓包

抓包工具:tcpdump

    一、# tcpdump -nn

若是出現上圖狀況,說明網卡名字比較特殊,須要在命令中指定網卡名字

    # tcpdump -nn -i 網卡名字

命令中的兩個n表示將下圖中的第一IP和端口以數字的方式展現出來,不指定的話會顯示爲主機名和端口名稱

上圖中咱們主要查看的是兩個IP間數據的流向和length,通常咱們看到的包都是TCP的包,若是看到UDP的包,頗有多是被攻擊了

    二、# tcpdump -nn port 端口號  //抓取指定端口號

    三、# tcpdump -nn not port 端口號  //不抓取指定端口號

    四、指定包的長度

        # tcpdump -nn -c 長度值 

    五、將抓取到的數據存儲到指定文件-w

        # tcpdump -nn -w /tmp/1.cap

        1.cap文件是不能直接cat的,不然會亂碼,由於這個文件是從服務器網卡中捕獲的數據包,就是咱們真正通訊的數據,若是想查看這個文件,使用命令# tcpdump -r /tmp/1.cap

    五、tshark命令

        先要安裝# yum install wireshark 工具

        wireshark工具和tcpdump工具相似,wireshark就有一個tshark命令

        使用下述命令能夠查看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"

相關文章
相關標籤/搜索