监控Netstat中的TCP数据

通过netstat命令,我们能获取TCP数据,监控它们有助于了解系统状态。

如果netstat版本比较老的话,那么运行时可能会遇到类似下面的错误信息:

error parsing /proc/net/netstat: Success

假设操作系统是CentOS,首先让我们看看如何确认netstat隶属于哪个软件包:

shell> rpm -qf $(which netstat)
net-tools-<VERSION>

如上所示,可以得知netstat属于net-tools软件包,接着升级它就可以修复错误了:

shell> yum update net-tools

在「netstat -s」的结果中,TCP数据分为Tcp和TcpExt两部分,本文监控的是前者:

Tcp:
    10549129725 active connections openings
    10556220620 passive connection openings
    28458277 failed connection attempts
    3248285 connection resets received
    234 connections established
    289641890208 segments received
    229159129140 segments send out
    805264756 segments retransmited
    1388430 bad segments received.
    438683428 resets sent

既然是监控,直觉就是监控这些数据绝对值的变化情况,我最开始就是这么做的:定期把绝对值发送给Graphite,可惜最终出来的监控图基本是一条直线!为什么会这样?因为绝对值实在是太大了,大到浮动个几百几千的话,肉眼根本看不出来!此时绝对值意义不大,我们需要的是相对值的变化情况,如下代码可以在命令行下直接运行:

while true; do
    netstat -s | grep -A 10 Tcp: | awk ‘NR>1 {$1=$1; print}‘
    printf "\n"
    sleep 1
done | awk -v RS="" -v FS="\n" ‘{
    for (i = 1; i <= NF; i++) {
        VALUE = substr($i, 0, index($i, " ") - 1)

        if (NR > 1) {
            printf("%10d", VALUE - DATA[i])
        }

        DATA[i] = VALUE
    }

    if (NR > 1) {
        printf("\n")
    }
}‘
时间: 2024-10-24 20:47:02

监控Netstat中的TCP数据的相关文章

关于网络编程中MTU TCP UDP优化设置总结

首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层.  其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Data)在应用层 它们的关系是 数据帧{IP包{TCP或UDP包{Data}}} --------------------------------------------------------------------------------- 在应用程序中我们用到的Data的长度最大是多少,直接取决于底层的

查看linux中的TCP连接数

一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数ps -ef|grep httpd|wc -l 3).统计已连接上的,状态为"establishednetstat -na|grep ESTABLISHED|wc -l 4).查出哪个IP地址连接最多,将其封了.netstat -na|grep ESTABLISHED|awk {print $

查看linux中的TCP连接数【转】

转自:http://blog.csdn.net/he_jian1/article/details/40787269 查看linux中的TCP连接数 本文章已收录于:  计算机网络知识库  分类: 安全测试总结(2)  性能经验总结(107)  版权声明:本文为博主原创文章,未经博主允许不得转载. 一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数ps

Linux内核中影响tcp三次握手的一些协议配置

在Linux的发行版本中,都存在一个/proc/目录,有的也称它为Proc文件系统.在 /proc 虚拟文件系统中存在一些可调节的内核参数.这个文件系统中的每个文件都表示一个或多个参数,它们可以通过 cat 工具进行读取,或使用 echo 命令进行修改.下面给出了几个可调节的参数是关于Linux TCP/IP 栈的参数,相关的帮助可以通过man tcp或info tcp获取.在这个目录中,包括了一些特殊的文件,不仅能用来反映内核的现行状态和查看硬件信息,而且,有些文件还允许用户来修改其中的内容,

高效的TCP数据拆包器

高效的TCP数据拆包器 接收器,每秒拆1KB的包达到30万以上 /// 数据同步协义数据接收器 /// </summary> /// <remarks> /// 主要功能有 /// 1.将一个TCPSocket的所有数据全部接收 /// 2.解析协义 /// 3.解析完成后的协义调用 Handler通知外部处理 /// 4.定义一个协义解析线程不停的解析协义 /// </remarks> public class TCPReceiver : IDisposable {

用java网络编程中的TCP方式上传文本文件及出现的小问题

自己今天刚学java网络编程中的TCP传输,要用TCP传输文件时,自己也是遇到了一些问题,抽空把它整理了一下,供自己以后参考使用. 首先在这个程序中,我用一个客户端,一个服务端,从客户端上传一个文本文件给服务端,服务端接收数据并显示“上传成功”给客户端. 客户端: 1 import java.io.BufferedReader; 2 import java.io.FileReader; 3 import java.io.IOException; 4 import java.io.InputStr

[转载] tcp数据重传时间细节探秘及数据中心优化

原文: http://weibo.com/p/1001603821691477346388 在数据中心网络内,机器之间数据传输的往返时间(rtt)一般在10ms以内,为此调内部服务的超时时间一般会设置成50ms.200ms.500ms等,如果在传输过程中出现丢包,这样的服务超时时间,tcp层有机会发现并重传一次数据么?如果设置成200ms以内,答案是没有机会,原因是linux系统下第一次重传时间等于传输的往返时间上至少加上200ms的预测偏差值,即如果rtt值是7ms,第一次重传超时时间至少是2

组态软件在电动汽车充电站监控系统中的应用

一.概述 电动汽车充电站是电动汽车使用过程的一个支撑部分,也是电动汽车商业化.产业化过程中的重要环节.充电站工作的性能直接影响动力电池的使用寿命和安全性,建立一套充电站监控系统,通过监视充电设备对动力电池进行充电的过程,采集充电设备状态.动力电池的电压.电流.容量以及电池温度等信息,对采集的信息进行快速入库,并建立一个可以高效查询和数据处理分析的信息管理系统,对电动汽车运行安全,改进动力电池质量,提高充电站运行效率具有非常重要的意义. 图形.声音和列表方式的多种报警方式,直观.及时的根据设置进行

C#中的TCP通讯与UDP通讯

最近做了一个项目,主要是给Unity3D和实时数据库做通讯接口.虽然方案一直在变:从开始的UDP通讯变为TCP通讯,然后再变化为UDP通讯;然后通讯的对象又发生改变,由与数据库的驱动进行通讯(主动推送数据给驱动,数据库中数据发生变化把数据以UDP报文形式发送客户端)改为与实时数据库进行直接通讯(自己发送报文修改数据库中的数据,自己请求需要获取的数据并接收自己请求的数据):现在这个项目基本完结,由于这个过程既接触到了UDP又接触到了TCP,现在对其进行一番总结. 阅读目录 TCP通讯协议与UDP通