热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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 包每秒即表示每秒转发多少数据包。​​​​​​​

宽带运营商:

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

       运营商 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 Mpps

 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台接入交换机堆叠/虚拟化后能达到的性能,貌似是为了应标而标注的参数。


版权声明:本文为sedbz原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/sedbz/article/details/126040118
推荐阅读
author-avatar
tuitu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有