【阅读】《Linux高性能服务器编程》——第十七章:系统监测工具

tcpdump

  tcpdump是经典的网路抓包工具其常见选项为:

  • -n:使用IP地址表示主机,而不是主机名;使用数字表示端口号,而不是服务名称;
  • -i:指定要坚挺的网卡接口。“-i any”标识抓取所有网卡接口上的数据包;
  • -v:输出一个稍微详细的信息;
  • -t:不打印时间戳;
  • -e:显示以太网帧头部信息;
  • -c:紧抓去指定数量的数据报;
  • -x:以十六级进制显示数据包内容,但不显示包中以太网帧的头部信息;
  • -X:与-x类似,还打印每个十六进制字节对应的ASCII字符;
  • -XX:与-XX类似,还打印以太网帧的头部信息;
  • -s:设置值抓包时候的抓取长度(默认为65535字节);
  • -S:以绝对值来显示TCP报文段序号,而不是相对值;
  • -w:将tcpdump的输出以特殊格式定向到某个文件;
  • -r:从文件读取数据报并显示。

  tcpdump还支持用表达式来进一步过滤数据报,其操作数分为三种:类型、方向、协议。

  • 类型:解释其后i按紧跟着的参数的含义,如host、net、port和portrage等。如抓取整个1.2.3.0/255.255.255.0网络上的数据包:$ tcpdump net 1.2.3.0/24
  • 方向:src指定数据包的发送端,dst指定数据包的目的端,如抓取进入端口13579的数据包$ tcpdump dst port 13579
  • 协议:指定目标协议。如抓取所有ICMP数据包:$ tcpdump icmp;

17.2 lsof

  lsof是列出当前系统打开的文件描述符的工具,其选项有:

  • -i:显示socket文件描述符,常用方法:$ isof -i [46] [protocol][@hostname][ipaddr][:service|port]。如要显示所有链接到主机192.168.1.108的ssh服务的socket文件描述符可使用:$ lsof -i@192.168.1.108:22。若-i选项后不指定任何参数,则显示所有socket文件描述符;
  • -u:显示指定用户启动的所有进程打开的文件描述符;
  • -c:显式指定的命令打开的所有文件描述符,若要查看websrv程序打开了哪些文件描述符,可以使用命令$ lsof -c websrv;
  • -p:显示指定进程打开的所有文件描述符;
  • -t:仅显示打开了目标文件描述符的进程的PID。

17.3 nc

  快速构建网络连接,让其以服务器方式运行,监听某个端口并接受客户连接,可用来调试客户端程序。也可以以客户端方式运行,向服务器发哦是那个链接并接收数据,可用来调试服务器程序。

  • -i:设置数据包传送的时间间隔;
  • -l:以服务器方式运行,监听指定的端口。nc默认以客户端方式运行;
  • -k:重复接收并处理某个端口上的所有链接,必须与-l选项一起使用;
  • -n:使用IP地址标识主机,使用数字表示端口号;
  • -p:当nc命令以客户端方式运行时,强制其使用指定的端口号;
  • -s:设置本地主机发送出的数据包的IP地址;
  • -C:将CR和LF两个字符作为行运行字符;
  • -U:使用UNIX本地域协议通信;
  • -u:使用UDP协议,nc默认是TCP协议;
  • -w:如果nc客户端在指定时间内未检测到任何输入,则退出;
  • -X:当nc客户端和代理服务器通信时,该选项指定其通信协议;
  • -x:制定目标代理服务器的IP地址和端口号;
  • -z:扫描目标机器上的某个或某些服务是否开启。

实例:连接websrc服务器并发送数据:

$ nc -C 127.0.0.1 13579
Get http://localhost/a.html HTTP/1.1
Host: localhost

17.4 strace

  测试服务器性能的重要文件,跟踪程序运行过程中执行的系统调用和接收到的信号,并将系统调用名、参数、返回值和信号名输出到标准输出或指定的文件。

  • -c:统计每个系统调用的执行时间、执行次数和出错次数;
  • -f:跟踪由fork调用生成的子进程;
  • -t:在输出的每一行信息前加上时间信息;
  • -e:指定一个表达式

17.5 netstat

  网络信息统计工具,可以打印本地网卡接口上的全部连接、路由表信息、网卡接口信息等。

  • -n:使用IP地址标识主机名,使用数字表示端口号;
  • -a:显示结果中也包含监听socket;
  • -t:仅显示TCP连接;
  • -r:显示路由信息;
  • -i:显示网卡接口和数据流量;
  • -c:每隔一秒输出一次;
  • -o:显示socket定时器的信息;
  • -p:显示socket所属的进程PID和名字。

17.6 vmstat

  能够实时输出系统的各种资源使用情况。


17.7 ifstat

  简单的网络流量监测工具。

  • -a:检测系统上所有网卡接口;
  • -i:指定要检测的网卡接口;
  • -t:在每行输出的信息前加上时间戳;
  • -b:以Kbit/s为单位,而不是默认的KB/s;
  • delay:采样间隔
  • count:采样次数

17.8 mpstat

  能够实时监测多处理器系统上每个CPU的使用情况,其典型用法是:
mpstat [-P [{ALL}] [interval] [count]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甄姬、巴豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值