你购买的2GB云服务器实际只有约1.8GB可用,这是正常现象,主要原因如下:
1. 内存单位换算差异
- 厂商通常使用十进制(Decimal)标注容量:
1 GB = 1000 MB,所以 2 GB = 2000 MB。 - 而操作系统使用二进制(Binary)计算:
1 GiB = 1024 MiB,所以:
$$
2 , text{GB} = 2000 , text{MB} ≈ 1.953 , text{GiB}
$$
实际显示为约 1.95 GiB。
⚠️ 注意:严格来说,“GB” vs “GiB”有区别。厂商用“GB”,系统用“GiB”,这会造成轻微差异。
2. 系统自身占用内存
即使是最轻量的 Linux 系统(如 Ubuntu、CentOS),启动后也会占用一部分内存用于:
- 内核(Kernel)
- 系统进程(systemd、udev、cron 等)
- 缓存和缓冲区(Cache & Buffer)
- 安全服务或监控X_X(如云厂商的监控插件)
这些加起来通常会占用 50–150 MB 的内存。
所以:
$$
1.95 , text{GiB} – 约 100 , text{MiB} ≈ 1.85 , text{GiB 可用}
$$
实际 free -h 显示可能为 1.8 GB 左右。
3. 虚拟化开销(较小)
在虚拟化环境中(如 KVM、Xen),Hypervisor 也可能占用极少量资源,但通常可以忽略不计。
✅ 示例验证
在你的云服务器上运行:
free -h
输出可能类似:
total used free shared buff/cache available
Mem: 1.8Gi 300Mi 1.2Gi 10Mi 300Mi 1.4Gi
这里 total 是 1.8Gi,不是 2GB,正是上述原因导致。
🔍 总结
| 原因 | 影响大小 |
|---|---|
| 十进制 vs 二进制换算 | 约损失 0.05 GiB |
| 操作系统基础占用 | 约损失 0.1–0.15 GiB |
| 合计 | 正常损失 0.15–0.2 GiB |
👉 因此,2GB 内存服务器实际可用约 1.8GB 是完全正常的,不属于虚假宣传。
✅ 建议:关注的是“可用内存是否稳定、性能是否达标”,而不是纠结于小数点后的差异。只要系统运行流畅,就不必担心。
CLOUD技术博