10.6 监控io性能
10.7 free命令
10.8 ps命令
10.9 查看网络状态
10.10 linux下抓包
10.6 iostat命令
iostat:查看磁盘io的情况
系统默认没有这个工具1
[root@localhost ~]# yum install -y sysstat ##安装sysstat包
用法:iostat [-x] [n n (n为数字) 第一个n表示没n秒显示一次 第二个n表示显示次数]
kB_read/s 磁盘每秒读取数据的速度 kB_wrtn/s 磁盘每秒写入数据的速度
-x
:详细显示io情况
这里我们留意最多的%util 这列的数据 他表示单位时间内用于等待磁盘io的百分比 %util接近100%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈,一般%util大于60%,I/O压力就比較大。
iotop命令
iotop:查看进程使用磁盘io的情况
系统默认没这个工具1
[root@localhost ~]# yum install -y iotop ##安装iotop工具
注意留意那个进程使用磁盘io的百分比多 swapin那列表示进程在进行swapin进行IO时占用的时间比例 其他和top命令的内容类似
10.7 free命令
free:显示内存的使用情况
用法:free [-h]
-h
:人性化显示内存的大小
字母 | 含义 |
---|---|
total | 总大小 |
used | 已经使用的大小 |
free | 空闲大小 |
buff | 缓冲 数据从cpu到磁盘时候使用的内存 快–>慢 |
cache | 缓存 数据从磁盘到cpu时候使用的内存 慢–>快 |
available | 可获得的大小 真正剩余大小 |
其中第一行是数码 第二行是内存 第三行是swap 系统在一开始的时候给把内存的一部分分给了buff/chche来做数据缓存/缓冲的地方 因此 total = used + free + buff/chche
而available = free +buff/cache剩余的部分
一般看内存还剩余多少 直接看available就可以了
10.8 ps命令
ps:一次性显示当前系统进程
用法:ps aux
或者ps -elf
第一列 USER 使用进程的用户
第二列 PID 进程的pid
第八列 STAT 进程的状态
第九列 START 进程的启动时间
第十列 TIME 进程已经使用的时间
第十一列 COMMAND 进程命令
STAT中的字母表示的含义
字母 | 含义 |
---|---|
D | 不能终端的进程 |
R | 正在运行的进程 |
S | 休眠进程 排队中的进程 |
T | 暂停进程 使用Ctrl+z 暂停 |
Z | 僵尸进程 |
< | 高优先级进程 |
N | 低优先级进程 |
L | 内存中被所内存分页 |
s | 主进程 |
l | 多线程进程 |
+ | 前台进程 |
听说查进程时ps和管道符更配哦1
[root@localhost ~]# ps aux |grep kworker
kill命令
kill:杀死进程
用法:kill[-9] PID
1
[root@localhost ~]# kill 5 ##杀死PID是5的进程
-9
:强制杀死1
[root@localhost ~]# kill -9 5 ##强制杀死PID是5的进程
10.9 netstat命令
netstat -lnp 查看监听端口
上面的查看是tcp/ip协议的的服务 下面unix的查看本机是sockt文件
可以看见sshd服务使用22端口 master服务使用了25端口
netstat -an 查看所有的网络连接状态
tcp协议的三次握手和四次挥手
状态 | 含义 |
---|---|
LISTEN | 表示可以接受客服端的连接 |
SYN_RCVD | 表示收到对方SYN的请求 |
SYN_SENT | 表示已经发送SYN的请求 等待对面回复 |
ESTABLISHED | 表示tcp已经建立 |
FIN_WAIT_1 | 主动发FIN标志给对方 等待对方回复 |
FIN_WAIT_2 | 接受到对方ACK标志 让对方把该做的事先做完 |
TIME_WAIT | 收到对方的FIN标志 等待关闭 |
CLOSE_WAIT | 收到对方的FIN标志 看看自己是否还有数据要传 |
LAST_ACK | 发送FIN标志给对方 等待对面发回ACK标志来等待关闭 |
CLOSING | 表示tcp已经关闭建立 |
小技巧 使用下面统计网络状态的数量
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
1
2
3[root@localhost ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
LISTEN 4
ESTABLISHED 1
一般ESTABLISHED 有1000已经很多了
ss命令
ss -an 查看网络状态 类似netstat -an
10.10 tcpdump命令
tcpdump:抓包工具
用法:tcpdump [-nn] [-icwr]
系统默认没有安装tcpdump工具1
[root@localhost ~]# yum install -y tcpdump
-i
:指定抓包的网卡名字1
[root@localhost ~]# tcpdump -i ens33 ##指定ens33网卡
第一列表示时间 第二列表示源ip地址:端口 目标ip地址:端口 第三列表示数据包的信息
也可以指定抓包的端口1
[root@localhost ~]# tcpdump -nn -i ens33 port 22
或者1
[root@localhost ~]#tcpdump -nn -i ens33 not port 22 and host 192.168.0.100
-nn
:显示ip地址和段口号1
[root@localhost ~]# tcpdump -nn -i ens33
-c
:指定抓包的数量-w
:指定把抓包的信息存放的路径1
[root@localhost ~]# tcpdump -nn -i ens33 -c 10 -w /tmp/bao.cap ##抓10个包并把信息存在/tmp/bao.cap下
1 | [root@localhost ~]# file /tmp/bao.cap |
注意:bao.cap文件是不能用cat查看的 只能用tcpdump命令来查看内容
-r
:查看抓包文件的内容1
[root@localhost ~]# tcpdump -r /tmp/bao.cap
tshark命令
tshark:抓包工具
系统默认没有安装1
[root@localhost ~]# yum install -y wireshark
小技巧 使用下面命令查看指定网卡web的情况
1 | 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" |
第一列时间 第二列 客服端的ip地址 第三列 服务器的域名 第四列 服务端的连接,图片等等