|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
判断采集的数据根据|c计算的每秒均值是否符合真实值 |
|
|
|
|
|
|
|
|
|||||
/proc/stat |
user( 从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负的进程) |
system(从系统启动开始累计到当前时刻,处于核心态的运行时间) |
nice(从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间) |
idle(从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间) |
iowait(从系统启动开始累计到当前时刻,IO等待时间) |
irq(从系统启动开始累计到当前时刻,硬中断时间) |
softirq(从系统启动开始累计到当前时刻,软中断时间) |
stealstolen(在虚拟化环境中运行时处理系统的时间) |
guest(在Linux内核控制下为客户机操作系统运行虚拟CPU的时间) |
|
|
|
|
|
|
cup.busy |
CPU忙碌百分比,在程序中新建一个数组计算当天系统的累积量和前一个时刻记录的差值,计算出idle的变化值占总值的百分率,然后用100-结果。数组的更新频率为1S |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.idle |
CPU空闲百分比,计算两个时刻点idle的变化值和Total变化值的比值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.iowait |
IO等待百分比,计算两个时刻点iowait的变化值和Total变化值的比值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.user |
在用户级别(应用程序)执行时CPU占用率的百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.nice |
在优先级高的用户级别执行时CPU占用率的百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.system |
在系统级别(内核)执行时CPU利用率的百分比。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.irq |
CPU用于服务硬件中断所花费的时间百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.softirq |
CPU用于服务软件中断的时间百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.steal |
在虚拟机管理程序正在维护另一个虚拟处理器时虚拟CPU或CPU的非自愿等待所花费的时间百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.guest |
CPU用于运行虚拟处理器的时间百分比。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
cpu.switches |
cpu上下文切换次数,计数器类型 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/diskstats |
设备号 |
次设备号 |
设备名称 |
成功完成读的总次数 |
合并读次数 |
读扇区的次数 |
读花的时间 |
写 |
写 |
写 |
写 |
IO的当前进度 |
输入输出花的时间 |
输入/输出操作花费的加权毫秒数 |
|
disk.io.read_requests |
读完成的次数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.read_merged |
合并读次数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.read_sectors |
读扇区次数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.msec_read |
disk读花费的时间,按照采集频率实时获取文件记录 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.write_requests |
写完成次数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.write_merged |
写合并次数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.write_sectors |
写扇区次数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.msec_write |
disk写花费的时间,按照采集频率实时获取文件记录 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.ios_in_progress |
IO的当前进度,每次按照采集频率实时获取文件记录 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.msec_total |
ios_in_progress> = 1的时间 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.msec_weighted_total |
最近的IO完成测量完成数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.read_bytes |
IO读取的数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.write_bytes |
磁盘写数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.avgrq_sz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.avgqu-sz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.await |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.svctm |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
disk.io.util |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/loadavg |
1分钟内的平均进程数 |
5分钟内的平均进程数 |
15分钟内的平均进程数 |
当前进程数/总进程数 |
最近运行的进程ID |
|
|
|
|
|
|
|
|
|
|
load.1min |
1分钟内的平均进程数,实时读取文件匹配对应内容 |
|
|
|
|
|
|
|
|
|
|
|
|
|
load.5min |
5分钟内的平均进程数,实时读取文件匹配对应内容 |
|
|
|
|
|
|
|
|
|
|
|
|
|
load.15min |
15分钟内的平均进程数,实时读取文件匹配对应内容 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/meminfo |
采集项 |
值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.memtotal |
总的内存 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.memused |
总的内存使用量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.memfree |
总的内存可用量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.swaptotal |
总的交换空间内存 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.swapused |
交换空间使用量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.swapfree |
交换空间剩余量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.memfree.percent |
内存空闲百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.memused.percent |
内存使用百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.swapfree.percent |
交换空间空闲百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mem.swapused.percent |
交换空间使用百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/net/netstat |
动态监控网卡流量情况 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.PruneCalled |
慢速路径中,如果不能将数据直接复制到user space,需要加入到sk_receive_queue前,会检查receiver side memory是否允许,如果rcv_buf不足就可能prune ofo queue。此时计数器加 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.LockDroppedIcmps |
接收到ICMP错误报文,但tcp socket被user锁住 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.ArpFilter |
与TCP无关,接收到ARP packet时做一次输出路由查找(sip, tip),如果找到的路由项的device与输入device的不同,计数器加1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TW |
TIME_WAIT超时的socket数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.DelayedACKLocked |
三路握手最后一步完全之后,Accept queue队列超过上限时加1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.ListenDrops |
任何原因,包括Accept queue超限,创建新连接,继承端口失败等,加1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPPrequeueDropped |
如果因为内存不足(ucopy.memory < sk->rcv_buf)而加入到prequeue失败,重新由backlog处理,计数器加1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPTSReorder |
Recovery状态时,接收到到部分确认(snd_una < high_seq)时但已经undo完成(undo_retrans == 0)的次数。 数量上与TCPPartialUndo相等。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPDSACKUndo |
Disorder状态下,undo完成(undo_retrans == 0)的次数。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPLoss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPLostRetransmit |
根据SACK数据推测出的重段包丢失计数器:在tcp_sacktag_write_queue()->tcp_mark_lost_retrans(),如果发现tcp_highest_sack_seq(tp)超过某skb在重传时的snd_nxt(TCB->ack_seq),就认为这个重传包已经丢失了,加1(加的不是段数)。tcp_highest_sack_seq(tp)是被SACK过的具有最高SEQ号的skb的seq。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPLossFailures |
icsk_retransmit==0(第一次进入重传状态)并且处于Loss状态下,计数器加1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPFastRetrans |
快速重传次数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPTimeouts |
在RTO timer中,从CWR/Open状态下第一次超时的次数,其余状态不计入这个计数器。SYN-ACK的超时次数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPSchedulerFailed |
在delay ACK处理功能内,如果prequeue中仍有数据,计数器就加1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPAbortOnMemory |
在执行tcp_close()/probe timer/keepalive timer时,orphan sockets数量和tcp_memory_allocated是否超过最大值的次数。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPAbortOnTimeout |
timer到达最大重试次数或者最长重试时间的次数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPAbortFailed |
alloc_skb()或者tcp_transmit_skb()失败 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPMemoryPressures |
在从“非压力状态”切换到“有压力状态”时计数器加1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPSpuriousRTOs |
如果frto_counter !=0 && frto_counter != 1加1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPBacklogDrop |
如果socket被user锁住,后退一步内核会把包加到sk_backlog_queue,但如果因为sk_rcv_buf不足的原因入队失败,计数器加1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TcpExt.TCPMinTTLDrop |
在接收到TCP报文或者TCP相关的ICMP报文时,检查IP TTL,如果小于socket option设置的一个阀值,就丢包 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/net/dev |
通过/proc/net/dev分析网络包量,流量,错包,丢包 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.in.bytes |
网络接受的字节数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.in.packets |
正确接受的包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.in.errors |
错误接受的包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.in.dropped |
丢弃的包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.in.fifo.errs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.in.frame.errs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.in.compressed |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.in.multicast |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.out.bytes |
网络发送的包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.out.packets |
网络正确发送的包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.out.errors |
网络发送错误的包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.out.dropped |
网络发送丢弃的包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.out.fifo.errs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.out.collisions |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.out.carrier.errs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.out.compressed |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.total.bytes |
总的收发字节数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.total.packets |
总的收发正确的包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.total.errors |
总的错误包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.total.dropped |
总的丢弃的包数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.speed.bits |
网络速度 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.in.percent |
收到的包的百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
net.if.out.percent |
发出的包的百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/sys/fs/file-max |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kernel.maxfiles |
file-max指定了系统范围内所有进程可以打开的文件句柄的数量限制 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/sys/kernel/pid_max |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kernel.maxproc |
进程编号允许的最大值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/sys/fs/file-nr |
系统文件句柄的信息 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
已分配的句柄数目 |
已分配但是未使用的句柄数目 |
文件句柄的最大数目 |
|
|
|
|
|
|
|
|
|
|
|
|
kernel.files.allocated |
已分配的句柄的树木 |
|
|
|
|
|
|
|
|
|
|
|
|
|
kernel.files.left |
已分配但是未使用的句柄数目 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/net/snmp |
各层网络协议的收发包的情况 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
snmp.Udp.InDatagrams |
输入的数据报数量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
snmp.Udp.NoPorts |
未知端口接收数据包 |
|
|
|
|
|
|
|
|
|
|
|
|
|
snmp.Udp.InErrors |
本机端口未监听之外的其他原因引起的UDP入包无法送达(应用层)目前主要包含如下几类原因: 1.收包缓冲区满 2.入包校验失败 3.其他 |
|
|
|
|
|
|
|
|
|
|
|
|
|
snmp.Udp.OutDatagrams |
udp发包量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
snmp.Udp.RcvbufErrors |
接收缓冲区溢出的包量 |
|
|
|
|
|
|
|
|
|
|
|
|
|
snmp.Udp.SndbufErrors |
发送缓冲区溢出的包 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/proc/mounts |
已加载的文件列表 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
挂载点 |
挂载点路径 |
挂载点类型 |
挂载点读写模式 |
占位符 |
占位符 |
|
|
|
|
|
|
|
|
|
df.bytes.total |
磁盘总大小 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.bytes.used |
磁盘已用大小 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.bytes.free |
磁盘可用量,int64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.bytes.used_percent |
磁盘已用大小占总量的百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.bytes.free_percent |
磁盘可用量占总量的百分比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.inodes.total |
inode总数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.inodes.used |
已用的inode数据 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.inodes.free |
可用inode数目 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.inodes.used_percent |
已用inode占比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.inodes.free_percent |
可用inode占比 |
|
|
|
|
|
|
|
|
|
|
|
|
|
df.statistics.total |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
df.statistics.used |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
df.statistics.used.percent |
|
|
|
|
|
|
|
|
|
|
|
|
|