热门标签 | 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
推荐阅读
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 本文详细探讨了Java中的ClassLoader类加载器的工作原理,包括其如何将class文件加载至JVM中,以及JVM启动时的动态加载策略。文章还介绍了JVM内置的三种类加载器及其工作方式,并解释了类加载器的继承关系和双亲委托机制。 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
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社区 版权所有