怎么监控特定程序的网络发包
linux服务器监控的几个方法和命令?
linux服务器监控的几个方法和命令?
摘要
今天主要总结一下mpstat,iostat,sar,vmstat的命令。这些命令都是运维人员必备的,可以的话我不想偷懒。
1、mpstat
Mpstat是多处理器统计的缩写,是一个实时监控工具。它报告一些关于cpu的统计信息,这些信息存储在/proc/stat文件中。在多cpu系统中,不仅可以查看所有CPU的平均状态信息,还可以查看具体的CPU信息。mpstat最大的特点是3360可以查看一个多核CPU中各个计算核心的统计数据。而类似的工具vmstat只能查看系统的整体cpu。
示例:检查多核cpu当前运行状态,每两秒更新一次,共5次更新。
# mpstat 2 5
描述:
%用户在内部周期的CPU时间( %),不包括nice值为负的进程(usr/total)*100。
%nice CPU时间( %) (nice/TOTAL) * 100,用于内部周期内nice值为负的进程。
%sys内部期间,核心时间(%)(系统/总计)*100。
%IOwait在内部时间段内,硬盘io等待时间(%) (iowait/total)*100。
%irq在内部周期,硬中断时间(%) (irq/total)*100。
%soft在内部时间段内,软中断时间(%) (softirq/total)*100。
%idle内部期间,CPU除了等待磁盘IO操作以外的任何原因的空闲(%) (idle/total)*100。
2、iostat
Iostat用于输出与CPU和磁盘I/O相关的统计信息。
语法:
iostat[-c][-d][-h][-N][-k |-m][-t][-V][-x][-z][设备[.] |全部] [ -p [设备[,] |全部] ] [间隔[计数] ]
示例1:
-参数-d表示显示设备磁盘的使用状态;-k表示部分以块为单位的列强制使用千字节为单位,2表示每2秒刷新一次数据,6表示总共刷新6次。
# iostat -d -k 2 6
描述:
Tps:表示每秒发送给设备的传输次数。
tcp重传率指标多少正常?
TCP重传率在0.02%以内比较正常。
TCP重传率越低越好。TCP重传率越低,我们的网络就越好。
TCP的错误恢复特性是我们定位、诊断并最终修复高网络延迟的最佳工具。
常见的TCP错误恢复功能有:TCP重传、TCP重复确认和快速重传。
数据包的重传是TCP最基本的错误恢复功能之一,用于处理数据包丢失。
丢包的可能原因有很多,比如:有故障的应用、流量负载大的路由器或者暂时的服务中断。
数据包级的移动速度很快,丢包通常是暂时的,所以TCP检测丢包并恢复是非常重要的。
如何决定是否重新传输:
决定是否重传数据包的主要机制称为重传定时器,它负责维护r to重传超时的值。
当使用TCP传输数据包时,重传定时器启动,当收到该数据包的ACK响应时,定时器停止。从发送数据包到收到ACK确认的时间称为往返时间(RTT),最终的RTO值可以通过对几个这样的时间求平均值来计算。
一旦确定了RTO值,就为每个发送的分组使用重传定时器来确定分组是否丢失。
当消息被发送,但是接收方没有发送TCP ACK消息时,发送方认为源消息丢失并重新传输它。重传后RTO值翻倍;如果在2倍的RTO值到达之前没有收到ACK消息,将再次重传。如果仍然没有收到ACK,RTO值再次加倍。如果这种情况继续下去,每次重传的RTO将加倍,直到收到ACK消息或发送方达到配置的最大重传次数。
最大重新传输次数取决于发送操作系统的配置值。
默认情况下,Windows主机会重新传输5次。大多数Linux系统默认为15倍,两种操作系统都可以配置。
TCP重传率是网络质量的体现。我们主要看网络中的TCP重传率,这个基本上比较大的公司都有这个监控。
TCP重传率=单位时间内TCP重传包数/TCP包总数。
我们可以把TCP重传率作为衡量网络质量和服务器稳定性的指标。
根据我们的经验,TCP重传率越低越好。TCP重传率越低,我们的网络就越好。如果TCP重传率保持在0.02%(以我们的实际情况为准)以上或者突然增加,就可以怀疑是不是网络问题了。