【测试实践】搞定云网络系统性能测试

一、前言

在部署或管理网络系统时,我们更多的是关心网络的连通性,而对于其整体的性能往往考虑不多,或者即使考虑到性能、异常或稳定性的问题,但却发现没有合适的手段去测试或监控网络健康状况。在本文中,首先简单介绍一下网络性能测试指标重点会关注哪些指标、在开展性能测试时,如何预估系统性能以便合理的规划和部署测试环境,然后会介绍基本的网络连通性测试工具、网络性能测试工具以及在开展性能测试时如何部署监控,更加直观的统计性能指标等。因为社区中已经有非常完善的文档,本文不再重复造轮子,只是简单地介绍并辅以几个简单demo实例,旨在雁过留声,平时遇到问题时能够提供一些解决方案或思路。

1.1 网络性能测试指标

性能测试的目的是以性能指标预期为前提,对系统进行施压,验证系统在无资源性能瓶颈的情况下,是否能达到预期目标。对于不同的服务或应用场景,可能关注的指标侧重点存在一定差异,对于底层系统网络性能测试来说,通常会重点关注以下指标:

  • 可用性,可用性是对一个系统最基本的要求,开展工作之前首先需要确认一下网络连通性,常规的工具主要有ping、fping、telnet、curl等工具判断网络链路是否通畅。需要注意的是,由于ping是基于ICMP协议实现的,能ping通只能说明网络是能通的,不能说明具备对应的端口访问权限。通常情况下需要结合telnet、curl等工具来判断网络连通性及服务可用性。

  • 带宽BPS,每秒所能传送的比特数。通常所说的带宽指的是网络中节点之间的极限带宽,由于节点之间的链路通畅是不完全可见的,因此极限带宽通常是由组成网络的设备能力所决定的。

  • 吞吐量(throughput),网络吞吐量是指在某个时刻,在网络中的两个节点之间,提供给网络应用的剩余带宽,通过网络吞吐量可以寻找出网络瓶颈。吞吐量的衡量符合马桶效应,比如,即使client和server都被分别连接到各自的100M以太网卡上,但是如果这两个100M的以太网卡被10M的交换机连接起来,那么10M的交换机就是网络的瓶颈。吞吐量受带宽限制,吞吐量/带宽就是该网络链路的使用率

  • PPS(packet per second),表示以网络包单位的传输速率。PPS通常用来评估网络的转发能力,而基于Linux服务器的转发,很容器受到网络包大小的影响,通常选择1bytes的数据包测试系统极限场景下的pps。

  • 时延,表示从一端发出请求后直到收到远端响应所需要的时间。这个指标在不同场景中可能会有不同含义。它可以表示建立连接需要的时间(比如TCP握手延迟),或者一个数据包往返所需时间(比如RTT)

  • 丢包率,网络丢包率是指测试中所丢失数据包数量占所发送数据包的比率,通常在吞吐量范围内测试。丢包率主要与客户端到网站服务器之间每段路由的网络拥塞程度有关。由于交换机和路由器的处理能力有限,当网络流量过高来不及处理时就将一部分数据包丢弃造成丢包。由于TCP/IP网络能够自动实现重发,这样发生丢包后不断重发,将造成更大量的丢包。因此,网络拥塞发生后经常会发生丢包率越来越高的现象,和马路上的交通堵塞十分相似。

  • 抖动率:抖动率是网络延迟的变化量,它是由同一应用的任意两个相邻数据包在传输路由中经过网络延迟而产生;计算方法:抖动率由相邻数据包延迟时间差除以数据包序号差得到。

1.2 系统的网络性能评估

