Linux高性能服务器(1):系统检测工具

Linux提供了很多有用的工具,以便开发人员测试和测评服务器程序,娴熟的网络程序员在开发服务器程序的整个过程中,都将不断地使用这些工具中的一个或多个来检测服务器行为。

本博客主要介绍几种工具:tcpdump,strace,netstat

tcpdump

tcpdump是一款经典的网络抓包工具

选项

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

除了显示选项外,tcpdump还支持用表达式来进一步过滤数据包,分为三种:

  • 类型(type):host(主机名或IP地址),net(用CIDR方法表示的网络地址),port(端口),portrange(端口范围)
  • 方向(dir):src指定数据包的发送端,dst指定数据包的目的端
  • 协议(proto):目标协议
# 抓取进入端口13579的数据包
tcpdump dst port 13579
# 抓取所以ICMP数据包
tcpdump icmp

strace

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

  • c:统计每个系统调用执行时间、执行次数和出错次数
  • f:跟踪由fork调用生成的子进程
  • t:在输出的每一行信息前加上时间信息
  • e:指定一个表达式,用来控制如何跟踪系统调用。格式为[qualifier=][!]value1[value2]…,qualifier=默认是trace
trace=set,只跟踪指定的系统调用
trace=file,只跟踪与文件操作相关的系统调用
trace=process,只跟踪与进程控制相关的系统调用
trace=network,只跟踪与网络相关的系统调用
trace=signal,只跟踪与信号相关的系统调用
trace=ipc,只跟踪与进程间通信相关的系统调用
signal=set,只跟踪指定的信号
read=set,输出从指定文件中读入的数据,例如read=3,表示读取文件描述符为3 的文件数据
-o,将trace的输出写入指定的文件

netstat

netstat是一个功能强大的网络信息统计工具,他可以打印本地网卡接口上的全部连接、路由表信息、网卡接口信息等。

man netstat

vmstat

实时输出系统的各种资源的使用情况,比如进程信息、内存使用、CPU使用率以及I/O使用情况

  • f:显示系统自启动以来的执行的fork次数
  • s:显示内存相关的统计信息以及多种系统活动的数量(比如CPU上下文切换次数)
  • d:显示磁盘相关的统计信息
  • S:使用指定的单位来显示,参数k、K、m、M
  • delay:采样间隔
  • count:采样次数
vmstat 5 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 175956 257544 1087040    0    0   187     5    1    4  1  0 99  0  0
 0  0      0 175728 257544 1087080    0    0     0    11  481 1273  1  1 98  0  0
 0  0      0 175728 257544 1087080    0    0     0     5  468 1249  1  0 99  0  0

ifstat

简单的网络流量检测工具

  • a:检测系统上的所有网卡接口
  • i:指定要检测的网卡接口
  • t:在每行输出信息前加上时间戳
  • b:以Kbit/s为单位显示数据,而不是默认是KB/s
  • delay:采样间隔
  • count:采样次数
ifstat -a 2 5          
        lo                 eth0       
 KB/s in  KB/s out   KB/s in  KB/s out
    0.00      0.00      0.32      2.67
    0.15      0.15      2.19      2.42
    0.00      0.00      0.59      0.83
    0.00      0.00      0.13      0.12
    0.00      0.00      0.03      0.06

mpstat

实时检测多处理器系统上每个CPU的使用情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妖怪喜欢风

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

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

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

打赏作者

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

抵扣说明:

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

余额充值