前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件性能测试(连载15)

软件性能测试(连载15)

作者头像
顾翔
发布2020-03-04 13:35:35
9910
发布2020-03-04 13:35:35
举报

6)小结

本节所涉及的概念有文件储结构(包括索引节点和目录项)、虚拟文件系统VFS、Linux I/O分类和磁盘的性能指标。涉及到的命令有stat、 df、iostat、 cat /proc/slabinfo、slabtop、pidstat和iotop。

4. 网络
1)网络协议栈

在大学的时候,都学过网络的协议栈。OSI为7层,TCP/IP模型为4层,其对应关系如图3-32所示。

图3-32 OSI 7层协议与TCP/IP模型4层协议对照表

OSI模型仅为教学提供,在日常工作中使用TCP/IP协议。在Linux中TCP网络包如图3-33所示。

图3-33 Linux中的TCP网络包

在应用层仅为具体要用到的应用数据;到了传输层在头部加上TCP头信息;向下进入网络层,在TCP头信息头部再加上IP头信息;最后到达网络接口层,在数据包的头尾部各加上帧头和帧尾两部分。

在TCP/IP的传输过程中,发送方从上而下一层一层地在应用数据前后加上头信息与尾信息,接受方从下而上一层一层地把头信息与尾信息去除,直到在应用层只剩下应用信息为止,如图3-34所示。

图3-34 TCP/IP数据包的发送与接受

2)Linux 网络栈

Linux的网络栈如图3-35所示。

图3-35 Linux的网络栈

3)网络性能指标

同磁盘一样,网络也有对应的性能指标。

带宽。

表示链路的最大传输速率。单位通常为b/s(比特/秒)。

吞吐量。

表示没丢包时的最大数据传输速率。单位通常为b/s(比特/秒)或者 B/s(字节/秒),吞吐量受带宽限制,而吞吐量/带宽,也就是该网络的使用率

延时。

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

•PPS。

是 Packet PerSecond(包/秒)的缩写,表示以网络包为单位的传输速率。PPS 通常用来评估网络的转发能力,比如硬件交换机,通常可以达到线性转发(即PPS 可以达到或者接近理论最大值)。而基于Linux服务器的转发,则容易受网络包大小的影响。

网络的可用性。

网络能否正常通信

并发连接数。

TCP 的并发连接数量

丢包率。

传输过程中丢包的数量与总包的数量的百分比

重传率。

重新传输的网络数据包占所有包的百分比。

4)常用命令
① ifconfig
# ifconfig ens33
ens33:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.0.108 netmask 255.255.255.0  broadcast192.168.0.255
inet6 fe80::dacc:9183:6dd2:2c6e  prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:55:10:1f  txqueuelen 1000  (Ethernet)
RX packets 23667 bytes 34981398 (34.9 MB)
RX errors 0  dropped 0  overruns 0 frame 0
TX packets 18467 bytes 1668920 (1.6 MB)
TX errors 0 dropped 0 overruns 0  carrier0  collisions 0

ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring。在这里。

•RUNNING。

表示这个网卡是连通的。

•mtu 1500。

表示MTU的当前值为1500。MTU为最大传输单元,其默认值为1500,MTU越大,需要的分包也就越少,自然网络吞吐能力就越好。

•inet 192.168.0.108 netmask255.255.255.0 broadcast 192.168.0.255。

表示当前的IPv4地址,子网掩码和广播地址。

•inet6 fe80::dacc:9183:6dd2:2c6e prefixlen 64 scopeid0x20<link>。

表示IPv6地址和子网掩码。

② ip
# ip -s addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc fq_codel state UP group default qlen 1000
   link/ether 00:0c:29:55:10:1f brd ff:ff:ff:ff:ff:ff
    inet192.168.0.114/24 brd 192.168.0.255 scope global dynamic noprefixroute ens33
      valid_lft 6024sec preferred_lft 6024sec
    inet6fe80::dacc:9183:6dd2:2c6e/64 scope link noprefixroute 
      valid_lft forever preferred_lft forever
    RX:bytes  packets  errors dropped overrun mcast   
   1066174744 1153443  0       0      0       0       
    TX: bytes  packets errors  dropped carrier collsns 
   313697585  701189   0      0       0       0      
