Python -- 硬盘容量单位及网络速率单位换算

目标:

        了解常见数据单位和数据速率的换算关系。

数据单位的换算:

        # 硬盘容量,内存容量,显存容量,缓存容量,U盘容量单位换算


        # bit(b)是位,Byte(B)是字节,一个字节由8位组成,也就是1 Byte=8 bit.
        # Kilo是千,1 KB = 1024 B,1 kb = 1024 b。
        # Mega是兆(百万). 

        # 硬盘厂商的标准: 1 KB = 1000 byte
        # 操作系统的标准: 1 KB = 1024 byte


        # 所以 在系统中硬盘的容量往往会少于硬盘包装上的表示。 1 TB 大概只有 960 GB容量。主流计算方法

Python 实现硬盘容量,内存容量的单位转换:

# 代码来源:https://www.cnblogs.com/dachenzi/p/8232861.html
# pip install psutil  psutil 是python用来获取系统信息的库
import psutil


def bytes_to_convert(n: int):
    symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
    prefix = {}
    for i, s in enumerate(symbols):
        '''
        位运算,将KB等转换为byte
        prefix = {'K': 1024, 
                  'M': 1048576, 
                  'G': 1073741824, 
                  'T': 1099511627776, 
                  'P': 1125899906842624, 
                  'E': 1152921504606846976, 
                  'Z': 1180591620717411303424, 
                  'Y': 1208925819614629174706176}
        '''
        prefix[s] = 1 << (i + 1) * 10

    for s in reversed(symbols):
        # prefix['K'] 这里的值为 1024;
        # 原代码是 float(n)。如果是外部调用,需要注意。
        # n应该是 int 类型;这里已经修改
        if int(n) >= prefix[s]:
            value = int(n) / prefix[s]
            return '%.1f%s' % (value, s)
    return '%sB' % n


if __name__ == '__main__':
    # psutil.virtual_memory().total 的返回值是 int。
    bytes_to_convert(psutil.virtual_memory().total)


[root@localhost ]#  bytes_to_convert(psutil.virtual_memory().total)
'15.6G'

数据单位的换算

        # 网络带宽运营商(bandwidth)速度单位,
        # 网络带宽运营商通常使用bps表示各种设备的传输速率。


        # b 是 位,ps 是 每秒,bps是线路单位,表示bit(比特)/second(秒)。

        # IEEE802.3:100 Mbps = 100,000,000 bps。  以太网速率是以10进制为单位的。


        # 日常下载软件一般使用 KB/秒 或者 B/s 等,因为文件大小的单位是字节(B)。


        # 1000 进位; 1 kb = 1000 b。 8 bit =  1 Byte。

        # 路由交换设备性能的常用指标pps: Packet Per Second 包每秒即表示每秒转发多少数据包。​​​​​​​

Python -- 硬盘容量单位及网络速率单位换算_第1张图片

宽带运营商:

Python -- 硬盘容量单位及网络速率单位换算_第2张图片

宽带运营商速率  转换 下载软件(迅雷)速率,例如:

        运营商 300Mbps 等于 37.5MB/s 左右的迅雷下载速率(除以8)

网络设备线速转发(Mpps 包转发率,交换机每秒可以转发多少百万个数据包):

包转发速率 = 端口速度 / 8 (最小帧长+开销)

1000M端口的最大包转发速率=1000M/8(64+20)=1.488Mpps       

注:(20=8(帧头引导符)+12(帧间隙) 64为以太网最小帧。Router 的 kbits 单位等同于 kbps。

常见包转发率:

  • 万兆以太网:14.88Mpps
  • 千兆以太网:1.488Mpps
  • 百兆以太网:0.1488Mpps

1、 交换机 S26xx 拥有24百兆电口,厂家标称容量 12.8Gbps、包转发率:9.6Mpps。

                (24×0.1G+4×1G)×2=12.8G    # 乘以2(接口为双工模式)

                24×0.1488Mpps+4×1.488Mpps=9.6Mpps    # 千兆接口包转1.488M

2、交换机 S57xx 拥有24千兆电口、4万兆光口,厂家标称容量 1.28 T/12.8 Tbps、包转发率:216/366 MppsPython -- 硬盘容量单位及网络速率单位换算_第3张图片

 24个千兆电口+4个万兆光口 :

        交换容量为:(24×1G+4×10G)×2= 128Gbps 

        包转发率为: 24 x 1.488Mpps + 4 x 14.88Mpps = 95.23Mpps

如果要达到 12.8Tbps。那么换成48口千兆电,4口万兆光,加上扩展卡槽4*40GE光额,12.8Tbps 怎么来的啊!然后查询了下,有这么一个说法这是10台接入交换机堆叠/虚拟化后能达到的性能,貌似是为了应标而标注的参数。

你可能感兴趣的:(网络,运维)