Tcprstat 是免费开源的TCP分析工具,可检测网络通信状态,并且计算请求和响应之间的延迟。 它的输出格式类似 linux 的 vmstat 和 iostat 的输出格式。这个工具能够检测到某个端口的流量情况。可以监听包括 mysqld httpd memcached 等单个守护进程的请求和响应时间。

优点:

  • 轻量级,开销小,不用写入大量日志,不用分析大量的日志
  • 请求和响应的时间 精确到微秒级
  • 输出的信息很容易导入到表格,或通过脚本格式化,或使用gnuplot的图形,等等
  • 与协议无关
  • 关注于response的时间计算,并不是网卡流量的计算

tcprstat是percona用来监测mysql响应时间的。不过对于任何运行在TCP协议上的响应时间,都可以用。 下面是一个监控示例,监控分析mysql的3306端口。

1
2
3
4
5
6
7
$sudo tcprstat -p 3306 -t 1 -n 5
timestamp   count   max min avg med stddev  95_max  95_avg  95_std  99_max  99_avg  99_std
1283261499  1870    559009  39  883 153 13306   1267    201 150 6792    323 685
1283261500  1865    25704   29  578 142 2755    889 175 107 23630   333 1331
1283261501  1887    26908   33  583 148 2761    714 176 94  23391   339 1340
1283261502  2015    304965  35  624 151 7204    564 171 79  8615    237 507
1283261503  1650    289087  35  462 146 7133    834 184 120 3565    244 358

注释:

count :此间隔内处理完成的请求数量

avg     :此间隔内所有完成的请求,响应的平均时间

95_avg:此间隔内,95%的请求量的平均响应时间,单位微妙,该值较能体现MySQL Server的查询平均响应时间

内容以每次一行、一行一秒的形式输出,输出持续了 5 秒时间。每一行都包含了时间戳,且包含了与 query 对应的 response 的时间。列输出中包含了标准的 response 时间值,以微秒为单位。同时还给出了各种 95% 和 99% 应答时间的值。

response 时间值的计算是通过测量最后收到包和随后第一个发出包之间的花费时间来计算的。仅包含 TCP 控制信息的特定类型的包会被忽略。

根据上面的信息,我们可以知道mysql在我们检测期间,对于客户端查询的最大响应时间是559009(单位微妙),即0.559009秒。

你也可以读取tcpdump的文件进行分析。

1
2
3
4
5
$sudo tcpdump -i eth0 -nn port 80  -w ./tcpdump.log
$sudo tcprstat -l 10.234.9.103 -t 2 -n 5 -r ./tcpdump.log
timestamp       count   max     min     avg     med     stddev  95_max  95_avg  95_std  99_max  99_avg  99_std
1403180482      2       28017   26717   27367   28017   650     26717   26717   0       26717   26717   0
1403180484      0       0       0       0       0       0       0       0       0       0       0       0

注意: 如果运行的时候提示 pcap: SIOCGIFFLAGS: bonding_masters: No such device。那说明没能自动提取服务器ip。需要使用-l参数手动指定。

安装tcprstat 如果是在64位操作系统中使用,可以直接下载二进制文件使用。步骤如下:

1、下载文件 http://github.com/downloads/Lowercases/tcprstat/tcprstat-static.v0.3.1.x86_64

2、把下载的文件移动到 /usr/bin

3、把文件名修改为 tcprstat

4、修改文件权限,增加执行权限 chmod +x /usr/bin/tcprstat

参数说明

命令行参数    简短形式   类型      描述                    默认值
--format -f 字符串 输出格式化字符串 ”%T\t%n\t%M\t%m\t%a\t%h\t%S\t%95M\t%95a\t%95S\t%99M\t%99a\t%99S\n”
--help 显示帮助信息
--interval -t 数字 监控多少秒输出一次统计 10
--iterations -n 数字 共输出几次统计信息 1 ( 0时为连续输出 )
--local -l 字符串 本级ip地址列表
--port -p 数字 服务端口
--read -r 字符串 pcap文件路径
--version 显示版本信息
--no-header 字符串 输出不显示头信息
--header 字符串 指定输出的头信息

注意:这个响应时间是microsecond,即us,等于0.000001s。

FAQ:

tcprstat在bonding的网卡下会出现以下错误:

pcap: SIOCGIFFLAGS: bonding_masters: No such device

指定确定ip地址可以避免上面的错误

#./tcprstat -p 1588 -t 1 -n 0  -l 172.16.100.87

tcprstat官方使用手册

