10月24日任务
10.6 监控io性能
10.7 free命令
10.8 ps命令
10.9 查看网络状态
10.10 linux下抓包
扩展tcp三次握手四次挥手 http://www.doc88.com/p-9913773324388.html
tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html
一、监控io性能
磁盘io监控有两个命令:iostat -x iotop
- iostat -x 查看磁盘io负载
iostat和sar属于同一个包,安装了sar就可以使用iostat
主要关注 %util,这个值越高说明磁盘I/O负载越高。一般大于70%说明I/O的压力就很大了,需要进行排查是磁盘的问题还是服务的问题。
- iotop
iotop监控磁盘I/O使用情况,类似于top,可以监测到那一个程序在占用I/O
安装:yum -y install iotop
使用iotop命令查看一下:
二、free命令
free命令是用来查看内存和swap的使用情况,默认的单位是kb
可以使用-m或-g来指定单位,也可以使用-h来查看
详解:
Mem:物理内存信息
toptal:物理内存总和
used:已使用的内存大小
free: 空闲内存大小
shared: 共享内存
buff/cache: 缓存大小。
buffer与cacher 的区别
(数据)磁盘——>内存(cache)——>cpu
CPU要计算时,需要把数据从磁盘中读出来,临时放到内存中,这部分内存就是cache
(数据)cpu——>内存( buffer)——>磁盘
数据经过CPU计算,即将要写入磁盘,这时用的内存为buffer。
available: buff/cache+free的总和,也就是可用内存。如果想看可用内存,关注这个即可。
计算公式:
total=used + free + buff/cache
三、ps命令
ps命令是用来查看系统进程
- ps常用的两种方式
ps -aux 、ps -elf
ps aux 会把系统中所有的进程给列出来,静态的显示出来
ps -elf 显示出的效果和ps aux基本类似,只不过输出格式不同
- 显示说明 ,以ps -aux为例
USER:进程运行的用户
PID:进程的pid
如果要杀掉进程可以:kill pid
查看进程启动目录:ls -l /proc/PID号
%CPU:进程所使用的cpu占比
%MEM:进程使用的内存占比
VSZ: 虚拟内存
RSS:物理内存
TTY:运行在哪一个终端
STAT:进程运行状态
START:进程启动时间
TIME:进程运行时间
COMMAND:命令行
- 需要注意STAT进程运行状态:
D 不能中断的进程 (会影响CPU资源)
R run状态的进程(正在运行的进程)
S sleep状态的进程
T 暂停的进程
Z 僵尸进程
字符< 高优先级进程
N 低优先级进程
L 内存中被锁了内存分页
s 主进程
l 多线程进程
字符+ 前台进程
四、监控网络状态
查看网络状态使用netstat命令
- 查看监听端口
netstat -lnp
unix中也通信文件socket,也显示socket 的连接信息
- 查看所有的连接状态
netstat -an
- 只查看tcp连接
netstat -ltnp
- 只查看tcp和udp
netstat -ltunp
- 查看网络状态小技巧
查看所有的状态的数字
netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t" ,sta[key]}'
主要关注ESTABLISHED这个值,它是网站的并发连接数,就是同一时间有多少个客户端在连接你。如果这个值很大说明系统很繁忙,通常这个值在一千以内都是可以接受的。
- 和netstat类似的命令
ss -an
这命令和netstat显示的差不多,但是它不显示进程的名字
五、linux下抓包
抓包工具:tcpdump
这个命令如果不能使用则需要安装:yum install -y tcpdump
- tcpdump最简单的用法:
tcpdump -nn -i eth0
第一个n表示显示ip,如果不加则显示主机名
-i表示指定网卡
第一列:时间
第二列:IP 源ip+端口 > 目标ip+端口
第三列:数据包信息
- DDos攻击
udp flood 利用大量UDP小包攻击服务器,遇到这种情况只能接入防攻击设备。
- 指定端口
tcpdump -nn -i eth0 port 22
- 也可以排除端口
tcpdump -nn -i eth0 not port 22
- 排除端口并指定ip
tcpdump -nn -i eth0 not port 22 and host ip地址
- 指定数据包,并存到文件中
tcpdump -nn -i eth0 port 22 -c 10 -w 2.cap
-c:指定统计多少流量包
-w:指定生成到2.cap文件中
.cap不能直接查看,可以使用file命令查看文件信息:
查看还需要使用tcpdump 命令:
tcpdump -r 2.cap
-r:表示读取
- tshark命令
tshark是一个类似于tcpdump的抓包工具,它有一个实用的功能:查看指定网卡的80端口的web访问情况。它可以查看外部访问的一个信息。
使用需要安装:yum install -y wireshark