檢視系統負載 w指令 :
w/uptime 最後面三個數字表示1分鐘,5分鐘,15分鐘平均有多少個程序占用CPU
占用CPU的程序可以是Running,也可以是Waiting
某一時刻1顆CPU隻能有一個程序在使用其資源
top指令:
top 回車就可以進入到top界面
每3秒重新整理一次
預設按cpu百分比排序,可以按M鍵按照記憶體使用率大小排序
按數字1,可以顯示所有CPU使用率詳情
top -bn1 靜态顯示所有程序的情況,也是按cpu百分比排序
靜态顯示程序資訊,友善在shell腳本中使用top指令
檢視cpu核數
cat /proc/cpuinfo
lscpu
free指令:記憶體相關的
free檢視記憶體和swap使用情況,關注最後一列的available,這個數字是真正剩餘的實體記憶體大小
free -k
-m
-g
-h
表示已各種形式的顯示出來 比如 100k 100M 顯示。
ps:total(總大小)= used(使用)+free(剩餘)+buffer/cached
avaliable包含free和buffer/cached的剩餘部分
buffer和cached
(cpu到磁盤經過的記憶體叫buffer)
(磁盤到cpu經過的記憶體叫cached)
兩個為想法的
buffer : 這部分記憶體是從CPU産生即将寫入到磁盤裡去的那部分資料;
cached 這部分資料是先從磁盤裡讀出來,然 後臨時存到記憶體裡的那部分資料,(
手動增加swap
dd if=/dev/zero of=/bigfile bs=1M count=1000
###dd對磁盤操作的一個工具 if表示來源 of表示目的 /bigfile表示根下 bs表示決定每一個塊有多大 count表示挂載多少個塊
mkswap /bigfile
chmod 600 /bigfile
swapon /bigfile
示範: 手動模拟一塊兒磁盤,并格式化成swap的格式
監控磁盤:
iostat 看磁盤的使用率及讀寫速度
yum install -y sysstat 沒有這個指令安裝下
iostat -dx 1 檢視磁盤百分比資訊 最右側%util 顯示的是磁盤百分比
iostat -dx 1 5 表示顯示五次自動停止
也可以使用 iotop 檢視
yum install -y iotop
iotop 直接回車執行 動态顯示,按IO使用率大小排序
vmstat 指令 綜合檢視磁盤使用情況,斷定瓶頸點
vmstat 1 10 表示一秒一次 顯示十次停止
監控網卡流量 sar
### sar的指令是由 sysstat包裝的
yum install -y sysstat
sar -n DEV 1 10 DEV表示裝置
sar 指令看的是ls /var/log/sa 下的檔案 sa下有一個目前日期的檔案
cat無法檢視,隻能使用sar檢視 例如 sar -f /var/log/sa/sa07
如果隻是想看網卡的流量顯示使用 -n 加DEV
如:
sar -n DEV -f /var/log/sa/sa07 如圖二所示!
sar 直接執行 看的是cpu
sar -b 看的是磁盤 (io)
sar -q 看的是系統負載 還可以看曆史系統負載加上-f 指定檔案即可
ps: 小常識
bit 比特 (帶寬機關)
Byte 位元組 (速度傳輸機關)
8bit = 1Byte 2MB/s 2*8=16Mbit 100Mbit 12.8MB/s
監控網卡流量 nload
nload 監控檢視網卡流量比sar 更直覺
一般yum源是沒有nload的包的 需要現先epel的擴充源才能賺nload
yum -y install epel-release 裝完之後再轉nload
yum -y install nload
裝好之後直接 輸入nolad 執行 可以動态顯示網卡流量
inconming:表示進來的
outgoing: 表示出去的
可以按方向鍵切換網卡檢視
ethtool 加網卡名字可以檢視網卡的資訊,檢視網卡是否在連結狀态
例如:
ethtool ens33
mii-tool 加網卡名稱 也可以檢視網卡資訊,是否為連結狀态
例如:
mii-tool ens33
ps: link 0k 表示連結 no link 未連接配接
ps 執行 隻檢視目前終端運作的一些程序
ps aux 可以檢視系統裡面所有的使用者包括前台背景系統級别使用者級别的所有的程序
ps -elf 與ps aux 類似
ps -eLf 檢視線程 例如檢視mysql的線程 ps -eLf | grep mysql
ls -l /proc/pid/ #檢視一個程序的一些詳細資訊
ps aux 列出的的第一列為使用者 第二列的PID下的數字為程序的id号
可以通過 ls /proc/跟id号 可以檢視列出該程序所有的相關目錄
第八列的 STAT 表示的字元為
D 不能中斷的程序
S Sleep
R Running
T 暫停的程序
L 記憶體中被鎖了記憶體分頁
s 主(父)程序
N 低優先級
< 高優先級
+ 前台程序
l 多線程程序
Z 僵屍程序
netstat -lnp 檢視監聽端口
netstat -lntp 隻檢視tcp的
netstat -lntup 檢視tcp、udp的
netstat -an 檢視系統的所有的網絡連結
ss -an 與netstat -an 一樣 隻是 ss -an 顯示的會比較快
檢視系統所有網絡狀态的數字指令
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
tcpdump (安裝:yum install -y tcpdump)
tcpdump 直接執行就可檢視抓取的包
tcpdump -nn 表示以數字的形式顯示IP和port 如果不顯示 可以指定網卡名稱 和port
例如: tcpdump -nn -i ens33 port 80
tcpdump -nn -i ens33 -c 100 -w 1.txt (-c 指定抓100個包 -w指定把抓到的包寫到1.txt中)
tcpdump -nn -r 1.cap 使用這個指令讀取這個檔案
tcpdump -i ens33 -nn not port 22 and not port 80 and not host 192.168.111.1
表示抓包時不抓22和80端口、192.168.111.1 這個IP的也不要 (多個條件或者單個條件)
wireshark (安裝:yum install -y wireshark)
wireshark --> tshark 使用方法與tcpdump 類似
比較好用的就是下面這條指令 它主要針對的事80端口的
最終執行後出來的結果就跟通路的日志一樣
有來源IP、有域名和url等等…… (使用時可以直接複制執行 -i 指定網卡主要要跟自己的比對)
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"