linux 查看网络包命令行,监控io性能、free命令、ps命令、查看网络状态、linux下抓包...

本文介绍了如何使用iostat命令监控系统I/O性能,强调了iostat的统计特点,并推荐了iotop作为更详细的进程I/O分析工具。此外,还提及了free、ps、netstat和tcpdump命令,展示了在Linux下管理和诊断网络及内存状况的方法。
摘要由CSDN通过智能技术生成

监控io性能

iostat命令

iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

安装:

[root@centos7 logs]# yum install sysstat

[root@centos7 logs]# iostat -x

Linux 3.10.0-327.el7.x86_64 (centos7) 11/29/2017 _x86_64_ (1 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

0.55 0.00 0.40 0.19 0.00 98.86

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.20 0.13 2.33 4.02 27.76 25.77 0.01 2.86 14.81 2.17 1.42 0.35

dm-0 0.00 0.00 0.11 2.51 3.68 27.74 23.99 0.01 2.86 17.86 2.23 1.34 0.35

dm-1 0.00 0.00 0.00 0.00 0.01 0.00 16.88 0.00 7.54 7.54 0.00 7.11 0.00

util%:表示io等待占比,正常情况下该值和磁盘读写(r/w)成正比,如果该值很大,读写数值很小则说明磁盘存在问题,系统性能会受影响!

iotop命令

iotop命令是一个用来监视磁盘I/O使用状况的top类工具(动态)。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。

安装:

[root@centos7 logs]# yum install iotop

e6db29dec4fec48d4eba752bfc395894.png

iotop常用快捷键

左右箭头:改变排序方式,默认是按IO排序

r:改变排序顺序。

o:只显示有IO输出的进程。

p:进程/线程的显示方式的切换。

a:显示累积使用量。

q:退出。

free命令

[root@centos7 logs]# free -mh

total used free shared buff/cache available

Mem: 1.8G 658M 691M 24M 475M 979M

Swap: 1.0G 0B 1.0G

“total=used+free+buff/cache”

“available=free+buff/cache(空闲部分)”

buff(缓冲):当CPU向磁盘写入数据时,由于磁盘存储速率低于CPU,所以CPU工作时先将写好的数据存放在内存中,该部分内存即为缓冲内存。

cache(缓存):当CPU从磁盘读取数据时,由于磁盘输出速率低于CPU的读取速度,所以磁盘的数据会预先存放在内存中,该部分内存即为缓存内存。

ps命令

查看正在进程、pid等

a:显示现行终端机下的所有程序,包括其他用户的程序。

u:以用户为主的格式来显示系统状况。

x:显示所有程序,包括历史进程。

-e:显示所有进程(同a)

-f:显示UID、PPIP、C与STIME栏

-l:显示进程详细信息

ps -aux

9abbe41fed5759a9952eb568302c2b3b.png

进程状态:

D:不能中断的进程

R:run状态的进程

S:sleep状态的进程

s:主进程

T:暂停的进程

Z:僵尸进程

N:低优先级进程

L:内存中被锁定了内存分页

l:多线程进程

+:前台进程

查看网络状态

netstat命令

-a:=all 显示所有连线中的socket

-l:=listening 显示监控中的服务器的socket

-n:=numeric 直接使用IP地址

-p:=programs 显示正在使用socket的程序识别码和程序名称

-t:=tcp 显示tcp传输协议的连接状况

查看端口进程

[root@centos7 logs]# netstat -nutlp

bb7c2196447cb3c8434c101ff791118f.png

netstat -an

查看系统网络连接状况(ESTABLISHED:表示连接状态)

5a2d82f24efb622f01cacc320820fbc3.png

查看tcp协议状态的命令:

netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

ESTABLISHED 3

LISTEN 8

446753237541acd8878485e9160ee8f7.png

791999dd4d2575ea0cc9225e2bea1f72.png

ss命令

-a:显示所有套接字(socket)

-n:不解析服务器名称,以数字方式显示

54e312a7ce4dd9de8398880f6151aa8a.png

linux下抓包

tcpdump命令

tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

-i:指定网卡名,使用指定的网络送出数据包

-c:指定数量

-w:指定存放位置

-r:=read,从指定文件查看数据包数据

tcpdump -nn -i ens33 (第一个n表示以数字形式显示IP,如果不加该选项会显示成主机名)

tcpdump -nn ens33 port 22 (not port 22)指定端口为22的(非22的)

tcpdump -nn ens33 port 22 and host 192.168.3.1 指定多个条件(host:主机,后面跟主机名或IP)

tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap 指定抓包数量和存放位置

用法:

[root@centos7 alertscripts]# tcpdump -nn -i eno16777736 -c 10 -w /tmp/1.cap

tcpdump: listening on eno16777736, link-type EN10MB (Ethernet), capture size 262144 bytes

10 packets captured

10 packets received by filter

0 packets dropped by kernel

查看:

[root@centos7 alertscripts]# tcpdump -r /tmp/1.cap

tshark命令

安装:yum install -y wireshark

查看指定网卡80端口的1个web服务的访问情况(类似于web的访问日志):

[root@centos7 ~]# 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"

抓取mysql的查询

[root@centos7 ~]# tshark -n -i eno16777736 -R 'mysql.query' -T fields -e "ip.src" -e "mysql.query"

统计http的状态

[root@centos7 ~]# tshark -n -q -z http,stat, -z http,tree

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值