系统的性能指标,一般情况下会在产品需求文档中有较明确定义,QA同学以此为依据部署环境,开展测试任务。对于探索式的性能测试来讲,通常需要QA同学横向了解一下相关指标的合理范围,例如需要测试指定网卡性能表现,带宽跟物理网卡配置是直接关联的,网卡确定后,带宽也就确定了(实际带宽受限于整个网络链路中最小的那个模块),为了更加有效的预估,可以参考说明文档、竞品公布的性能数据或者根据经验值分析。比如测试网关的极限带宽,假设网关节点网卡配置为两张82599 10Gb网卡做bond1,那么理论极限带宽不会超过20Gb,加上物理损耗,实际评估的带宽约为15Gb~18Gb之间,假设客户端与服务端均采用相同规格物理机部署,单台物理机带宽上限约为8Gb,要想获得网关节点的真实极限带宽,客户端与服务端需要至少分别部署三台物理机。

二、 网络连通性测试工具

在完成测试方案设计、评审以及环境部署之后,首先需要做的是测试服务可用性,相关的测试工具上文中已有提及,这里主要简单介绍ping常规的使用方法,其它工具如mtr、NMap、Netcat、fping、paping等可通过man命令查看。

2.1.1 ping

首先简单介绍一下ICMP协议,ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ping命令是基于ICMP协议实现的。使用这个命令判断网络的连通性以及网速,也可实现域名解析,默认使用该命令会一直发送ICMP包直到用户手动中止,可以使用以下常用参数控制数据包的传输:

  • -c命令指定发送数据包的个数

  • -W指定最长等待时间,如果有多张网卡

  • -I指定发送包的网卡

  • -s可以指定发送包的大小,默认包大小为64bytes

在ping过程中按下ctrl+|会打印出当前的summary信息,统计当前发送包数量、接收数量、丢包率等。示例,如下一台云主机eth0配置了secondaryIP,需要测试一下网络连通性

root@pytest-likailiang-1t3j9c-2:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether fa:16:3e:b7:b2:ca brd ff:ff:ff:ff:ff:ffinet 172.16.1.2/24 brd 172.16.1.255 scope global eth0valid_lft forever preferred_lft foreverinet 172.16.1.3/24 scope global secondary eth0valid_lft forever preferred_lft foreverinet6 fe80::f816:3eff:feb7:b2ca/64 scope linkvalid_lft forever preferred_lft forever
root@pytest-likailiang-1t3j9c-2:~# ping 192.168.1.70 -I 172.16.1.3  -c 10 -i 2 -w 10 -s 64
PING 192.168.1.70 (192.168.1.70) from 172.16.1.3 : 56(84) bytes of data.
64 bytes from 192.168.1.70: icmp_seq=1 ttl=63 time=1.51 ms
64 bytes from 192.168.1.70: icmp_seq=2 ttl=63 time=0.972 ms
2/2 packets, 0% loss, min/avg/ewma/max = 0.972/1.242/1.444/1.512 ms
64 bytes from 192.168.1.70: icmp_seq=3 ttl=63 time=0.766 ms
64 bytes from 192.168.1.70: icmp_seq=4 ttl=63 time=0.716 ms
64 bytes from 192.168.1.70: icmp_seq=5 ttl=63 time=0.681 ms
5/5 packets, 0% loss, min/avg/ewma/max = 0.681/0.929/1.204/1.512 ms--- 192.168.1.70 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 8010ms
rtt min/avg/max/mdev = 0.681/0.929/1.512/0.309 ms
root@pytest-likailiang-1t3j9c-2:~#

需要说明的是与ping要等待某一主机连接超时或发回反馈信息不同,fping给一个主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping。如果某一主机ping通,则此主机将被打上标记,并从等待列表中移除,如果没ping通,说明主机无法到达,主机仍然留在等待列表中,等待后续操作。Fping程序类似于ping。Fping与ping不同的地方在于,fping可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。

2.1.2 mtr

