作者:gfree.wind@gmail.com 作为网络领域的开发人员,我们经常要与Linux的数据报文打交道,一定要搞清楚数据报文是从何而来,又是如何离去。...注:驱动对interface执行poll操作时,会尝试循环检查网卡是否有接收完毕的报文,直到设置的budget上限,或者已经就绪报文。 二、接收软中断将报文分发给协议栈的示意图 ? 图2....如果网卡没有vlan offload,则需要软件剥掉vlan头,以便后面的报文处理。 5. 在分发报文时,可能会有多个handler关心此报文。所以在分发时,都是增加引用计数,然后给对应的处理函数。...通过以太网报文的协议,将数据报文分发给该协议的handler,如IPv4,IPv6,PPPoE等。 三、协议栈将数据报文发给套接字(以IPv4为例)的流程图 ? 图3....通过以上四个分解的流程图,相信大家对于Linux数据报文的来龙去脉,有了一定的了解。如在文章开头所云,这些流程图都做了必要的简化。在很多步骤都可以进行展开,也涉及了更多细节。
作者:gfree.wind@gmail.com 作为网络领域的开发人员,我们经常要与Linux的数据报文打交道,一定要搞清楚数据报文是从何而来,又是如何离去。...如果网卡没有vlan offload,则需要软件剥掉vlan头,以便后面的报文处理。 5. 在分发报文时,可能会有多个handler关心此报文。...通过以太网报文的协议,将数据报文分发给该协议的handler,如IPv4,IPv6,PPPoE等。...将skb报文加入套接字的接收队列。 四、报文从应用层到网卡的流程图 app_to_nic.jpg 1....通过以上四个分解的流程图,相信大家对于Linux数据报文的来龙去脉,有了一定的了解。如在文章开头所云,这些流程图都做了必要的简化。在很多步骤都可以进行展开,也涉及了更多细节。
如果对1588报文单步时间戳不了解,可以查看我之前的文章“IEEE 1588 Sync报文单步时间戳”。 平台和工具 我用的平台就不透露了,测试使用两块板子,网口直连。...用到的软件包括, Linux:这是我板子的OS,包含我要验证的驱动。 tcpdump:抓包工具,位于板子的文件系统。 linuxptp:开源PTP软件,位于板子的文件系统。...调试方法 两个板子网口直连,启动Linux。 配置IP地址,确保两个网口能ping通。 一个板子做接收,运行tcpdump抓包,可直接查看,也可以保存成pcap文件在Wireshark中打开查看。...另一个板子做发送,运行ptp4l做master,发送单步Sync报文。...# tcpdump -i eth0 -xx 可以看到对L2 Ethernet报文和UDP/IPv4报文,PTP消息的correctionField和originTimestamp字段的数值,直接就解析出来了
HTTP报文 HTTP报文是由一行一行的简单字符串组成的。HTTP报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。...下图是一个例子: 从Web客户端发往Web服务器的HTTP报文称为请求报文(request message)。...从服务器发往客户端的报文称为响应报文(response message),此外没有其他类型的HTTP报文。HTTP请求和响应报文的格式很类似。...HTTP 报文包括以下三个部分: 起始行 报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。 首部字段 起始行后面有零个或多个首部字段。...主体 空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括 了要发送给 Web 服务器的数据;响应主体中装载了要返回给客户端的数据。
目前互联网公司的服务器一般采用Linux系统,同时,为了实时监控服务器的健康状况,我们通常编写Shell脚本或Python脚本来监控测试服务器的各项指标,包括CPU、内存、IO等指标,本期将介绍Linux...中常见的监控指令。...CPU 说到监控CPU,目前主要是监控CPU的使用率,以及每一个进程占用CPU资源,Linux系统中主要使用 top、vmstat、pstree 三个命令。...Mem 内存主要可以从整个系统内存情况、各个进程对应内存使用情况和每个进程内存详细情况三个纬度进行监控,其中整个系统内存情况可以使用 vmstat 和 free 两个指令,每个进程对应内存情况可以使用...IO 磁盘监控包含磁盘情况和磁盘性能分析,磁盘情况可以通过 df 命令和fdisk 命令,来看看我们磁盘的大小以及其他的信息,而磁盘性能分析则可以通过 vmstat 命令。
示例:点击 -> 性能监控 先上效果: monitor1.png 内存监控: /proc/meminfo used=total-(buffers+cached+free) [root@wangzi...{1},{2},{3},'{4}')""".format(used,free,cached,buffers,now_zero) cursorUpdate(insert_sql,[]) 网卡IO监控...'{4}')""".format(net_in,net_out,add_net_in,add_net_out,now_zero) cursorUpdate(insert_sql,[]) CPU监控...python监控: #!...: 固定时间段监控/proc/vmstat 以下字段 和前一个时间段相减,再除以时间间隔 得到io。
Linux的CPU正是采用硬中断与软中断结合的方式来处理问题的。...由于硬中断比软中断过程短得多,所以作为性能监控往往需要监控软中断。...#每隔 5 秒输出 1 组数据 #pidstat -w 5 Linux 4.15.0 (ubuntu) 09/23/18 _x86_64_ (2 CPU) 08:18:26 UID...#mpstat Linux 4.15.0-46-generic(ubuntu) 10/30/2019 _x86_64_(4 CPU) 02:59:04 AM CPU %usr %nice %sys
以上情况向对端发送reset报文,但是,如果当前报文不仅只有ACK标志位,还设置了RST位,将不发送reset报文。...tcp_time_stamp(tp))) { NET_INC_STATS(sock_net(sk), LINUX_MIB_PAWSACTIVEREJECTED...fastopen) { inet_csk_reqsk_queue_drop(sk, req); __NET_INC_STATS(sock_net(sk), LINUX_MIB_EMBRYONICRSTS...th->rst) { NET_INC_STATS(sock_net(sk), LINUX_MIB_PAWSESTABREJECTED); ......after(TCP_SKB_CB(skb)->end_seq - th->fin, tp->rcv_nxt)) { NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPABORTONDATA
介绍 atop是一个功能非常强大的linux服务器监控工具,它的数据采集主要包括:CPU、内存、磁盘、网络、进程等,并且内容非常的详细,特别是当那一部分存在压力它会以特殊的颜色进行展示,如果颜色是红色那么说明已经非常严重了...注意:所有的信息都是反映过去10S的状态信息 使用 atop工具安装好后在运行命令atop就能弹出监控界面 ? 接下来我们就来详细看看每行参数意义。...磁盘忙时所占比例 read、KiB/r 、MBr/s:每秒读的请求数和请求的kb、mb数 write、KiB/w 、MBr/w:每秒写的请求数和请求的kb、mb数 avq:磁盘平均队列长度(根据实际的监控该列好像是磁盘平均请求数
内存监控: /proc/meminfo used=total-(buffers+cached+free) [root@wangzi go]# cat /proc/meminfo MemTotal:...,{2},{3},'{4}')""".format(used,free,cached,buffers,now_zero) cursorUpdate(insert_sql,[]) TCP连接监控...python监控: #!...{2},'{3}')""".format(established,time_wait,close_wait,now_zero) cursorUpdate(insert_sql,[]) 网卡IO监控...: 固定时间段监控/proc/vmstat 以下字段 和前一个时间段相减,再除以时间间隔 得到io。
已分配文件句柄的数目 已使用文件句柄的数目 文件句柄的最大数目 [root@wangzi go]# cat /proc/sys/fs/file-nr 1280 0 98406 python监控代码
请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。...响应报文 HTTP响应报文和请求报文的结构差不多,也是由四个部分组成: <status-line> //状态行 <headers> //消息报头 <blank line> //空行 <...响应报文中包含Content-Range指定范围的实体内容 3xx:重定向 301 Moved Permanently:永久重定向,表示请求的资源已经永久的搬到了其他位置。...POST不会变成GET 304 Not Modified:表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足。返回304时,不包含任何响应主体。...假设这个资源没有被修改,那么服务器返回一个响应报文: HTTP/1.1 304 Not Modified Date:Sat, 15 Oct 2011 15:39:29 (空行
第十九章 Linux监控平台搭建 19.1 Linux监控平台介绍 常见开源监控软件 cacti、nagios、zabbix、smokeping、open-falcon等等。...cacti、smokeping偏向于基础监控,成图漂亮。...cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态;zabbix会获取服务或者监控项目的数据从而可以成图...数据存储(如:mysql) 监控过程中收集的所有信息都存储在这里。 web界面 web界面,即GUI。这是zabbix监控简单易用的原因之一,因为我们可以在web界面中配置、管理各个客户端。...Hostname=adai-02 #该参数用于设定客户端主机的名字,用于服务端添加监控服务 #如果服务端所监控的机器和其Hostname不一致,服务端将无法识别该机器 #因为zabbix是通过IP进行监控的
本文参看Http RFC7230规范,梳理了http报文部分。...http 报文构成 start-line: 起始行,描述请求或响应的基本信息 *( header-field CRLF ): 头 CRLF header 起始行 起始行的格式就是 start-line...Content-Length请求或者响应的body长度,必须要带上这个字段,以便对方可以方便的分辨出报文的边界,也就是Body数据何时结束。
本期我们接着上期聊,说说HTTP报文。...报文概要在说报文之前,我们先来了解一下报文(message),它是HTTP通信中的基本单位,由8位组字节流(octetsequence,其中octet为8个比特)组成,通过HTTP通信传输。...通常情况下,报文主体指的就是实体,只有当传输中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异。一个完整的HTTP报文包括报文首部和报文主体两部分。报文首部有请求报文和响应报文。...另外,对于多重范围的范围请求,响应会在首部字段 Content-Type 标明 multipart/byteranges 后返回响应报文。...本期我们主要讲了,HTTP协议报文的组成,传输方式,支持的数据格式,如何获取部分内容、以及返回内容的协商。下期我们继续。END
一、mrgt配置案例说明,这里以监控网卡为例 #通过public监控localhost上的192.168.1.68地址流量 Target[eth1_lan]:/192.168.1.68:public@...流入 LegendO[eth1_lan]:流出 #网页标题 Title[eth1_lan]:eth1网络流量[流入+流出] PageTop[eth1_lan]:eth1网络流量[流入+流出] 监控不同...system-oid,可能需要不同的配置,这里不再一一列举 有一个值得注意的地方,当需要监控磁盘的时候需要配置文件里增加以下内容 把需要监控的目录最大数字写入配置文件snmp.conf disk /...生成的图片,默认是存放在路径/var/www/mrtg下 三、生成监控首页面 用indexmaker生成mrtg监控首页面 indexmaker --output /var/www/mrtg/index.html...--title="System state Monitor" /etc/mrtg/mrtg.cfg 这样生成的页面就可以时时反应出系统监控的信息了,页面可以通过web服务器来访问即可。
在Unix/Linux,序列号从0开始计数,依次递增。而Windows ping程序的ICMP序列号是没有规律。...查询报文:基于查询的额外信息) 2、ICMP(网络控制报文协议)分为:差错报告报文和查询报文 (1)差错报告报文: ICMP不能纠错,只能检查错误,发现错误报告给最初的数据源。...即时没有终点不可达差错报文也不能代表数据报交付成功。 2)源点抑制:类型=4,缺乏流量控制和拥塞控制。当路由器或主机丢弃数据报时,向源数据端口发送源点抑制差错报文。...该报文两个作用:第一通知源点数据报已经丢弃,二通知源点慢点发数据。...每个数据报通过一个路由器生存时间就-1,当生存时间为0时,就向源点发送一个超时差错报告报文。如果报文的一个分片超时也发送差错报告报文。
如上的Prometheus整体架构图中可以看到Prometheus是由Prometheus Server,AlertManager,Dashboard等核心模块来组成,通过它可以监控Linux,MySQL...下面详细的阐述下Prometheus环境的搭建以及与Grafana整合后监控Linux的系统资源。...static_configs: - targets: ["47.95.142.233:9090"] #监控Linux资源 - job_name: "云服务器Linux" static_configs...Prometheus需要监控Linux的系统资源,首先需要下载node_exporter-1.2.2.linux-amd64.tar.gz的文件,下载成功后解压的目录信息为: |-- LICENSE |...如上图可以看到能够监控Linux的系统资源,而这些系统资源在做性能测试的时候可以作为被监控和收集的数据之一。感谢您的阅读,后续会持续更新!
1、Linux服务器安装agent 下载Linux端zabbix-agent 下载地址 上传rpm文件到被监控端服务器 运行命令安装zabbix-agent rpm -ivh zabbix-agent-...systemctl restart zabbix-agent 2、zabbix配置 登录zabbix系统,点击配置——主机——创建主机 填写主机名称,选择群组,填写IP地址为windows服务器IP 选择linux...模板 点击添加按钮 Zaibbix监控MySQL数据库 Zaibbix监控MS SQL SERVER数据库 Zaibbix监控ORACLE数据库 Zaibbix监控Linux、Windows、AIX、HP-UX...、Solaris操作系统 Zaibbix监控中间件 Zaibbix监控网络设备 Zaibbix监控存储设备 葡萄运维助手(英文为Netpod)是一款新一代IT监控系统,具有成本低、技术门槛低,容易上手的特点...运维助手提供对服务器、虚拟化、云主机、网络设备、存储设备、数据库、中间件、业务系统的报警、性能、配置监控,提供Web端的监控大屏以及APP客户端,在办公室中享受运维监控大屏,在会议中、出差中、家中以及其它场合中通过
cacti、smokeping偏向于基础监控,成图非常漂亮。...cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,这几款监控软件均有web操作界面。...nagios不用存储历史数据,注重服务或者监控项的状态。...---- zabbix 监控介绍: C/S架构(被监控的server需要安装监控软件,既可以主动连接客户端,也可以被动的让客户端推送自己的状态),基于C++开发,监控中心支持web界面配置和管理。...zabbix-agent 客户端软件,负责采集各个监控服务或项目的数据,并上报。 zabbix监控流程图 image.png
领取专属 10元无门槛券
手把手带您无忧上云