grafana dashboard 单位 IEC SI a i
grafana dashboard 画图的时候在
Standard options —> Unit —> Data —> 会有各种选项其中列举以 xxxaxxx 、xxxixxx开头和(IEC) (SI) 注释的,本文进行解释
其中带 a 的基于十进制的单位,使用1000作为基数。1 MB = 1000 KB = 1000 * 1000 Bytes。
带 i 的基于二进制的单位,使用1024作为基数。1 MiB = 1024 KiB = 1024 * 1024 Bytes。
为了进一步强化理解,我再帮你稍作整理,并补充一些实际应用建议,特别是在 Ceph、Grafana、Prometheus 等系统中容易遇到的混用陷阱:
✅ 一、单位分类与基数差异
单位名称 | 缩写 | 制式 | 基数 | 等于多少字节(bytes) |
---|---|---|---|---|
Kibibyte | KiB | IEC | 2¹⁰ = 1024 | 1,024 B |
Kilobyte | KB | SI | 10³ = 1000 | 1,000 B |
Mebibyte | MiB | IEC | 2²⁰ | 1,048,576 B |
Megabyte | MB | SI | 10⁶ | 1,000,000 B |
Gibibyte | GiB | IEC | 2³⁰ | 1,073,741,824 B |
Gigabyte | GB | SI | 10⁹ | 1,000,000,000 B |
Tebibyte | TiB | IEC | 2⁴⁰ | 1,099,511,627,776 B |
Terabyte | TB | SI | 10¹² | 1,000,000,000,000 B |
✅ 二、实际场景中的使用建议
场景 | 建议使用单位 | 原因说明 |
---|---|---|
硬盘容量标称 | TB / GB | 厂商使用 SI 标准 |
系统文件显示(Linux/macOS) | GiB / MiB | 操作系统按 1024 显示 |
内存容量、页表大小等 | GiB / MiB | 硬件架构按 1024 设计 |
网络带宽、接口速率 | MB / GB / Mbps | SI 标准用于传输速率 |
Grafana/Prometheus 显示 | 建议自己明确单位,统一使用 GiB 或 GB | Prometheus 不自动区分单位 |
✅ 三、常见误区与实践说明
❌ 混用 KB 和 KiB 导致容量理解错误
- 比如硬盘标称 1 TB(10¹² 字节)= 实际只有 931 GiB
- 因为
1,000,000,000,000 ÷ 1,073,741,824 ≈ 931.32
✅ Prometheus 与 Grafana 中的单位转换示例
将字节转为:
-
MiB(Mebibyte):
metric_name / 1024 / 1024
-
MB(Megabyte):
metric_name / 1000 / 1000
-
GiB(Gibibyte):
metric_name / 1024 / 1024 / 1024
-
GB(Gigabyte):
metric_name / 1000 / 1000 / 1000
Grafana 设置:
- 可以在 Panel 设置中选择单位为
bytes -> gibibytes
或megabytes (decimal)
来直观展示 - 注意单位名称后缀是否是
i
,如 MiB 表示 IEC 二进制,MB 表示 SI 十进制
✅ 四、建议统一规范
在 Ceph、Kubernetes、Grafana 系统监控中:
-
建议全程使用 IEC(KiB/MiB/GiB),因为大多数底层系统(如
ceph df
、top
)默认按 1024 为基数。 -
标明单位来源,避免让用户误解,例如面板上写:
“Total Read (GiB, IEC)”
IEC和SI的定义和背景
IEC(国际电工委员会):IEC采用二进制进率,即每一级单位之间的进率为2的倍数。这种进率制度使得存储单位的计算更加直观,尤其是在处理二进制数据时更为方便。
SI(国际单位制):SI采用十进制进率,即每一级单位之间的进率为10。这种进率制度更符合国际标准的计量习惯,但在处理二进制数据时不如IEC直观。
IEC和SI在计算机存储单位上的具体差异
字节与比特的对应关系:在IEC标准中,1字节(Byte)等于8比特(bit);而在SI标准中,这一对应关系也是相同的。
高计量单位的进率:
IEC标准:每一级单位之间的进率为2。例如,1KB(千字节)等于1024B(字节),1MB(兆字节)等于1024KB,以此类推。
SI标准:每一级单位之间的进率为10。例如,1KB等于1000B,1MB等于1000KB。
实际应用中的影响
数据存储和处理:在处理二进制数据时,IEC标准更为直观和方便,因为二进制数据的存储和处理本身就是基于2的幂次方进行的。而SI标准虽然在国际上更为通用,但在处理二进制数据时需要进行额外的转换计算。
国际标准和实际应用:由于计算机内部数据存储和处理都是基于二进制的,因此IEC标准在实际应用中更为常见。而SI标准则更多地用于需要精确计量的科学研究和工程领域。