安裝:yum install -y sysstat
iostat用於輸出CPU和磁盤I/O相關的統計信息.
詳細的io統計信息分析IO瓶頸
參數:
-x 選項:查看詳細信息
-c 選項:查看CPU使用狀況
-d 選項:查看磁盤使用狀況
重點關注%util(採用週期內用於IO操做的時間比率,即IO隊列非空的時間比率,若是 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。)ios
[root@jinkai01 sed]# iostat -x
Linux 3.10.0-957.el7.x86_64 (jinkai01) 08/25/20 _x8664 (1 CPU)緩存avg-cpu: %user %nice %system %iowait %steal %idle
0.19 0.00 0.51 0.01 0.00 99.29服務器Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.02 1.61 0.25 48.97 3.23 56.10 0.00 0.53 0.42 1.22 0.25 0.05
scd0 0.00 0.00 0.00 0.00 0.22 0.00 114.22 0.00 1.50 1.50 0.00 1.11 0.00
dm-0 0.00 0.00 1.53 0.21 46.32 2.79 56.40 0.00 0.59 0.43 1.70 0.25 0.04
dm-1 0.00 0.00 0.02 0.00 0.52 0.00 54.67 0.00 0.13 0.13 0.00 0.06 0.00網絡
安裝:yum install -y iotop
用來監視磁盤I/O使用情況的top類工具
iotop [選項]
選項
-o:只顯示有io操做的進程
-b:批量顯示,無交互,主要用做記錄到文件。
-n NUM:顯示NUM次,主要用於非交互式模式。
-d SEC:間隔SEC秒顯示一次。
-p PID:監控的進程pid。
-u USER:監控的進程用戶。
經常使用選項:
左右箭頭:改變排序方式,
默認是按IO排序。
r:改變排序順序。
o:只顯示有IO輸出的進程。
p:進程/線程的顯示方式的切換。
a:顯示累積使用量。
q:退出。
查看磁盤IO使用的進程多線程
[root@jinkai01 sed]# iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 22
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
5 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H]
6 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u256:0]
7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh]
9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched]ssh
查看內存使用狀況socket
[root@jinkai01 sed]# free
total used free shared buff/cache available
Mem: 995896 140220 576820 7776 278856 671092
Swap: 2097148 0 2097148tcp
Mem:內存使用狀況
Swap:交換分區使用狀況
total:總內存大小
used:已使用內存的大小
free:未使用的內存大小
shared:共享中的;
buff/cache:緩存和緩衝區的內存大小(不理解緩衝緩存的能夠詳細查資料瞭解)
available:不只包含未使用的內存,還包含了可回收的緩存緩衝,因此顯示的比未使用的內存大
公式:
total=used+free+cache/buff
avaliable包含free和buff/cache剩餘部分ide
用合適的單位表示數據工具
[root@jinkai01 sed]# free -h
total used free shared buff/cache available
Mem: 972M 136M 563M 7.6M 272M 655M
Swap: 2.0G
**查看系統進程
參數:
-A 列出全部的行程
-w 顯示加寬能夠顯示較多的資訊
-u 後面跟用戶,能夠指定查看哪一個用戶的進程信息
-au 顯示較詳細的資訊
-aux 顯示全部包含其餘使用者的進程
USER:進程擁有者;
PID:進程的ID,識別和管理進程。經常使用於 kill PID 終止某一個進程
STAT進程的狀態:
D:不能中斷的進程;
R:run運行中的進程,包含了等待CPU時間片的進程;
S:sleep狀態的進程;
T:暫停的進程;
Z:殭屍進程;
<:高優先級進程;
N:低優先級進程;
L:內存中被鎖了的內存分頁;
s:主進程;
l:多線程進程;
+:前臺進程;
START: 行程開始時間;
TIME: 執行的時間;
COMMAND:所執行的指令;**
查詢進程
ps aux | grep 進程名
查詢當前進程是否存在或運行;
[root@jinkai01 sed]# ps aux | grep sshd
root 7046 0.0 0.4 112756 4308 ? Ss 19:58 0:00 /usr/sbin/sshd -D
root 7309 0.0 0.5 158760 5608 ? Ss 19:59 0:03 sshd: root@pts/0
root 7579 0.0 0.0 112680 704 pts/0 R+ 21:56 0:00 grep --color=auto sshd
查看網絡情況
參數:
-a 顯示全部連線中的sockte
-l 顯示監控中的服務器的socket
-n 直接使用IP地址,而不經過域名服務器
-p 顯示正在使用的sockte的程序識別碼和程序名稱
-t 顯示TCP傳輸協議的連線情況
-u 顯示UDP傳輸協議的連線情況
-r 顯示路有信息
-e 顯示關於以太網的統計數據(數據包的總字節數,錯誤數,刪除數,數據包的數據和廣播的數量)
-i 顯示網卡列表
-g 顯示組播組的關係
-s 顯示網絡統計
netstat -lnp
打印當前系統啓動哪些端口
上面是tcp/ip,下面是監聽的sockte (unix開頭)netstat -an
打印網絡鏈接情況
統計命令
統計機器中網絡鏈接各個狀態的個數
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
或netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]} '
[root@jinkai01 sed]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
LISTEN 4
ESTABLISHED 1
tcpdump工具
安裝包
yum install -y tcpdump
參數:
-c :指定要抓取的包數量
-w :把抓取的包,指定路徑保存
-i :指定tcpdump須要監聽的端口,默認會抓取第一個網絡接口
-n :對地址以數字的方式顯示,不然顯示爲主機名
-nn 除了-n,還把端口顯示爲數值,不然顯示端口服務名
-r 從給定的數據包文件中讀取數據。
-P:指定要抓取的包是流入仍是流出的包。能夠給定的值爲"in"、"out"和"inout",默認爲"inout"
指定網卡抓包
格式:
tcpdump -nn -i 網卡名
tcpdump -nn -i ens33
指定抓取網卡名爲ens33的包
22:26:37.317199 IP 192.168.186.140.22 > 192.168.186.1.63163: Flags [P.], seq 399028:399288, ack 37, win 302, length 260
其中主要看
192.168.186.140.22 > 192.168.186.1.63163
這一列,前面ip表示ip源與端口,後面ip表示目的ip與端口
指定端口
格式:
tcpdump -nn -i [網卡名] port [端口號]
tcpdump -nn -i ens33 port 22
指定抓取網卡名爲ens33 端口號爲22的包
22:29:52.204974 IP 192.168.186.140.22 > 192.168.186.1.63163: Flags [P.], seq 410380:410536, ack 73, win 302, length 156
其餘命令
tcpdump -nn -i [網卡名] not port [端口號] and host 192.168.186.140
抓取指定網卡名,端口號xx之外的全部端口號,主機名爲192.168.186.140的包
指定抓包個數
-c [數值]:
tcpdump -nn -i ens33 -c 10
指定抓取10個包;
[root@jinkai01 sed]# tcpdump -nn -i ens33 -c 10
指定抓包個數保存到文件
-w [文件路徑]:
[root@jinkai sed]# tcpdump -nn -i ens33 -c 10 -w /tmp/a.txt
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
10 packets captured
20 packets received by filter
0 packets dropped by kernel
查看保存數據包的文件
-r [保存的數據包文件】
[root@jinkai01 sed]# tcpdump -r /tmp/a.txt
命令:tshark
安裝包
yum install -y wireshark
查看當前http服務器訪問的ip以及所訪問的http連接
[root@jinkai01 sed]# 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"
安裝:yum install -y net-tools
ifdown 停用網卡 ifup 啓用網卡
ifdown ens33 && ifup ens33
能夠一塊兒執行,這樣就不會斷網了致使服務中斷
給一個網卡設定多個IP
設置過程:
[root@jinkai01 sed]# cd /etc/sysconfig/network-scripts/
[root@jinkai01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:1
這裏加反斜槓\是要把:給轉義,否則命令行下沒法識別,下面編輯ifcfg-ens33:1這個配置文件。注意:DEVICE改爲ens33:1
[root@jinkai01 network-scripts]# cat ifcfg-ens33:1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33:1"
UUID="1307da0c-3632-4d8c-ae7e-1e717298ec13"
DEVICE="ens33:1"
ONBOOT="yes"
IPADDR="192.168.186.150"
NETMASK="255.255.255.0"
GATEWAY="192.168.186.2"
DNS1="119.29.29.29"
改 NAME DEVICE IPADDR,設置完成後重啓網卡
Systemctl restart network
重啓後多了一個網卡ens33:1
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.186.150 netmask 255.255.255.0 broadcast 192.168.186.255
ether 00:0c:29:04:50:5d txqueuelen 1000 (Ethernet)
查看網絡鏈接狀態
命令:mii-tool 網卡名
[root@jinkai01 network-scripts]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
link ok 說明網卡鏈接狀態,no link 說明網卡壞了或者沒有鏈接網線
命令:ethtool 網卡名
[root@jinkai01 network-scripts]# ethtool ens33
Settings for ens33:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
設置DNS
配置文件:臨時修改 /etc/resolv.conf。永久生效須要修改網卡配置文件
把DNS地址寫入到配置文件/etc/resolv.conf便可生效
[root@jinkai01 network-scripts]# cat /etc/resolv.conf
Generated by NetworkManager
nameserver 119.29.29.29
格式: nameserver(域名) IP
系統默認會用第一個nameserver去解析域名,當第一個解析不成功是會使用第二個去解析
/etc/hosts 域名解析:一個IP後面能夠跟多個域名,能夠是幾十個甚至上百個;每一行只能有一個IP,也就是說一個域名不能對應多個IP;若是有多行中出現相同的域名(對應的IP不同),會按最前面出現的記錄來解析。