mtr(全称 my traceroute,是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具,功能更强大。mtr默认发送ICMP数据包进行链路探测,用户还可以通过-u参数来指定使用UDP数据包用于探测。相比traceroute只会做一次链路跟踪测试,mtr会对链路上的相关节点做持续探测并给出相应的统计信息。mtr能避免节点波动对测试结果的影响,所以其测试结果更正确。

mtr有Linux和Windows两种版本,在Windows系统下可以直接使用WinMTR工具,WinMTR是Windows下关于mtr的图形化工具,WinMTR下载地址。WinMTR无需安装,下载完毕后,直接解压运行即可。Linux环境下直接使用mtr命令即可,安装及命令行操作参考:

安装mtr工具

apt-get install mtr -y

mtr (My traceroute)几乎是所有 Linux 发行版本预装的网络测试工具,集成了 tracert 与 ping 这两个命令的图形界

root@slaver1:~# mtr -h
usage: mtr [--help] [--version] [-4|-6] [-F FILENAME][--report] [--report-wide] [--displaymode MODE][--xml] [--gtk] [--curses] [--raw] [--csv] [--json] [--split][--no-dns] [--show-ips] [-o FIELDS] [-y IPINFO] [--aslookup][-i INTERVAL] [-c COUNT] [-s PACKETSIZE] [-B BITPATTERN][-Q TOS] [--mpls][-a ADDRESS] [-f FIRST-TTL] [-m MAX-TTL] [-U MAX_UNKNOWN][--udp] [--tcp] [--sctp] [-P PORT] [-L LOCALPORT] [-Z TIMEOUT][-G GRACEPERIOD] [-M MARK] HOSTNAME
See the man page for details.

如上图所示,mtr测试结果每列数值的说明如下:

root@lkl-slaver1:~#  mtr -c 2 -r 114.114.114.114
Start: Wed Aug 19 15:35:05 2020
HOST: slaver1                     Loss%   Snt   Last   Avg  Best  Wrst StDev1.|-- ???                       100.0     2    0.0   0.0   0.0   0.0   0.02.|-- ???                       100.0     2    0.0   0.0   0.0   0.0   0.03.|-- ???                       100.0     2    0.0   0.0   0.0   0.0   0.04.|-- ???                       100.0     2    0.0   0.0   0.0   0.0   0.05.|-- ???                       100.0     2    0.0   0.0   0.0   0.0   0.06.|-- 61.164.31.126              0.0%     2    1.7   2.8   1.7   3.9   1.47.|-- 220.191.200.207            0.0%     2    5.2   5.4   5.2   5.7   0.08.|-- 202.97.76.2                0.0%     2   11.5  11.6  11.5  11.7   0.09.|-- 222.190.59.206             0.0%     2   14.3  16.3  14.3  18.2   2.610.|-- 58.213.224.170             0.0%     2   27.6  22.1  16.5  27.6   7.911.|-- public1.114dns.com         0.0%     2   14.3  14.3  14.3  14.4   0.0Host:节点IP地址和域名(按n键可以切换显示);
Loss%:节点丢包率;
Snt:每秒发送数据包数,默认值是10,可以通过参数-c指定;
Last:最近一次的探测延迟值;
Avg:探测延迟的平均值;
Best:探测延迟的最小值;
Wrst:探测延迟到最大值;
StDev:标准偏差值,越大说明相应节点越不稳定。

更多内容参考云社区

2.1.3 网猫netcat

NetCat是一个非常简单的Unix工具,可以读、写TCP或UDP网络连接,在linux和window环境下均可使用,社区文档非常丰富,实例参考下文链接。

netcat 使用的基本形式为:

nc 参数 目的地址 端口

常用的参数说明如下:

-k  在当前连接结束后保持继续监听
-l  用作端口监听,而不是发送数据
-n  不使用 DNS 解析
-N  在遇到 EOF 时关闭网络连接
-p  指定源端口
-u  使用 UDP 协议传输
-v  (Verbose)显示更多的详细信息
-w  指定连接超时时间
-z  不发送数据

实例参考:Linux 中的 netcat 网络工具简介,“瑞士军刀”Netcat使用方法总结

2.1.4 xxxping

ping命令是一个很好用并且常用的网络测试工具,它是基于ICMP协议,但是出于网络安全等因素,大部分网络环境以及云环境可能都会禁止ICMP协议,所以在工作中,我们必须掌握一些其他比较流行的网络测试工具,比如tcpping、tcping、psping、hping、paping等几款网络测试工具。社区文档比较丰富,这里不再详细介绍。

三 、 网络性能测试工具

网络性能测试工具这里主要介绍两个常用的工具iperf和netperf,相关的工具如wrk 、pktgen等后续会加以补充

3.1 iperf

3.1.1 iperf简介

iperf(iperf3)是一个网络性能测试工具,采用C/S(客户端/服务器端)架构模式,可以测试TCP和UDP带宽、模拟网络故障等。利用iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能,评估系统QOS。iperf分为两种版本,Unix/Linux版和Windows版,Unix/Linux版更新比较快,版本最新。Windows版更新慢。Windows版的iperf叫jperf,或者xjperf。jperf是在iperf基础上开发了更好的UI和新的功能。

3.1.2 iperf安装及使用说明

源码安装参考iperf,推荐命令行直接安装

~# apt-get install -y iperf3

关于网络性能测试推荐参考阿里云网络性能测试方法。这样在横向数据对比时更具有参考价值,更多资料参考

3.1.3 iperf实例

带宽测试通常采用UDP模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为100Mbps,先用-b 100M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。

UDP模式

服务器端:

iperf -u -s

客户端:

iperf -u -c 192.168.1.1 -b 100M -t 60

在udp模式下,以100Mbps为数据发送速率,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。

iperf -u -c 192.168.1.1 -b 5M -P 30 -t 60

客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率。

iperf -u -c 192.168.1.1 -b 100M -d -t 60

以100M为数据发送速率,进行上下行带宽测试。

TCP模式

服务器端:

iperf -s

客户端:

iperf -c 192.168.1.1 -t 60

在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。

iperf -c 192.168.1.1  -P 30 -t 60

客户端同时向服务器端发起30个连接线程。

iperf -c 192.168.1.1  -d -t 60

进行上下行带宽测试

pps
iperf3 -s -p 3000
iperf3 -c server-ip   -i 1 -t 2000  -V -p 3000  -b 1000000000 -l 100 -M 89for i in  $(seq  3200  3300) ; do screen -d -m  iperf -s -p $i ; done
for i in  $(seq  3200 3300 ); do  screen -d -m  iperf  -c  server-ip   -i 1 -t 2000  -V -p $i  -b 1000000000 -l 100 -M 89 ; done

3.1.4 参考

  • 阿里云网络性能测试方法:https://www.alibabacloud.com/help/zh/faq-detail/55757.htm#top

  • 腾讯云网络性能测试方法:https://cloud.tencent.com/document/product/213/11460

  • iperf命令:https://man.linuxde.net/iperf

  • https://github.com/esnet/iperf

3.2 netperf

3.2.1 netperf简介

Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。

Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试.在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果:在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,进行来回传递特殊的流量模式,以测试网络的性能。

社区提供的开源Netperf只能满足两个9的时延数据统计,当进行精度较高的专项性能测试时显得无能为力,为此网易杭研云计算同学对此进行了二次开发,能够满足9999值数据统计,项目地址参考netperf-9999 。

netperf常用命令行参数如下选项:

-H host :指定远端运行netserver的server IP地址。
-l testlen:指定测试的时间长度(秒)
-t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR
-s size	设置本地系统的socket发送与接收缓冲大小
-S size	设置远端系统的socket发送与接收缓冲大小
-m size	设置本地系统发送测试分组的大小
-M size	设置远端系统接收测试分组的大小
-D 对本地与远端系统的socket设置TCP_NODELAY选项

3.2.2 netperf 网络测试模式说明

  • TCP_STREAM Netperf缺省情况下进行TCP批量传输,即-t TCP_STREAM。测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量

  • UDP_STREAM UDP_STREAM用来测试进行UDP批量传输时的网络性能。注意:此时测试分组的大小不得大于socket的发送与接收缓冲大小,否则netperf会报出错提示

  • 测试UDP_STREAM模式下pps pssh -i -h client-ips -O StrictHostKeyChecking=no 'for node in $(cat server-ips); do for i in $(seq 12010 12015); do screen -d -m netperf -H $node -p $i -t UDP_STREAM -l 100 -- -m 1 -R 1 ; done ; done'

  • TCP_RR ,TCP_RR方式的测试对象是建立一次连接之后多次TCP request和response的交易过程,该模式下可以得到长连接极限带宽或pps

  • 测试TCP_RR长连接模式下pps pssh -i -h client-ips -O StrictHostKeyChecking=no 'for node in $(cat server-ips); do for i in $(seq 12010 12015); do screen -d -m netperf -H $node -p $i -t TCP_RR -l 100 -- -r 1B,1B; done ; done'

  • 测试网络延迟和吞吐量 ./netperf_client_9999 -t TCP_RR -H <server-ip> -l 60 -- -r 1B,1B -O " MIN_LAETENCY, MAX_LATENCY,MEAN_LATENCY, P90_LATENCY, P99_LATENCY ,P999_LATENCY,P9999_LATENCY,STDDEV_LATENCY ,THROUGHPUT ,THROUGHPUT_UNITS"

  • TCP_CRR 与TCP_RR不同,TCP_CRR为每次交易建立一个新的TCP连接

  • 测试TCP_CRR短连接模式下pps pssh -i -h client-ips -O StrictHostKeyChecking=no 'for node in $(cat server-ips); do for i in $(seq 12010 12015); do screen -d -m netperf -H $node -p $i -t TCP_CRR -l 100 -- -r 1B,1B; done ; done'

  • UDP_RR UDP_RR方式使用UDP分组进行request/response的交易过程

3.2.3 实例

测试网络带宽bps

在对端机器上启动netserver,这是netperf自带的一个服务端程序。可以不带任何参数启动。

root@lkl-stress-test-nginx-017:~#   netserver -p 49999
Starting netserver with host 'IN(6)ADDR_ANY' port '49999' and family AF_UNSPEC

在本机输入以下命令启动netperf:

$netperf -H $(对端IP)
root@lkl-stress-test-nginx-016:~# netperf -H 172.16.0.153
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.16.0.153 () port 0 AF_INET : demo
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  8192  65536  65536    10.00    15955.55

可以看到,带宽的吞吐量基本上达到了约15G。输出结果各个字段的含义如下:

  • PPS

  • PPS 为每秒钟发送成功的数据包个数

  • 具体计算方法:PPS = 数据包发送成功的数目/测试时间

  • 可以在 Server 端用 sar 命令来统计实际收到的数据包,具体命令如下所示,其表示每隔 1 秒统计一次,统计 300 次,sar 命令最后会对 300 次的统计结果求平均

sar -n DEV 1 300

测试延迟

在对端机器上启动netserver。 在本机输入以下命令启动netperf:

root@lkl-stress-test-nginx-016:~# netperf -H 172.16.0.153  -t omni -- -d rr -O "THROUGHPUT, THROUGHPUT_UNITS, MIN_LATENCY, MAX_LATENCY, MEAN_LATENCY"
OMNI Send|Recv TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.16.0.153 () port 0 AF_INET : demo
Throughput Throughput Minimum      Maximum      Mean         Units      Latency      Latency      Latency      Microseconds Microseconds Microseconds 22547.84   Trans/s    36           3605         44.23

可以看到,在resquest/response测试模式下,每秒的吞吐量为22547.84次,最小的时延为36微秒,最大为3605微秒,平均时延为44.23微秒。结果显示,有比较少的报文的延迟比较厉害,达到了毫秒级,但是大部分都在100微秒级

3.2.4 参考

  • 物理专线网络性能测试方法:https://help.aliyun.com/document_detail/58625.html

  • netperf 与网络性能测量:https://www.ibm.com/developerworks/cn/linux/l-netperf/index.html

  • https://www.cnblogs.com/xieshengsen/p/6493277.html

  • https://www.ibm.com/developerworks/cn/linux/l-netperf/index.html

  • https://sq.163yun.com/blog/article/190965728772210688

  • 三层网络PPS极限测试:https://blog.csdn.net/minxihou/article/details/84930250

  • netperf 和 iperf 网络性能测试小结:https://wsgzao.github.io/post/netperf/

  • https://blog.didiyun.com/index.php/2018/12/07/netperf/

  • 网络性能测试方法: https://www.alibabacloud.com/help/zh/faq-detail/55757.htm

  • http 性能测试 wrk使用教程:https://juejin.im/post/6844903550288396296

四、网络数据监控工具

4.1 netdata

实际效果参考:下图是通过netdata监控云主机eth0网卡的流量,可是直观的看到收方向和发方向的流量状况,相比sar工具统计更为直观。

 

Fping类似于ping,但比ping强大。Fping与ping不同的地方在于,fping可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。与ping要等待某一主机连接超时或发回反馈信息不同,fping给一个主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping。如果某一主机ping通,则此主机将被打上标记,并从等待列表中移除,如果没ping通,说明主机无法到达,主机仍然留在等待列表中,等待后续操作。

下图是netdata集成fping 监控网络连通性,其中 fping.conf 的配置文件为:

~# cat fping.conf
fping="/usr/local/bin/fping"
hosts="172.16.1.2 10.10.10.10"  # 这边配置需要ping的地址,通过空格隔离ip地址或域名
update_every=1
ping_every=1000
fping_opts=" -b 56 -r 0 -t 5000"
  • 支持fping 监控

docker run -d --name=netdata \
-p 19999:19999 \
-v /etc/passwd:/host/etc/passwd:ro \
-v /etc/group:/host/etc/group:ro \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v   /root/fping.conf:/etc/netdata/fping.conf:ro   \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
hub.c.163.com/nvsoline2/netdata:fping

 

  • 监控数据持久化保留30天数据

需要配置dbengine,理论上5G硬盘可以支持 每秒2000个数据点,30天。

root@jiande1-dgw-jiande1:~# cat netdata.conf
[global]memory mode = dbenginepage cache size = 32dbengine disk space = 4999

启动时使用上面这个netdata.conf配置。

  • portcheck配置

这些都属于 https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin 插件。

~# cat portcheck.conf 
update_every: 1jobs:- name: server1host: 127.0.0.1ports: - 22- name: server2host: 59.111.96.215ports:- 9009- name: nlb-beta-testhost: 59.111.245.80update_every: 1ports:- 80

go.d.conf ,里面把需要监控的项目打开

~# cat go.d.conf 
# netdata go.d.plugin configuration
#
# This file is in YaML format.# Enable/disable the whole go.d.plugin.
enabled: yes# Enable/disable default value for all modules.
default_run: yes# Maximum number of used CPUs. Zero means no limit.
max_procs: 0# Enable/disable specific g.d.plugin module
# If you want to change any value, you need to uncomment out it first.
# IMPORTANT: Do not remove all spaces, just remove # symbol. There should be a space before module name.
modules:example: yesnginx: yesportcheck: yes

nginx监控demo

~# cat nginx.conf 
jobs:- name: localurl: http://10.199.128.66/nginx_status

docker 启动命令

docker run -d --name=netdata -p 19999:19999 \-v /etc/passwd:/host/etc/passwd:ro \-v /etc/group:/host/etc/group:ro \-v /proc:/host/proc:ro \-v /sys:/host/sys:ro \-v /var/run/docker.sock:/var/run/docker.sock:ro \-v /root/fping.conf:/etc/netdata/fping.conf:ro \-v /root/example.conf:/etc/netdata/go.d/example.conf:ro \-v /root/portcheck.conf:/etc/netdata/go.d/portcheck.conf:ro \-v /root/nginx.conf:/etc/netdata/go.d/nginx.conf:ro \-v /root/go.d.conf:/etc/netdata/go.d.conf:ro \-v /root/netdata.conf:/etc/netdata/netdata.conf:ro \--cap-add SYS_PTRACE \--security-opt apparmor=unconfined \hub.c.163.com/nvsoline2/netdata:fping

4.2 参考

  • 实时系统性能监控工具:https://github.com/netdata/netdata

  • https://www.hi-linux.com/tags/#NetData

  • https://cloud.tencent.com/developer/article/1409664

 

【延伸阅读】

网易数帆:【解决方案】智能UI自动化测试

网易数帆:【解决方案】性能压测及分析调优实践

网易数帆:【解决方案】1万+接口测试与管理的进阶之路

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352470.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

树莓派做一个获取GPS时间的NTP服务器

由于单位用的是内部网络&#xff0c;机器时间无法与internet同步&#xff0c;导致内网的所有设备各自为政&#xff0c;对工作和管理带来的麻烦说不清&#xff0c;为解决这个问题&#xff0c;决定用手里的树莓派做通过GPS获取时间&#xff0c;然后提供NTP服务。在某宝逛了一圈&a…

自动(智能)驾驶 | 全网第一本激光雷达手册阅读指南(下)

接着从上篇继续说&#xff0c;本部分主要介绍激光雷达数据等内容&#xff0c;这个可以说是看懂激光雷达手册的重中之重&#xff0c;也就是关键问题的关键&#xff08;皮~&#xff09;。同样由于velodyne的手册比较难啃但是内容完整丰富&#xff0c;本期我们依然以velodyne 128&…

GEO-SPARK 2000X PPS使用记录(三)

最近单位突然要使用GeoSpark电火花&#xff0c;至少有4年没有用过了。我一直没有独立操作过&#xff0c;只是看同事操作过&#xff0c;碰巧的是会使用这个设备的同事去大洋了&#xff0c;悲剧的是他们把所有的采集狗都拿走了&#xff0c;留下一个巨大的坑让我来填。 1、首先看看…

CMOS图像传感器——工作原理

一、像素阵列结构 一般像素阵列是由水平方向的行( Row ) 和垂直方向的列(Column)正交排列构成的。像素排列的最基本设计原则是:摄像器件像素排列的坐标,必须在显示的时候能够准确地还原在图像原来的相对位置上。在大多数情况下,每个像素中心线在行的方向和列的方向,即…

Kerberos从入门到精通以及案例实操系列(二)

5、安全集群使用说明 5.1、用户要求 具体要求以下使用说明均基于普通用户&#xff0c;安全集群对用户有以下要求&#xff1a; 集群中的每个节点都需要创建该用户该用户需要属于hadoop用户组需要创建该用户对应的Kerberos主体 实操&#xff0c;此处以atguigu用户为例&#x…

3.了解Spring Boot2自动配置原理

了解Spring Boot2自动配置原理 1、SpringBoot特点 1.1、依赖管理 1.父项目做依赖管理 依赖管理 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEAS…

Docker搭建Elasticsearch方法及启动后服务自动关闭的问题

太长不看&#xff0c;一句话总结 内存太小&#xff0c;启动命令中添加参数修改虚拟机大小即可 docker run -e ES_JAVA_OPTS"-Xms256m -Xmx256m" -e "discovery.typesingle-node" -d -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.6.0配…

NTP自动退出问题排查

为什么80%的码农都做不了架构师?>>> 问题现象:ntp进程运行一段时间后自动退出 排查过程: 查看/var/log/message ntp异常信息如下 Feb 20 22:54:41 xnu_1 ntpd[2187]: 0.0.0.0 0617 07 panic_stop -28777 s; set clock manually within 1000 s. Feb 20 22:54:57 …

Docker部署Elasticsearch及安装后自动关闭的问题

Docker搭建Elasticsearch方法 前往dockerhub官网&#xff1a;dockerhub 可查看elasticsearch相应版本 拉取镜像 选取一个版本拉取镜像&#xff0c;如docker pull elasticsearch:7.9.2 不输入版本默认拉取最新版 启动容器 映射端口为9200和9300 docker pull elasticsearch:…

自动化基础笔记--元素操作

元素操作&#xff08;附带鼠标悬停&#xff09; 一些课程回顾&#xff0c;问题原因总结 函数只有在return的时候&#xff0c;才会返回一个数据。返回数据了才可以赋值的 报错&#xff1a; 等待时间不够返回的元素不是你想要的确实是你表达式写错了有句柄未切换或者有iframe未…

服务器设置了自动校时但是,同步时钟配置电脑自动校时

同步时钟配置电脑自动校时 一、同步时钟操作和指示灯说明。 同步时钟可接收全球定位系统GPS、北斗卫星信号。当GPS/北斗天线架设到屋顶时&#xff0c;天线的高度必须低于房屋顶避雷天线的高度&#xff0c;防止被雷击。 先关闭电源后再连接或者去掉天线。 电源指示灯&#xff1a…

计算机怎么关闭开机自启应用,如何关闭电脑开机自动启动的软件程序

如何关闭电脑开机自动启动的软件程序 我们在电脑中安装软件的时候,不小心设置了开机启动,该怎么取消呢?今天就跟大家介绍一下如何关闭电脑开机自动启动的软件程序的具体操作步骤。 1. 首先打开电脑,找到桌面上的【360安全卫士】软件,双击打开: 2. 进入主页面后,点击上方…

Latex使用algorithm2e包写伪代码

用Latex写伪代码我们需要用到一个包&#xff0c;Algorithm2e&#xff0c;这个工具包的使用手册下载地址为&#xff08;http://mlg.ulb.ac.be/files/algorithm2e.pdf&#xff09;CSDN的链接为&#xff08;&#xff09; 准备 导入该包 \usepackage[ruled,linesnumbered]{algor…

【复杂网络建模】——基于微博数据的影响力最大化算法(PageRank)

&#x1f935;‍♂️ 个人主页&#xff1a;Lingxw_w的个人主页 ✍&#x1f3fb;作者简介&#xff1a;计算机科学与技术研究生在读 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4a…

【Markdown小技巧】 整理小图标和表情符号

&#x1f40b;作者简介&#xff1a;博主是一位.Net开发者&#xff0c;同时也是RPA和低代码平台的践行者。 &#x1f42c;个人主页&#xff1a;会敲键盘的肘子 &#x1f436;座右铭&#xff1a;总有一天你所坚持的会反过来拥抱你。 &#x1f308;写在前面&#xff1a; 让博客变得…

工信部—高级软件开发工程师认证

工业和信息化部教育与考试中心是工业和信息化部直属事业单位&#xff0c;承担计算机技术与软件专业技术资格考试、通信专业技术人员职业水平考试、电子通信行业职业技能鉴定、全国信息技术人才培养工程、产业工人网络平台建设等人才培养选拔工作。 软件工程师(Software Enginee…

EasyCVR视频汇聚智能边缘网关在多平台级联及上下级对接中的应用说明

一、行业背景 近年来&#xff0c;在政务数据共享平台的建设上&#xff0c;对国家、省数据、市数据及区县对接上要求打破“信息孤岛”&#xff0c;拔掉“数据烟囱”&#xff0c;全面打通数据“脉络”的主通道。省市平台“级联对接”工作&#xff0c;由国家数据共享平台、省级数据…

水球图的使用

水球图的使用 注意&#xff1a; echarts-liquidfill3 版本匹配 echarts5 版本&#xff0c;echarts-liquidfill2 版本匹配 echarts4 版本 npm install echarts-liquidfill2.0.2 --savevue代码演示&#xff1a; <template> <div class"com-container">…

python制作水球图

水球图是一种适合于展现单个百分比数据的图表类型&#xff0c;pyecharts模块能够非常方便画出水球图&#xff0c;进而实现酷炫的数据展示效果。 下面给大家介绍一下常见水球图的实现方法&#xff1a; 一、基本水球图 from pyecharts import options as opts from pyecharts.cha…

vue3实现水球图

水球图实现的方式有很多种&#xff0c;譬如&#xff1a; a.通过canvas 的sin 绘制水波实现 b.通过canvas的贝塞尔曲线实现水波 c.通过echarts的echarts-liquidfill水球图插件实现 canvas手写水球图确实也不难&#xff0c;只不过效果没有使用echarts-liquidfill插件的好&…