监控io性能、free、ps、查看网络状态和linux抓包工具
一、监控io性能
1、iostat -x 磁盘使用
关注最后一列的数值,数值大说明磁盘有异常
2、iotop 磁盘使用
安装:yum install -y iotop
二、free命令
查看内存使用多少,剩余多少请看第二行的数据。另外我们还可以加-m或-h 或者-g选项分别以M或G为单位打印内存使用状况:
常用: free -h
三、ps命令
ps查看系统进程
用法:ps aux 或 ps -elf
PID :进程的id,想终止某一个进程,则用 ‘kill 进程的pid 有时并不能杀掉,则需要加一个-9选项了 kill -9 进程pid
STAT :表示进程的状态
D:不能中断的进程(通常为IO)
R: 正在运行中的进程
S: 已经中断的进程,通常情况下,系统中大部分进程都是这个状态
T: 已经暂停的进程,如果我们正在运行一个命令,比如说 sleep 10 如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态
Z: 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。
<: 高优先级进程
N: 低优先级进程
L: 在内存中被锁了内存分页
s: 主进程
l: 多线程进程
+: 代表在前台运行的进程
ps命令经常会连同管道符一起使用,用来查看某个进程或者它的数量
四、netstat 查看网络状况
netstat命令用来打印网络连接状况、系统所开放端口、路由表等信息
常用的关于netstat的命令就是这个 netstat -lnp (打印当前系统启动哪些端口)以及 netstat -an (打印网络连接状况)
1、netstat -lnp 打印当前系统启动哪些端口
2、netstat -an 打印网络连接状况
如果你所管理的服务器是一台提供web服务(80端口)的服务器,那么你就可以使用 netstat -an |grep 80 查看当前连接web服务的有哪些IP了。
分享一个小技巧:可以查看所有状态的数字
netstat -an | awk ‘/^tcp/ {++sta[$NF]} END {for(key in sta) print key,”\t”,sta[key]}’
关注:ESTABLISHED, 网站并发连接数,表示同一时刻有多少个客户端连接到服务端进行通信(1000以内可以接受)
五、linux抓包工具tcpdump
有时候想看一下某个网卡上都有哪些数据包,尤其是当你初步判定你的服务器上有流量攻击。这时,使用抓包工具来抓一下数据包,就可以知道有哪些IP在攻击你了
没有tcpdump 这个命令,需要用 yum install -y tcpdump 命令去安装一下
tcpdump -nn -i eno16777736
需要关注:
第三列和第四列显示的信息为哪一个IP+port在连接哪一个IP+port。-i 选项后面跟设备名称,如果你想抓eth1网卡的包,后面则要跟eth1.至于-nn选项的作用是让第三列和第四列显示成IP+端口号的形式,如果不加-nn则显示的是主机名+服务名称。
另外介绍一个实用的工具tshark和命令:
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”
指定网卡,80端口的web访问情况
类似web的访问日志
安装命令:yum install -y wireshark
每天坚持学习1小时Go语言,大家加油,我是彬哥,下期见!如果文章中不同观点、意见请文章下留言或者关注下方订阅号反馈!
社区交流群:221273219
Golang语言社区论坛 :
www.Golang.Ltd
LollipopGo游戏服务器地址:
https://github.com/Golangltd/LollipopGo
社区视频课程课件GIT地址:
https://github.com/Golangltd/codeclass
有疑问加站长微信联系(非本文作者)