Open zhujian7 opened 4 years ago
What are the preferred units? Could we convert to these preferred units after 'du -sh'?
A piece of output of man du
:
...
Display values are in units of the first available SIZE from --block-size, and the DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables. Otherwise, units default to 1024 bytes (or
512 if POSIXLY_CORRECT is set).
SIZE is an integer and optional unit (example: 10M is 10*1024*1024). Units are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).
...
So I rethought the description of the issue is wrong
And It is obviously wrong, since 1 Mebibyte=1000Kibibyte (1M=1000K).
The implementation of command du
treats 1M=1024K. So I think the only thing we need to do is change the unit from K
M
G
T
to Ki
Mi
Gi
Ti
to make them more readable. Besides Kubernetes uses Ki
Mi
Gi
Ti
instead of K
M
G
T
as memory units:
Unit of Memory in Kubernetes
Cyclone use
du -sh
to get memory usage, read the annotation of-h
fordu
command:Please pay attention to the unit :
Kilobyte, Megabyte, Gigabyte, Terabyte and Petabyte.
Instead ofKibibyte, Mebibyte, Gibibyte, Tebibyte and Pebibyte.
Unfortunately, we use the following formula to calculate:
And It is obviously wrong, since 1 Mebibyte=1000Kibibyte (1M=1000K).
There are two ways to fix it:
1 Mebibyte=**1024**Kibibyte
to1 Mebibyte=**1000**Kibibyte
Kibibyte
,Mebibyte
unit.Related Reads:
What happened:
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?: @supereagle @hyy0322 @qiuxiaolian