您的位置:首页 > 理论基础 > 计算机网络

监控io性能/free命令/ps命令/查看网络状况/linux下抓包

2018-01-24 16:40 1096 查看

监控io性能

使用iostat命令查看磁盘使用情况

[root@Ask-02 ~]# iostat -x



这里我们主要关注util这一列,util是个百分比显示的,如果这个值越大则表示你的硬盘越忙,这也会是你系统变慢的原因

使用iotop命令查看那个进程使用磁盘大
首先需要先安装这个命令

[root@Ask-02 ~]# yum install -y iotop
[root@Ask-02 ~]# iotop



free命令

free命令可以查看当前系统的总内存大小以及使用内存的情况。Centos7比Centos6更加简洁了一些,但大体内容一致。

[root@Ask-02 ~]# free



total:内存总大小
used:真正使用的实际内存大小
free:剩余物理内存大小(没有被分配,纯剩余)
shared:共享内存大小,不用关注它
buff/cache:buffer和cache都是一部分内存,内存的作用就是缓解CPU和IO的速度差距的
available:系统可以使用内存有多大

free命令显示的结果中,其实有一个隐藏的公式:total=used+free+buff/cacheavailable是由free这部分内存和buff/cache还未占用的那部分内存组成。
free同时还可以加一些参数-m-g(分别是MBGB的单位显示)打印内存使用状况,甚至也支持-h选项



ps命令

使用ps命令查看系统进程

[root@Ask-02 ~]# ps aux



除了ps aux命令外还有一个ps -elf命令,但是常用一般为ps aux命令

PID:表示进程的id,这个id很有用。在linux中,内核管理进程就得靠pid来识别和管理某一个进程,比如这里想要终止一个进程,则用命令“kill 进程的id”,有的时候这样并不能关闭某些进程,需要加-9选项,但你这样有些强行(暴力),严重的话可能会丢失数据,所以尽量不用。

STAT:进程的状态,状态分为以下几种

D:不能中断的进程(通常为IO)
R:正在运行的进程,包含等待CPU时间片的进程
S:已经中断的进程。通常情况下,系统的大部分进程都是这个状态
T:已经停止或者暂停的进程。
Z:僵尸进程,即杀不掉,打不死的垃圾进程,占用系统一点资源,不过没有关系。如果占用太多,则需要重视
<:高优先级进程
N:底优先级进程
L:在内存中被锁了内存分页
s:主进程
l:多线程进程
+:在前台运行的进程,比如在当前终端执行的ps aux就是前台进程

查看网络状态

netstat:用于打印网络连接状况、系统所开放端口、路由表等信息,一般常用的有;

[root@Ask-02 ~]# netstat -lnp //打印当前系统启动哪些端口

[root@Ask-02 ~]# netstat -an //打印网络连接状况

tcp三次握手四次挥手,需要着重了解的内容;
https://wenku.baidu.com/view/91793c1ec281e53a5802ff29.html

分享技巧,查看所有状态的数量(客户端和服务端在通信数量,1000以内都是正常的)

[root@Ask-02 ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
LISTEN 9
ESTABLISHED 1

linux下抓包

tcpdump工具:查看某个网卡上都有哪些数据包,尤其是当你初步判断服务器上有流量攻击时,使用抓包工具来抓取数据包就可以知道有哪些ip在攻击了。
如果还没有tcpdump工具则先进行安装;

[root@Ask-02 ~]# yum install -y tcpdump
[root@Ask-02 ~]# tcpdump -nn -i ens33



常用参数-nn 这里由于使用的虚拟机所以需要指定网卡加了-i参数,命令输完回车,屏幕会不断打印出字符,字符串不停刷新,这些内容就是传输数据的流向过程以及数据包,这里重点关注第三列和第四列,表示从哪个ip+端口连接到哪个ip+端口Ctrl+C退出程序。
tcpdump还有-c-w选项,-c指定抓包数量,-w保存抓取结果到指定的路径

[root@Ask-02 ~]# tcpdump -nn -i ens33 -c 10 -w /home/ask/文档/

除此之外还有

[root@Ask-02 ~]# tcpdump -nn -i ens33 port 22 //指定抓取22端口的包
[root@Ask-02 ~]# tcpdump -nn -i ens33 not port 22 //指定抓取除了22端口以外的包
[root@Ask-02 ~]# tcpdump -nn -i ens33 tcp and not port 22 //指定抓取tcp的包,但排除掉22端口的
[root@Ask-02 ~]# tcpdump -nn -i ens33 port 22 and port 24 //指定抓取只有22和24端口的包

wireshark工具

安装tshark抓包工具

[root@Ask-02 ~]# yum install -y wireshark

指定查看80端口的访问情况

[root@Ask-02 ~]# 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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  监控 io 性能
相关文章推荐