10.6 監控io性能
10.7 free命令
10.8 ps命令
10.9 查看網絡狀態
10.10 linux下抓包html
iostat命令與iotop,命令可以看出系統磁盤的工做狀況,及時發現磁盤問題,這兩個工具不是系統自帶的,分別須要yum安裝
其中iostat命令與前一篇博客中提到的sar命令在同一個(sysstat)包裏,若是能使用sar命令就能使用iostat命令。
安裝命令mysql
yum install epel 先安裝epel擴展源
yum install sysstat iotoplinux
(一)iostat命令,看util 若是數值太高,說明磁盤很忙或者出現問題。
查看磁盤的使用狀況ios
iostat -xsql
注意標紅處數值,系統中的解釋以下,反正這個數值很高系統就反應很慢了,要麼換硬盤,要麼查出是什麼致使磁盤使用量飆升。
%util Percentage of elapsed time during which I/O requests were issued to the device (bandwidth utilization for the device). Device saturation occurs when this value is close to 100%.windows
(二)iotop,產看下哪個進程佔用進程較多centos
在具體服務器上看的更明顯,磁盤讀寫最多的在第一排。服務器
free命令用於查看內存的使用量。通常用free -h命令,看得要舒服點^^網絡
其中多線程
total=used+free+shared + buff/cache
available=free+shared + buff/cache
total=used+available
cache指的是磁盤到cpu途中通過的內存區
buff指的是cpu到磁盤間途中通過的內存區
ps命令用於查看當前的系統進程,ps和top顯示的結果很像
兩種經常使用查看方式
一、ps aux
二、ps -elf
建議用ps aux
第一行各個項目的含義:
USER:用戶名
PID:進程的PID號,經常使用與kill命令強制關閉進程,默認是從小到大排列
%CPU:CPU佔用率
%MEM:內存佔用率
VSZ:進程所使用的虛存的大小(Virtual Size)
RSS:物理內存使用,和top命令res同樣
TTY:終端號,本身的終端用tty命令能夠看到
STAT:進程狀態,該項內容較重要
D:保護進程,不能中斷的進程
R:run ,在運行的進程
S:大寫的S表示sleep狀態的進程,vmstat運行時是sleep狀態
T:暫停的進程
<:高優先級的進程
N:低優先級的進程
L:內存中內存分頁鎖定的進程
s:小寫的s,主進程
l:小寫的L,多線程進程
+:前臺進程
START:進程開始時間
TIME:進程運行的時間
COMMAND:進程名
(一)應用舉例
一、查看某一個程序或者服務是否在運行
ps aux | grep sshd 這裏的sshd能夠是任意程序,好比咱們常用的ngix、mysql等等。
二、根據pid強制關閉某一進程
kill (pid號) 好比kill 1571
pid號經過 ps aux |grep '程序名'方式查看
先運行一個命令並放到後臺
如今咱們根據他的pid1571把他強制關閉
這時咱們在看下ps aux 看下進程表就不存在這個進程了。
出現殭屍進程的場景,啓用nigix,當父進程被意外殺掉時,子進程就可能進入殭屍進程
三、經過進程號查看進程的路徑
ls -l /proc/(pid號)
經過這條命令能夠看出進程是哪一個程序建立的。
netstat用於查看網絡狀態,linux服務器運行各類服務後須要開放一些特定的端口讓其餘ip的設備去訪問來提供相應的服務,好比說xhsell訪問服務器就要用到22端口。windows下也有netstat命令 ,也有查看開放端口的功能。
windows下的netstat命令
tcp三次握手、四次揮手的內容參見:www.doc88.com/p-9913773324388.html
一、netstat -lnp查看監聽端口,須要
若是隻須要查看tcp的
netstat -lntp
二、若是隻須要查看tcp與udp的
netstat -ltnup
三、netstat -an查看系統全部的網絡鏈接情況
四、ss -an查看網絡鏈接情況
這個命令也能看連接狀況,可是沒有顯示鏈接的進程,而netstat 命令就能夠看到
五、經過netstat命令和awk命令查看網絡連接各類狀態的總數。
netstat -an|awk '/^txp/ {++stat[$NF]} END {for(key in sta) print key,"\t",sta [key]}'
命令有點長,須要記住,最好能理解。
網絡出現異常的時候會須要抓包,網絡出現異常流量時須要抓包看看是出現了什麼問題,好比看到***,頻繁訪問一些端口的一些請求時就要注意本身是否是被***了。抓取網絡流量須要使用tcpdump工具或者wireshark工具。
首先要使用yum安裝tcpdump工具,包名就是tcpdump
yum install tcpdump
用法示例
抓取某個網卡的包
txpdump -nn -i (網卡名,用nmcli dev show查看)
圖示這個ens33就是網卡名,注意在centos6中網卡是從ens1開始的,並且網卡名會變,而centos7不會,他是根據硬件信息命令名的。
看看抓包結果
tcpdump -nn -i ens33
命令選項中的n就是將源主機顯示爲ip地址+端口號形式,默認顯示的是主機名+服務名。咱們主要看包從哪來,到哪去,走的是哪一個端口的信息。
通常狀況下,大部分的包都應該是tcp的包,若是有不少udp的包時就有可能服務器被DDOS***了,這時就要藉助專業工具或硬件來防禦
二、指定端口和網卡抓包
tcpdump -nn ens33(網卡名) port22(端口號)
三、抓取網卡網絡通訊的10個包並將他導入/tmp/1.cap
tcpdump -i ens33 -c 10 -w /tmp/1.cap
這個文件是不可cat的!
查看文件信息:
file /tmp/1.cap
讀取具體內容
tcpdump -r /tmp/1.cap