root@ubuntu:/home/ebusiness#

linux的ip命令和ifconfig类似,但ip功能更为强大,并旨在取代ipconfig之意。

•LOWER_UP。

表示这个网卡是连通的。

•mtu 1500。

表示MTU为1500。

•inet 192.168.0.108/24 brd 192.168.0.255。

表示当前的IPv4地址,子网掩码和广播地址。

•inet6 fe80::dacc:9183:6dd2:2c6e/64 scope link noprefixroute。

表示IPv6地址和子网掩码。

在ifconfig、ip中其他参数如表3-14所示。

表3-14 ifconfig、ip中其他参数

参数

解释

errors

发生错误的数据包的数量,比如校验错误、帧同步错误等

dropped

丢弃的数据包数,即数据包已经收到了 Ring Buffer,但因为内存不足等原因丢包

overruns

超限数据包的数量,即网络 I/O 速度过快,导致 Ring Buffer 中的数据包来不及处理(队列满)而导致的丢包

carrier

发生 carrirer 错误的数据包数,比如双工模式不匹配、物理电缆出现问题等

collisions

碰撞数据包数

③ sar
# sar -n DEV 1
Linux 4.15.0-66-generic (ubuntu) 12/11/2019_x86_64_(4 CPU)
 
12:45:31 AM  IFACE   rxpck/s txpck/s rxkB/stxkB/s rxcmp/s txcmp/s  rxmcst/s %ifutil
12:45:32 AM  ens33   0.00     0.00    0.00    0.00   0.00    0.00     0.00      0.00
12:45:32 AM  lo       0.00     0.00    0.00    0.00   0.00    0.00     0.00      0.00

sar命令配合-n参数可以查看网络的相关信息,有6个不同的开关:DEV、EDEV、 NFS、NFSD、SOCK和ALL 。DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套 接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。这里的参数如表3-15所示。

表3-15 sar -nDEV参数

参数

含义

单位

rxpck/s 和 txpck/s

接收和发送的 PPS

包 / 秒

rxkB/s 和 txkB/s

接收和发送的吞吐量

KB/ 秒

rxcmp/s 和 txcmp/s

接收和发送的压缩数据包数

包 / 秒

%ifutil

网络接口的使用率

(rxkB/s+txkB/s)/Bandwidth(半双工模式下)

max(rxkB/s, txkB/s)/Bandwidth(全双工模式下)

Bandwidth 可以用 ethtool 来查询,它的单位通常是 Gb/s 或者 Mb/s,不过注意这里小写字母 b ,表示比特而不是字节。

④ping

ping命令通过ICMP协议查看网络的连通性和延时。

# ping 192.168.0.106 -c3
PING 192.168.0.106 (192.168.0.106) 56(84) bytes ofdata.
64 bytes from 192.168.0.106: icmp_seq=1 ttl=128time=0.280 ms
64 bytes from 192.168.0.106: icmp_seq=2 ttl=128time=0.208 ms
64 bytes from 192.168.0.106: icmp_seq=3 ttl=128time=0.351 ms
 
--- 192.168.0.106 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss,time 2007ms
rtt min/avg/max/mdev = 0.208/0.279/0.351/0.061 ms

•ttl。

表示生存时间,或者跳数。

•time。

表示往返延时。

•icmp_seq。

表示ICMP 序列号。

•rtt min/avg/max/mdev = 0.208/0.279/0.351/0.061 ms。

表示ttl的最小值为208ms、平均值为279ms、最大值为351ms以及平均偏差0.061 ms (mdev = SQRT(SUM(RTT×RTT) / N – (SUM(RTT)/N) 2,RTT(Round-Trip Time)。往返时延。是指数据从网络一端传到另一端所需的时间。时延由发送时延、传播时延、排队时延、处理时延四个部分组成)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4. 网络
    • 1)网络协议栈
      • 2)Linux 网络栈
        • 3)网络性能指标
          • 4)常用命令
            • ① ifconfig
            • ② ip
            • ③ sar
            • ④ping
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档