作者:tuitu | 来源:互联网 | 2024-10-12 17:13
目标:
了解常见数据单位和数据速率的换算关系。
数据单位的换算:
# 硬盘容量,内存容量,显存容量,缓存容量,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台接入交换机堆叠/虚拟化后能达到的性能,貌似是为了应标而标注的参数。