監控io性能
- 介紹: 以前介紹的許多關於CPU負載的命令,其實io(磁盤)對於咱們也很重要。
下面要介紹的命令就是關於監控io性能的命令
- 選項: iostat -x 1
表示逐秒顯示磁盤情況
%util爲磁盤使用佔用CPU的時間比。一個進程寫入磁盤時,cpu會等待寫入,此時所佔地用的時間就是%util 當%utl數字過大時,說明你的硬盤可能須要更換了html
命令free
- 介紹
用於查看當前系統的總內存大小以及使用狀況。Centos7系統的比6的顯示要簡介,可是大致上內容一致
- 選項
free
free -m或-g:表示指定數據的單位MB或GB free -h:會給數據加上單位符號,使其更加直觀
- 示例
[root@centos001 ~]# free
total used free shared buff/cache available //第一行
Mem: 1008152 113972 558772 6888 335408 709100
Swap: 2097148 0 2097148
[root@centos001 ~]# free -m
total used free shared buff/cache available
Mem: 984 111 545 6 327 692
Swap: 2047 0 2047
[root@centos001 ~]# free -h
total used free shared buff/cache available
Mem: 984M 111M 545M 6.7M 327M 692M
Swap: 2.0G 0B 2.0G
- 解釋
- 第一行:
total:內存總大小
used:真正使用的實際大小
free:剩餘物理內存大小(沒有分配,純剩餘)
shared:共享內存大小(不重要)
buff/chach:分配給二者的總共內存有多大 available:系統可以使用的內存有多大,它包含了free。 linux系統爲了讓應用跑的更快,會預先分配一些內存給某些應用使用,雖然這部份內存並無真正的使用,但也已經分配出去了。然而,當另外的一個服務要使用更多內存時,是能夠把這部分拿出來使用的。因此沒有佔用的buffer/cache加上free就是availble
- buffer/cache區別
舉慄:數據通過CPU計算,即將寫入磁盤,這是用的內存叫buffer;
CPU要計算是,須要把數據從磁盤中讀出來,臨時先放到內存中,這部分就是cache。
- 公式:total=used+free+buff/cache
通常來講內存總大小等於。使用內存與剩餘內存只和,可是這裏不同。
ps命令
- 介紹
系統管理員必定要知道你所管理的系統都有那些進程在運行,ps命令可以檢查某一個進程是否在運行
- 選項
ps aux :列出全部進程,至關於windos裏的任務管理器
ps -elf:基本等於aux
- 主要用法 如:ps aux | grep nginx 加管道符後面跟進程的名字,意爲檢查某個進程是否在運行或它的數量
在使用grep命令查詢命令數量時,其自己也算一個命令,因此要減一
-進程參數linux
- 參數介紹
pid:表示進程的id,在用kill命令殺死進程的時候能用到
STAT:表示進程的狀態。(有如下幾種)
- D 不能中斷的進程
R run狀態的進程
S sleep狀態的進程
T 暫停的進程
Z 殭屍進程
< 高優先級進程,CPU會優先處理
N 低優先級進程
L 內存中被鎖了內存分頁。瞭解就ok
s(小寫) 主進程
l 多線程進程
+前臺進程,好比在當前終端執行的ps aux 就是前臺進程
- 線程和進程的區別
1 進程裏包含了線程,線程是進程的子單元
2 同一個進程下的線程所有共享相同的內存,而進程之間內存相互隔離。
用 netstat 命令查看網絡狀態
- 介紹:該命令主要用於於打印網絡鏈接情況、系統所開放的端口、路由表等信息。
- 主要用法:
netstat -lnp 查看監聽端口
netstat -an 查看系統的網絡鏈接情況
netstat -lntp 只看出tcp的,不包含socket
ss -an 和nestat殊途同歸,相似但不會顯示進程的名字
- 示例
- 擴展用法:能夠查看全部狀態的數字
ESTABLISHED不大於1000時爲正常,大於1000說明系統很忙 有被攻擊的風險
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
抓包工具tcpdump
- 介紹:
有時想看某個網卡上有哪些數據包,尤爲是當發現服務器上有流量攻擊時,使用抓包工具抓取數據後就知道是哪些ip在攻擊了
默認沒有安裝命令,要用yum安裝
- 用法
tcpdump -nn 表示讓示例中的34列顯示成(ip+端口號);不加-nn選項則顯示(主機名+服務名稱)
tcpdump -nn -i ens33
tcpdump -nn port 80 指定抓包端口
tcpdump -nn –I eht0 not port 22 排除法
tcpdump -nn not port 22 and host 192.168.0.100 增長條件 指定ip
tcpdump -nn -c 100 -w 指定抓包的數量,並自動退出
tcpdump -nn -c 100 -w 1.cap指定抓包的長度和個數並保存
- 示例
- 擴展 :
查詢指定網卡80端口的一個web訪問狀況 。至關於一個訪客日誌,可以知道訪客的來源,訪問了什麼連接
安裝命令 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
擴展
tcp三次握手四次揮手
http://www.doc88.com/p-9913773324388.html
tshark幾個用法:
http://www.aminglinux.com/bbs/thread-995-1-1.htmlios