GiB 和 GB 的核心区别在于它们使用的进制不同,这导致了两者在数值上存在约 7.3% 的误差。
1. 核心区别:二进制 vs 十进制
-
GiB (Gibibyte):
- 定义:基于二进制的单位($2^{10}$)。
- 换算:1 GiB = $1024 times 1024 times 1024$ 字节 = 1,073,741,824 字节。
- 来源:国际电工委员会(IEC)为了区分二进制存储而制定的标准,常用于操作系统内部计算。
- 记忆点:带有 "i" (Binary) 代表是 1024 进制。
-
GB (Gigabyte):
- 定义:基于十进制的单位($10^9$),即“千兆字节”。
- 换算:1 GB = $1000 times 1000 times 1000$ 字节 = 1,000,000,000 字节。
- 来源:国际单位制(SI),常用于硬盘厂商标注容量、网络传输速率等。
- 现状:在日常口语和部分旧版软件中,人们常把 GiB 也口头称为 GB,但在严谨的技术文档或现代系统中需严格区分。
数值对比示例:
如果你购买了一块标称 1 TB (1000 GB) 的硬盘,在 Windows 系统(使用二进制计算)中显示的容量约为 931 GiB。这是因为 $1000^4 / 1024^4 approx 0.909$。
2. 云服务器配置中常用哪个单位?
在云服务器(如阿里云、腾讯云、AWS、Azure 等)的配置页面和宣传中,通常使用 GB,但这里存在一个行业惯例与实际操作的区别:
A. 宣传与售卖界面(显示为 GB)
云服务商在商品列表、价格表或配置选择器中,几乎统一显示为 GB。
- 原因:这是为了符合大众认知(消费者习惯十进制数字),且符合硬件厂商(内存条、SSD 控制器)的标称逻辑。
- 实际含义:虽然写着"16 GB 内存”,但实际上服务器分配给操作系统的通常是 16 GiB 的可用空间。云服务商在这里使用了“营销术语”,将二进制容量直接标记为 GB。
B. 操作系统内部(识别为 GiB)
当你登录到云服务器实例内部,使用 free -h、top 或 df -h 等命令查看资源时:
- Linux/Windows 系统:通常会准确显示为 GiB。
- 现象:如果你购买了 "8 GB" 的内存,在 Linux 终端输入
free -h,可能会看到Mem: 7.8 GiB或7.5 GiB(取决于系统预留内核占用等)。
C. 特殊场景:对象存储(OSS/S3)
对于云存储产品(如对象存储 OSS、S3),由于涉及海量数据计费,部分厂商会明确区分:
- 数据传输量:通常按 GB(十进制)计费,因为网络带宽是按 Mbps (Megabits per second) 计算的,属于十进制体系。
- 存储容量:有时会在详细账单中注明是按 GiB 还是 GB 计算,但大多数主流云厂商(如 AWS S3)对存储容量的计量也是基于 GB (10^9) 进行计费的,尽管底层物理介质是二进制的。
总结与建议
| 场景 | 常见单位 | 实际含义 | 备注 |
|---|---|---|---|
| 云厂商网页选购 | GB | 实为 GiB | 行业惯例,商家省略了 ‘i’,数值按二进制分配。 |
| 操作系统内部查看 | GiB | 真实二进制容量 | 系统准确报告,可能比选购页略少(因系统占用)。 |
| 网络流量/带宽 | GB | 十进制 | 严格按 $10^9$ 字节计算,用于流量计费。 |
| 硬盘/内存硬件 | GB | 十进制标称 | 硬件厂商标注,实际可用小于标称值。 |
结论:
在云服务器配置中,界面上写的是 GB,但实际交付的是 GiB 级别的容量。你不需要手动转换,只需关注云厂商提供的规格(例如“选择 8GB 内存”即可),系统会自动按二进制(GiB)进行分配和管理。如果是在编写代码或进行精确的磁盘空间规划,建议默认按 1 GB ≈ 1.07 GiB 的偏差来预留余量。
CLOUD云枢