linux查看端口iostat,iostat、free、ps、netstat、tcpdump

监控io性能

iostat命令

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

iostat -x

0a7bbb4664828827eaac2dfff57c741e.png

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

iotop命令

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

1c5d4a8d4bb033d0a309a63a8bea351c.png

注: 在此关注‘IO>’这一列!

iotop常用快捷键

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

Ø  r:改变排序顺序。

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

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

Ø  a:显示累积使用量。

Ø  q:退出。

free命令

>free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

语法: free [options]

Options:

-b/k/m/g:分别以byte、KB、M、G为单位显示(默认以KB为单位)

-h:已适当的单位显示

-t:显示内存总和

6ab76d244d89d61bccb980c29bf8df03.png

说明:

“total=used+free+buff/cache”

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

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

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

ps命令

>ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

用法

语法: ps [options]

Options:

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

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

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

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

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

-l:显示进程详细信息

ps aux

a92203b526048a7ddd04a5a3a46737b9.png

说明: STAT表示进程状态。

进程状态:

²  D:不能中断的进程

²  R:run状态的进程

²  S:sleep状态的进程

²  s:主进程

²  T:暂停的进程

²  Z:僵尸进程

² 

²  N:低优先级进程

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

²  l:多线程进程

²  +:前台进程

ps –elf

3acca5e3eaa9fcd9a209f05f255ab6d8.png

查看网络状态

netstat命令

>netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

语法: netstat [options]

Options:

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

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

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

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

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

netstat -lnp 查看监听端口

3b338e608a60425705264a8feec7441b.png

netstat -an 查看系统网络连接状况

04f026280803fcdfb347496089556cb5.png

netstat -lntp 只看tcp协议连接,不看socket

8b68bdd3ee91481996d35cbbf11d4fb8.png

ss命令

>ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效,缺点是不会显示进程的名称。

语法: ss [options]

Options:

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

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

ed7a7a5b278a8330ce84c61e09799623.png

Linux下抓包

tcpdump命令

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

语法: tcpdump [options]

Options:

-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.8.1 指定多个条件(host:主机,后面跟主机名或IP)

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

cb386b03506c34cbdfb4403503eb1a3f.png

注: 1.cap内容无法使用cat命令查看,可使用tcpdump -r命令查看

tcpdump -r 1.cap 查看指定数据包内容

910c650bce4f7c29d94c5deef655a55d.png

说明: 包内内容为使用tcpdump打包时的数据。

tshark命令

>该命令也是用于抓包的。

使用前需要安装该工具‘wireshark’:

47fc7f8f982e4e33bc1e9acc258b695e.png

用法

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

[ 命令: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" ]

ada03f2110dedf134484c447b54d405b.png

抓取mysql的查询

da03409468cdd91caf74827c06697d15.png

注: 因无相关进程运行所以一无所获!

抓取指定类型的MySQL查询

a008d7bad93d594edb098b6acc76c263.png

统计http的状态

d331a305b113ac09396d8a6d142e444f.png

注: 这个命令,直到你ctrl + c 才会显示出结果!

tshark 增加时间标签

34a2e3a1762a61514203405e8af5d4f6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值