tcprstat分析服务的响应速度的更多相关文章

  1. [译]SQL Server分析服务的权限配置

    简介: 本文介绍如何配置SSAS数据库和cube相关维度的安全设置. 相对数据引擎来说,在Management Studio中配置分析服务的安全设置基本没什么区别.但是也会有一些限制,比如SSAS的权 ...

  2. 【cube】SSAS(分析服务)优化手册

    优化前注意事项 1.数据质量.数据仓库中维度表的数据质量要严格保证.比如店仓的大区.省区.管理城市等属性和店仓代码没有一对多的上下级关系,这样在设计店仓维度时,就无法建立有效的层次结构.这会拖慢查询时 ...

  3. 【译】手动处理Team Foundation Server 2010 数据仓库和分析服务数据库

    原贴地址:Manually Processing the Team Foundation Server 2010 Data Warehouse and Analysis Services Databa ...

  4. SOFA 源码分析 —— 服务引用过程

    前言 在前面的 SOFA 源码分析 -- 服务发布过程 文章中,我们分析了 SOFA 的服务发布过程,一个完整的 RPC 除了发布服务,当然还需要引用服务. So,今天就一起来看看 SOFA 是如何引 ...

  5. Dubbo 源码分析 - 服务调用过程

    注: 本系列文章已捐赠给 Dubbo 社区,你也可以在 Dubbo 官方文档中阅读本系列文章. 1. 简介 在前面的文章中,我们分析了 Dubbo SPI.服务导出与引入.以及集群容错方面的代码.经过 ...

  6. Dubbo 源码分析 - 服务引用

    1. 简介 在上一篇文章中,我详细的分析了服务导出的原理.本篇文章我们趁热打铁,继续分析服务引用的原理.在 Dubbo 中,我们可以通过两种方式引用远程服务.第一种是使用服务直联的方式引用服务,第二种 ...

  7. Dubbo 源码分析 - 服务导出

    1.服务导出过程 本篇文章,我们来研究一下 Dubbo 导出服务的过程.Dubbo 服务导出过程始于 Spring 容器发布刷新事件,Dubbo 在接收到事件后,会立即执行服务导出逻辑.整个逻辑大致可 ...

  8. syslog-ng日志收集分析服务搭建及配置

    syslog-ng日志收集分析服务搭建及配置:1.网上下载eventlog_0.2.12.tar.gz.libol-0.3.18.tar.gz.syslog-ng_3.3.5.tar.gz三个软件: ...

  9. 微软BI 之SSAS 系列 - 在 SQL Server 2012 下查看 SSAS 分析服务的模型以及几个模型的简单介绍

    在SSDT中部署一个 SSAS 项目到本地服务器上出现错误. You cannot deploy the model because the localhost deployment server i ...

随机推荐

  1. tomcat源码阅读之生命周期(LifeCycle)

    一.事件机制流程: 1.     当外部事件源发生事件(比如点击了按钮,数据发生改变更新等)时,事件源将事件封装成事件对象Event: 2.     将事件对象交由对应的事件派发器Dispatcher ...

  2. SQL SERVER 2008 彻底卸载干净方法 (转)

    最近安装SQL SERVER 2008失败后,再重新安装时老是报错,东搞西搞的很难卸干净.但又不方便重装系统,经按下面方法终于搞定并成功安装上2008 1.停掉SQL SERVER 2008所有相关服 ...

  3. 使用Angular提交表单

    使用Angular提交表单 我们准备在之前使用的<script>标签中设置我们的Angular应用.所以删除里面的内容,我们就可以开始了. 设置一个Angular应用 步骤为: 1. 加载 ...

  4. .Net和SqlServer的事务处理实例

    1,SqlServer存储过程的事务处理一种比较通用的出错处理的模式大概如下:Create procdure prInsertProducts( @intProductId int, @chvProd ...

  5. 学习笔记之Cloud computing

    Cloud computing - Wikipedia https://en.wikipedia.org/wiki/Cloud_computing

  6. Python- 解决PIP下载安装速度慢 让PIP源使用国内镜像,提升下载速度和安装成功率。

    原文: https://www.cnblogs.com/microman/p/6107879.html 对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太慢,浪费时间. ...

  7. MySQL 日期类型及默认设置 (除timestamp类型外,系统不支持其它时间类型字段设置默认值)

    MySQL 日期类型及默认设置 之前在用 MySQL 新建 table,创建日期类型列时遇到了一些问题,现在整理下来以供参考. MySQL 的日期类型如何设置当前时间为其默认值? 答:请使用 time ...

  8. Oracle函数中将参数放在模糊查询中

    --diagnosis_name like '%'||diagnosis_names||'%' create or replace function asdf(MIN_DATE IN varchar2 ...

  9. Spectrum Scale

    高端存储:2016年为止,最新产品为DS8884.DS8886和DS8888. 闪存系统:2016年为止,最新产品,以FlashSystem 900为硬件基础,包装了FlashSystem V9000 ...

  10. Java面向对象之抽象类

    内容: 1.抽象类的产生 2.抽象类和抽象方法的定义与使用 3.抽象类和抽象方法的注意事项 4.实例分析 1.抽象类的产生 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具 ...