如果大家了解过软件编程开发的网络化应用的话应该都知道,软件网络结构都是有不同层次构成的。而今天我们就一起来了解一下软件开发的网络化应用都有哪些指标要求。
网络这个概念涵盖的范围较广,在应用层、传输层、网络层、网络接口层都有不同的指标去衡量。这里我们讨论的「网络」,特指应用层的网络,通常使用的指标如下:
网络带宽:表示链路的大传输速率;
网络吞吐:表示单位时间内成功传输的数据量大小;
网络延时:表示从网络请求发出后直到收到远端响应,所需要的时间;
网络连接数和错误数;
一般来说,应用层的网络瓶颈有如下几类:
集群或机器所在的机房的网络带宽饱和,影响应用QPS/TPS的提升;
网络吞吐出现异常,如接口存在大量的数据传输,造成带宽占用过高;
网络连接出现异常或错误;
网络出现分区。
带宽和网络吞吐这两个指标,一般我们会关注整个应用的,通过监控系统可直接得到,如果一段时间内出现了明显的指标上升,说明存在网络性能瓶颈。对于单机,可以使用sar得到网络接口、进程的网络吞吐。
使用ping或者hping3可以得到是否出现网络分区、网络具体时延。对于应用,我们更关注整个链路的时延,可以通过中间件埋点后输出的trace日志得到链路上各个环节的时延信息。
使用netstat、ss和sar可以获取网络连接数或网络错误数。过多网络链接造成的开销是很大的,一是会占用文件描述符,二是会占用缓存,因此系统可以支撑的网络链接数是有限的。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。