1Panel icon indicating copy to clipboard operation
1Panel copied to clipboard

[BUG]概览状态显示百分比错误

Open JAINKRE opened this issue 1 year ago • 1 comments

联系方式

No response

1Panel 版本

v1.10.13-lts

问题描述

百分比显示错误

重现步骤

如下: screenshot-20240805-145403

期待的正确结果

No response

相关日志输出

No response

附加信息

No response

JAINKRE avatar Aug 05 '24 07:08 JAINKRE

感谢反馈,我们会在后续版本持续优化。

wanghe-fit2cloud avatar Aug 05 '24 07:08 wanghe-fit2cloud

这个百分比是一直显示不正确吗?还是光某次刷新

ssongliu avatar Aug 16 '24 03:08 ssongliu

这个百分比是一直显示不正确吗?还是光某次刷新

看样子是一直有问题

screenshot-20240816-140259

JAINKRE avatar Aug 16 '24 06:08 JAINKRE

这个百分比是一直显示不正确吗?还是光某次刷新

看样子是一直有问题 screenshot-20240816-140259

这个的算法 是 已用/(可用+已用)*100% 你使用 已用/总数 那肯定不对 总数!=可用

为什么不是 已用/总数呢?你说的这个反直觉啊,百分比应该就是对应 已用/总数*100% 其余几个百分比(内核,内存)都是这么算的

JAINKRE avatar Aug 16 '24 14:08 JAINKRE

重新查了一下这个问题,大致描述如下:

计算公式:

  • Total = (uint64(stat.Blocks) * uint64(bsize))
  • Free = (uint64(stat.Bavail) * uint64(bsize))
  • Used = (uint64(stat.Blocks) - uint64(stat.Bfree)) * uint64(bsize)

字段定义

  • Blocks 文件系统 总数据块数量 (包括保留块和超级用户保留块)
  • Bfree 文件系统中 全部空闲块数量 (包括保留给超级用户的块)
  • Bavail 普通用户 实际可用的空闲块数量 (不包括保留块)
  • Bsize 每个块的大小(字节)
  1. Blocks - Bfree 表示 所有被占用的块(包括系统保留部分)
  2. Blocks - Bavail 会错误地 包含保留块,导致显示的已用空间比实际更大

我们使用的是 1 来计算已使用,这样更能体现实际用量,也就造成了上面数值的差异。

ssongliu avatar Jun 25 '25 03:06 ssongliu